Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

Initial Update #6

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open

Initial Update #6

wants to merge 7 commits into from

Conversation

pyup-bot
Copy link

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

coverage 4.0.3 » 4.4.1 PyPI | Changelog | Docs
pip 7.1.2 » 9.0.1 PyPI | Changelog | Homepage
python-coveralls 2.6.0 » 2.9.1 PyPI | Repo
PyYAML 3.11 » 3.12 PyPI | Changelog | Homepage
requests 2.9.1 » 2.18.2 PyPI | Changelog | Homepage
sh 1.11 » 1.12.14 PyPI | Changelog | Repo
wheel 0.24.0 » 0.29.0 PyPI | Changelog | Repo

Changelogs

coverage 4.0.3 -> 4.4.1

4.4.1


  • No code changes: just corrected packaging for Python 2.7 Linux wheels.

.. _changes_44:

4.4


  • Reports could produce the wrong file names for packages, reporting pkg.py
    instead of the correct pkg/__init__.py. This is now fixed. Thanks, Dirk
    Thomas.
  • XML reports could produce <source> and <class> lines that together
    didn't specify a valid source file path. This is now fixed. (issue 526_)
  • Namespace packages are no longer warned as having no code. (issue 572_)
  • Code that uses sys.settrace(sys.gettrace()) in a file that wasn't being
    coverage-measured would prevent correct coverage measurement in following
    code. An example of this was running doctests programmatically. This is now
    fixed. (issue 575_)
  • Errors printed by the coverage command now go to stderr instead of
    stdout.
  • Running coverage xml in a directory named with non-ASCII characters would
    fail under Python 2. This is now fixed. (issue 573_)

.. _issue 526: https://bitbucket.org/ned/coveragepy/issues/526/generated-xml-invalid-paths-for-cobertura
.. _issue 572: https://bitbucket.org/ned/coveragepy/issues/572/no-python-source-warning-for-namespace
.. _issue 573: https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source
.. _issue 575: https://bitbucket.org/ned/coveragepy/issues/575/running-doctest-prevents-complete-coverage

4.4b1


  • Some warnings can now be individually disabled. Warnings that can be
    disabled have a short name appended. The [run] disable_warnings setting
    takes a list of these warning names to disable. Closes both issue 96_ and
    issue 355_.
  • The XML report now includes attributes from version 4 of the Cobertura XML
    format, fixing issue 570_.
  • In previous versions, calling a method that used collected data would prevent
    further collection. For example, save(), report(), html_report(), and
    others would all stop collection. An explicit start() was needed to get it
    going again. This is no longer true. Now you can use the collected data and
    also continue measurement. Both issue 79_ and issue 448_ described this
    problem, and have been fixed.
  • Plugins can now find unexecuted files if they choose, by implementing the
    find_executable_files method. Thanks, Emil Madsen.
  • Minimal IronPython support. You should be able to run IronPython programs
    under coverage run, though you will still have to do the reporting phase
    with CPython.
  • Coverage.py has long had a special hack to support CPython's need to measure
    the coverage of the standard library tests. This code was not installed by
    kitted versions of coverage.py. Now it is.

.. _issue 79: https://bitbucket.org/ned/coveragepy/issues/79/save-prevents-harvesting-on-stop
.. _issue 96: https://bitbucket.org/ned/coveragepy/issues/96/unhelpful-warnings-produced-when-using
.. _issue 355: https://bitbucket.org/ned/coveragepy/issues/355/warnings-should-be-suppressable
.. _issue 448: https://bitbucket.org/ned/coveragepy/issues/448/save-and-html_report-prevent-further
.. _issue 570: https://bitbucket.org/ned/coveragepy/issues/570/cobertura-coverage-04dtd-support

.. _changes_434:

4.3.4


  • Fixing 2.6 in version 4.3.3 broke other things, because the too-tricky
    exception wasn't properly derived from Exception, described in issue 556_.
    A newb mistake; it hasn't been a good few days.

.. _issue 556: https://bitbucket.org/ned/coveragepy/issues/556/43-fails-if-there-are-html-files-in-the

.. _changes_433:

4.3.3


  • Python 2.6 support was broken due to a testing exception imported for the
    benefit of the coverage.py test suite. Properly conditionalizing it fixed
    issue 554_ so that Python 2.6 works again.

.. _issue 554: https://bitbucket.org/ned/coveragepy/issues/554/traceback-on-python-26-starting-with-432

.. _changes_432:

4.3.2


  • Using the --skip-covered option on an HTML report with 100% coverage
    would cause a "No data to report" error, as reported in issue 549_. This is
    now fixed; thanks, Loïc Dachary.
  • If-statements can be optimized away during compilation, for example, if 0:
    or if __debug__:. Coverage.py had problems properly understanding these
    statements which existed in the source, but not in the compiled bytecode.
    This problem, reported in issue 522_, is now fixed.
  • If you specified --source as a directory, then coverage.py would look for
    importable Python files in that directory, and could identify ones that had
    never been executed at all. But if you specified it as a package name, that
    detection wasn't performed. Now it is, closing issue 426_. Thanks to Loïc
    Dachary for the fix.
  • If you started and stopped coverage measurement thousands of times in your
    process, you could crash Python with a "Fatal Python error: deallocating
    None" error. This is now fixed. Thanks to Alex Groce for the bug report.
  • On PyPy, measuring coverage in subprocesses could produce a warning: "Trace
    function changed, measurement is likely wrong: None". This was spurious, and
    has been suppressed.
  • Previously, coverage.py couldn't start on Jython, due to that implementation
    missing the multiprocessing module (issue 551). This problem has now been
    fixed. Also, issue 322
    about not being able to invoke coverage
    conveniently, seems much better: jython -m coverage run myprog.py works
    properly.
  • Let's say you ran the HTML report over and over again in the same output
    directory, with --skip-covered. And imagine due to your heroic
    test-writing efforts, a file just acheived the goal of 100% coverage. With
    coverage.py 4.3, the old HTML file with the less-than-100% coverage would be
    left behind. This file is now properly deleted.

.. _issue 322: https://bitbucket.org/ned/coveragepy/issues/322/cannot-use-coverage-with-jython
.. issue 426: https://bitbucket.org/ned/coveragepy/issues/426/difference-between-coverage-results-with
.. issue 522: https://bitbucket.org/ned/coveragepy/issues/522/incorrect-branch-reporting-with-__debug

.. _issue 549: https://bitbucket.org/ned/coveragepy/issues/549/skip-covered-with-100-coverage-throws-a-no
.. _issue 551: https://bitbucket.org/ned/coveragepy/issues/551/coveragepy-cannot-be-imported-in-jython27

.. _changes_431:

4.3.1


  • Some environments couldn't install 4.3, as described in issue 540_. This is
    now fixed.
  • The check for conflicting --source and --include was too simple in a
    few different ways, breaking a few perfectly reasonable use cases, described
    in issue 541. The check has been reverted while we re-think the fix for
    issue 265
    .

.. _issue 540: https://bitbucket.org/ned/coveragepy/issues/540/cant-install-coverage-v43-into-under
.. _issue 541: https://bitbucket.org/ned/coveragepy/issues/541/coverage-43-breaks-nosetest-with-coverage

.. _changes_43:

4.3


Special thanks to Loïc Dachary, who took an extraordinary interest in
coverage.py and contributed a number of improvements in this release.

  • Subprocesses that are measured with automatic subprocess measurement_ used
    to read in any pre-existing data file. This meant data would be incorrectly
    carried forward from run to run. Now those files are not read, so each
    subprocess only writes its own data. Fixes issue 510_.
  • The coverage combine command will now fail if there are no data files to
    combine. The combine changes in 4.2 meant that multiple combines could lose
    data, leaving you with an empty .coverage data file. Fixes
    issue 525, issue 412, issue 516, and probably issue 511.
  • Coverage.py wouldn't execute sys.excepthook_ when an exception happened in
    your program. Now it does, thanks to Andrew Hoos. Closes issue 535_.
  • Branch coverage fixes:
  • Branch coverage could misunderstand a finally clause on a try block that
    never continued on to the following statement, as described in issue 493_. This is now fixed. Thanks to Joe Doherty for the report and Loïc
    Dachary for the fix.
  • A while loop with a constant condition (while True) and a continue
    statement would be mis-analyzed, as described in issue 496_. This is now
    fixed, thanks to a bug report by Eli Skeggs and a fix by Loïc Dachary.
  • While loops with constant conditions that were never executed could result
    in a non-zero coverage report. Artem Dayneko reported this in issue 502_, and Loïc Dachary provided the fix.
  • The HTML report now supports a --skip-covered option like the other
    reporting commands. Thanks, Loïc Dachary for the implementation, closing
    issue 433_.
  • Options can now be read from a tox.ini file, if any. Like setup.cfg, sections
    are prefixed with "coverage:", so [run] options will be read from the
    [coverage:run] section of tox.ini. Implements part of issue 519_.
    Thanks, Stephen Finucane.
  • Specifying both --source and --include no longer silently ignores the
    include setting, instead it fails with a message. Thanks, Nathan Land and
    Loïc Dachary. Closes issue 265_.
  • The Coverage.combine method has a new parameter, strict=False, to
    support failing if there are no data files to combine.
  • When forking subprocesses, the coverage data files would have the same random
    number appended to the file name. This didn't cause problems, because the
    file names had the process id also, making collisions (nearly) impossible.
    But it was disconcerting. This is now fixed.
  • The text report now properly sizes headers when skipping some files, fixing
    issue 524_. Thanks, Anthony Sottile and Loïc Dachary.
  • Coverage.py can now search .pex files for source, just as it can .zip and
    .egg. Thanks, Peter Ebden.
  • Data files are now about 15% smaller.
  • Improvements in the [run] debug setting:
  • The "dataio" debug setting now also logs when data files are deleted during
    combining or erasing.
  • A new debug option, "multiproc", for logging the behavior of
    concurrency=multiprocessing.
  • If you used the debug options "config" and "callers" together, you'd get a
    call stack printed for every line in the multi-line config output. This is
    now fixed.
  • Fixed an unusual bug involving multiple coding declarations affecting code
    containing code in multi-line strings: issue 529_.
  • Coverage.py will no longer be misled into thinking that a plain file is a
    package when interpreting --source options. Thanks, Cosimo Lupo.
  • If you try to run a non-Python file with coverage.py, you will now get a more
    useful error message. Issue 514_.
  • The default pragma regex changed slightly, but this will only matter to you
    if you are deranged and use mixed-case pragmas.
  • Deal properly with non-ASCII file names in an ASCII-only world, issue 533_.
  • Programs that set Unicode configuration values could cause UnicodeErrors when
    generating HTML reports. Pytest-cov is one example. This is now fixed.
  • Prevented deprecation warnings from configparser that happened in some
    circumstances, closing issue 530_.
  • Corrected the name of the jquery.ba-throttle-debounce.js library. Thanks,
    Ben Finney. Closes issue 505_.
  • Testing against PyPy 5.6 and PyPy3 5.5.
  • Switched to pytest from nose for running the coverage.py tests.
  • Renamed AUTHORS.txt to CONTRIBUTORS.txt, since there are other ways to
    contribute than by writing code. Also put the count of contributors into the
    author string in setup.py, though this might be too cute.

.. _sys.excepthook: https://docs.python.org/3/library/sys.htmlsys.excepthook
.. _issue 265: https://bitbucket.org/ned/coveragepy/issues/265/when-using-source-include-is-silently
.. _issue 412: https://bitbucket.org/ned/coveragepy/issues/412/coverage-combine-should-error-if-no
.. _issue 433: https://bitbucket.org/ned/coveragepy/issues/433/coverage-html-does-not-suport-skip-covered
.. _issue 493: https://bitbucket.org/ned/coveragepy/issues/493/confusing-branching-failure
.. _issue 496: https://bitbucket.org/ned/coveragepy/issues/496/incorrect-coverage-with-branching-and
.. _issue 502: https://bitbucket.org/ned/coveragepy/issues/502/incorrect-coverage-report-with-cover
.. _issue 505: https://bitbucket.org/ned/coveragepy/issues/505/use-canonical-filename-for-debounce
.. _issue 514: https://bitbucket.org/ned/coveragepy/issues/514/path-to-problem-file-not-reported-when
.. _issue 510: https://bitbucket.org/ned/coveragepy/issues/510/erase-still-needed-in-42
.. _issue 511: https://bitbucket.org/ned/coveragepy/issues/511/version-42-coverage-combine-empties
.. _issue 516: https://bitbucket.org/ned/coveragepy/issues/516/running-coverage-combine-twice-deletes-all
.. _issue 519: https://bitbucket.org/ned/coveragepy/issues/519/coverage-run-sections-in-toxini-or-as
.. _issue 524: https://bitbucket.org/ned/coveragepy/issues/524/coverage-report-with-skip-covered-column
.. _issue 525: https://bitbucket.org/ned/coveragepy/issues/525/coverage-combine-when-not-in-parallel-mode
.. _issue 529: https://bitbucket.org/ned/coveragepy/issues/529/encoding-marker-may-only-appear-on-the
.. _issue 530: https://bitbucket.org/ned/coveragepy/issues/530/deprecationwarning-you-passed-a-bytestring
.. _issue 533: https://bitbucket.org/ned/coveragepy/issues/533/exception-on-unencodable-file-name
.. _issue 535: https://bitbucket.org/ned/coveragepy/issues/535/sysexcepthook-is-not-called

.. _changes_42:

4.2


  • Since concurrency=multiprocessing uses subprocesses, options specified on
    the coverage.py command line will not be communicated down to them. Only
    options in the configuration file will apply to the subprocesses.
    Previously, the options didn't apply to the subprocesses, but there was no
    indication. Now it is an error to use --concurrency=multiprocessing and
    other run-affecting options on the command line. This prevents
    failures like those reported in issue 495_.
  • Filtering the HTML report is now faster, thanks to Ville Skyttä.

.. _issue 495: https://bitbucket.org/ned/coveragepy/issues/495/branch-and-concurrency-are-conflicting

4.2b1


Work from the PyCon 2016 Sprints!

  • BACKWARD INCOMPATIBILITY: the coverage combine command now ignores an
    existing .coverage data file. It used to include that file in its
    combining. This caused confusing results, and extra tox "clean" steps. If
    you want the old behavior, use the new coverage combine --append option.
  • The concurrency option can now take multiple values, to support programs
    using multiprocessing and another library such as eventlet. This is only
    possible in the configuration file, not from the command line. The
    configuration file is the only way for sub-processes to all run with the same
    options. Fixes issue 484_. Thanks to Josh Williams for prototyping.
  • Using a concurrency setting of multiprocessing now implies
    --parallel so that the main program is measured similarly to the
    sub-processes.
  • When using automatic subprocess measurement, running coverage commands
    would create spurious data files. This is now fixed, thanks to diagnosis and
    testing by Dan Riti. Closes issue 492
    .
  • A new configuration option, report:sort, controls what column of the
    text report is used to sort the rows. Thanks to Dan Wandschneider, this
    closes issue 199_.
  • The HTML report has a more-visible indicator for which column is being
    sorted. Closes issue 298_, thanks to Josh Williams.
  • If the HTML report cannot find the source for a file, the message now
    suggests using the -i flag to allow the report to continue. Closes
    issue 231_, thanks, Nathan Land.
  • When reports are ignoring errors, there's now a warning if a file cannot be
    parsed, rather than being silently ignored. Closes issue 396_. Thanks,
    Matthew Boehm.
  • A new option for coverage debug is available: coverage debug config
    shows the current configuration. Closes issue 454_, thanks to Matthew
    Boehm.
  • Running coverage as a module (python -m coverage) no longer shows the
    program name as __main__.py. Fixes issue 478_. Thanks, Scott Belden.
  • The test_helpers module has been moved into a separate pip-installable
    package: unittest-mixins_.

.. _automatic subprocess measurement: http://coverage.readthedocs.io/en/latest/subprocess.html
.. _issue 199: https://bitbucket.org/ned/coveragepy/issues/199/add-a-way-to-sort-the-text-report
.. _issue 231: https://bitbucket.org/ned/coveragepy/issues/231/various-default-behavior-in-report-phase
.. _issue 298: https://bitbucket.org/ned/coveragepy/issues/298/show-in-html-report-that-the-columns-are
.. _issue 396: https://bitbucket.org/ned/coveragepy/issues/396/coverage-xml-shouldnt-bail-out-on-parse
.. _issue 454: https://bitbucket.org/ned/coveragepy/issues/454/coverage-debug-config-should-be
.. _issue 478: https://bitbucket.org/ned/coveragepy/issues/478/help-shows-silly-program-name-when-running
.. _issue 484: https://bitbucket.org/ned/coveragepy/issues/484/multiprocessing-greenlet-concurrency
.. _issue 492: https://bitbucket.org/ned/coveragepy/issues/492/subprocess-coverage-strange-detection-of
.. _unittest-mixins: https://pypi.python.org/pypi/unittest-mixins

.. _changes_41:

4.1


  • The internal attribute Reporter.file_reporters was removed in 4.1b3. It
    should have come has no surprise that there were third-party tools out there
    using that attribute. It has been restored, but with a deprecation warning.

4.1b3


  • When running your program, execution can jump from an except X: line to
    some other line when an exception other than X happens. This jump is no
    longer considered a branch when measuring branch coverage.
  • When measuring branch coverage, yield statements that were never resumed
    were incorrectly marked as missing, as reported in issue 440_. This is now
    fixed.
  • During branch coverage of single-line callables like lambdas and generator
    expressions, coverage.py can now distinguish between them never being called,
    or being called but not completed. Fixes issue 90, issue 460 and
    issue 475_.
  • The HTML report now has a map of the file along the rightmost edge of the
    page, giving an overview of where the missed lines are. Thanks, Dmitry
    Shishov.
  • The HTML report now uses different monospaced fonts, favoring Consolas over
    Courier. Along the way, issue 472_ about not properly handling one-space
    indents was fixed. The index page also has slightly different styling, to
    try to make the clickable detail pages more apparent.
  • Missing branches reported with coverage report -m will now say ->exit
    for missed branches to the exit of a function, rather than a negative number.
    Fixes issue 469_.
  • coverage --help and coverage --version now mention which tracer is
    installed, to help diagnose problems. The docs mention which features need
    the C extension. (issue 479_)
  • Officially support PyPy 5.1, which required no changes, just updates to the
    docs.
  • The Coverage.report function had two parameters with non-None defaults,
    which have been changed. show_missing used to default to True, but now
    defaults to None. If you had been calling Coverage.report without
    specifying show_missing, you'll need to explicitly set it to True to keep
    the same behavior. skip_covered used to default to False. It is now None,
    which doesn't change the behavior. This fixes issue 485_.
  • It's never been possible to pass a namespace module to one of the analysis
    functions, but now at least we raise a more specific error message, rather
    than getting confused. (issue 456_)
  • The coverage.process_startup function now returns the Coverage instance
    it creates, as suggested in issue 481_.
  • Make a small tweak to how we compare threads, to avoid buggy custom
    comparison code in thread classes. (issue 245_)

.. _issue 90: https://bitbucket.org/ned/coveragepy/issues/90/lambda-expression-confuses-branch
.. _issue 245: https://bitbucket.org/ned/coveragepy/issues/245/change-solution-for-issue-164
.. _issue 440: https://bitbucket.org/ned/coveragepy/issues/440/yielded-twisted-failure-marked-as-missed
.. _issue 456: https://bitbucket.org/ned/coveragepy/issues/456/coverage-breaks-with-implicit-namespaces
.. _issue 460: https://bitbucket.org/ned/coveragepy/issues/460/confusing-html-report-for-certain-partial
.. _issue 469: https://bitbucket.org/ned/coveragepy/issues/469/strange-1-line-number-in-branch-coverage
.. _issue 472: https://bitbucket.org/ned/coveragepy/issues/472/html-report-indents-incorrectly-for-one
.. _issue 475: https://bitbucket.org/ned/coveragepy/issues/475/generator-expression-is-marked-as-not
.. _issue 479: https://bitbucket.org/ned/coveragepy/issues/479/clarify-the-need-for-the-c-extension
.. _issue 481: https://bitbucket.org/ned/coveragepy/issues/481/asyncioprocesspoolexecutor-tracing-not
.. _issue 485: https://bitbucket.org/ned/coveragepy/issues/485/coveragereport-ignores-show_missing-and

4.1b2


  • Problems with the new branch measurement in 4.1 beta 1 were fixed:
  • Class docstrings were considered executable. Now they no longer are.
  • yield from and await were considered returns from functions, since
    they could tranfer control to the caller. This produced unhelpful "missing
    branch" reports in a number of circumstances. Now they no longer are
    considered returns.
  • In unusual situations, a missing branch to a negative number was reported.
    This has been fixed, closing issue 466_.
  • The XML report now produces correct package names for modules found in
    directories specified with source=. Fixes issue 465_.
  • coverage report won't produce trailing whitespace.

.. _issue 465: https://bitbucket.org/ned/coveragepy/issues/465/coveragexml-produces-package-names-with-an
.. _issue 466: https://bitbucket.org/ned/coveragepy/issues/466/impossible-missed-branch-to-a-negative

4.1b1


  • Branch analysis has been rewritten: it used to be based on bytecode, but now
    uses AST analysis. This has changed a number of things:
  • More code paths are now considered runnable, especially in
    try/except structures. This may mean that coverage.py will
    identify more code paths as uncovered. This could either raise or lower
    your overall coverage number.
  • Python 3.5's async and await keywords are properly supported,
    fixing issue 434_.
  • Some long-standing branch coverage bugs were fixed:
  • issue 129_: functions with only a docstring for a body would
    incorrectly report a missing branch on the def line.
  • issue 212_: code in an except block could be incorrectly marked as
    a missing branch.
  • issue 146_: context managers (with statements) in a loop or try
    block could confuse the branch measurement, reporting incorrect partial
    branches.
  • issue 422_: in Python 3.5, an actual partial branch could be marked as
    complete.
  • Pragmas to disable coverage measurement can now be used on decorator lines,
    and they will apply to the entire function or class being decorated. This
    implements the feature requested in issue 131_.
  • Multiprocessing support is now available on Windows. Thanks, Rodrigue
    Cloutier.
  • Files with two encoding declarations are properly supported, fixing
    issue 453_. Thanks, Max Linke.
  • Non-ascii characters in regexes in the configuration file worked in 3.7, but
    stopped working in 4.0. Now they work again, closing issue 455_.
  • Form-feed characters would prevent accurate determination of the beginning of
    statements in the rest of the file. This is now fixed, closing issue 461_.

.. _issue 129: https://bitbucket.org/ned/coveragepy/issues/129/misleading-branch-coverage-of-empty
.. _issue 131: https://bitbucket.org/ned/coveragepy/issues/131/pragma-on-a-decorator-line-should-affect
.. _issue 146: https://bitbucket.org/ned/coveragepy/issues/146/context-managers-confuse-branch-coverage
.. _issue 212: https://bitbucket.org/ned/coveragepy/issues/212/coverage-erroneously-reports-partial
.. _issue 422: https://bitbucket.org/ned/coveragepy/issues/422/python35-partial-branch-marked-as-fully
.. _issue 434: https://bitbucket.org/ned/coveragepy/issues/434/indexerror-in-python-35
.. _issue 453: https://bitbucket.org/ned/coveragepy/issues/453/source-code-encoding-can-only-be-specified
.. _issue 455: https://bitbucket.org/ned/coveragepy/issues/455/unusual-exclusions-stopped-working-in
.. _issue 461: https://bitbucket.org/ned/coveragepy/issues/461/multiline-asserts-need-too-many-pragma

.. _changes_403:

pip 7.1.2 -> 9.0.1

9.0.1

==================

  • Correct the deprecation message when not specifying a --format so that it
    uses the correct setting name (format) rather than the incorrect one
    (list_format). (4058)
  • Fix pip check to check all available distributions and not just the
    local ones. (4083)
  • Fix a crash on non ASCII characters from lsb_release. (4062)
  • Fix an SyntaxError in an unused module of a vendored dependency. (4059)
  • Fix UNC paths on Windows. (4064)

9.0.0

==================

  • BACKWARD INCOMPATIBLE Remove the attempted autodetection of requirement
    names from URLs, URLs must include a name via egg=.
  • DEPRECATION pip install --egg have been deprecated and will be
    removed in the future. This "feature" has a long list of drawbacks which
    break nearly all of pip's other features in subtle and hard-to-diagnose
    ways.
  • DEPRECATION --default-vcs option. (4052)
  • WARNING pip 9 cache can break forward compatibility with previous pip
    versions if your package repository allows chunked responses. (4078)
  • Add a pip check command to check installed packages dependencies. (3750)
  • Add option allowing user to abort pip operation if file/directory exists
  • Add Appveyor CI
  • Uninstall existing packages when performing an editable installation of
    the same packages. (1548)
  • pip show is less verbose by default. --verbose prints multiline
    fields. (3858)
  • Add optional column formatting to pip list. (3651)
  • Add --not-required option to pip list, which lists packages that are
    not dependencies of other packages.
  • Fix builds on systems with symlinked /tmp directory for custom
    builds such as numpy. (3701)
  • Fix regression in pip freeze: when there is more than one git remote,
    priority is given to the remote named origin. (3708, 3616).
  • Fix crash when calling pip freeze with invalid requirement installed.
    (3704, 3681)
  • Allow multiple --requirement files in pip freeze. (3703)
  • Implementation of pep-503 data-requires-python. When this field is
    present for a release link, pip will ignore the download when
    installing to a Python version that doesn't satisfy the requirement.
  • pip wheel now works on editable packages too (it was only working on
    editable dependencies before); this allows running pip wheel on the result
    of pip freeze in presence of editable requirements. (3695, 3291)
  • Load credentials from .netrc files. (3715, 3569)
  • Add --platform, --python-version, --implementation and --abi
    parameters to pip download. These allow utilities and advanced users to
    gather distributions for interpreters other than the one pip is being run on.
    (3760)
  • Skip scanning virtual environments, even when venv/bin/python is a dangling
    symlink.
  • Added pip completion support for the fish shell.
  • Fix problems on Windows on Python 2 when username or hostname contains
    non-ASCII characters. (3463, 3970, 4000)
  • Use git fetch --tags to fetch tags in addition to everything else that
    is normally fetched; this is necessary in case a git requirement url
    points to a tag or commit that is not on a branch. (3791)
  • Normalize package names before using in pip show (3976)
  • Raise when Requires-Python do not match the running version and add
    --ignore-requires-python option as escape hatch. (3846)
  • Report the correct installed version when performing an upgrade in some
    corner cases. (2382
  • Add -i shorthand for --index flag in pip search.
  • Do not optionally load C dependencies in requests. (1840, 2930, 3024)
  • Strip authentication from SVN url prior to passing it to svn.
    (3697, 3209)
  • Also install in platlib with --target option. (3694, 3682)
  • Restore the ability to use inline comments in requirements files passed to
    pip freeze. (3680)

8.1.2

==================

  • Fix a regression on systems with uninitialized locale. (3575)
  • Use environment markers to filter packages before determining if a required
    wheel is supported. (3254)
  • Make glibc parsing for manylinux1 support more robust for the variety of
    glibc versions found in the wild. (3588)
  • Update environment marker support to fully support PEP 508 and legacy
    environment markers. (3624)
  • Always use debug logging to the --log file. (3351)
  • Don't attempt to wrap search results for extremely narrow terminal windows.
    (3655)

8.1.1

==================

  • Fix regression with non-ascii requirement files on Python 2 and add support
    for encoding headers in requirement files. (3548, 3547)

8.1.0

==================

  • Implement PEP 513, which adds support for the manylinux1 platform tag,
    allowing carefully compiled binary wheels to be installed on compatible Linux
    platforms.
  • Allow wheels which are not specific to a particular Python interpreter but
    which are specific to a particular platform. (3202)
  • Fixed an issue where call_subprocess would crash trying to print debug
    data on child process failure. (3521, 3522)
  • Exclude the wheel package from the pip freeze output (like pip and
    setuptools). (2989)
  • Allow installing modules from a subdirectory of a vcs repository in
    non-editable mode. (3217, 3466)
  • Make pip wheel and pip download work with vcs urls with subdirectory option.
    (3466)
  • Show classifiers in pip show.
  • Show PEP376 Installer in pip show. (3517)
  • Unhide completion command. (1810)
  • Show latest version number in pip search results. (1415)
  • Decode requirement files according to their BOM if present. (3485, 2865)
  • Fix and deprecate package name detection from url path. (3523, 3495)
  • Correct the behavior where interpreter specific tags (such as cp34) were
    being used on later versions of the same interpreter instead of only for that
    specific interpreter. (3472)
  • Fix an issue where pip would erroneously install a 64 bit wheel on a 32 bit
    Python running on a 64 bit macOS machine.
  • Do not assume that all git repositories have an origin remote.
  • Correctly display the line to add to a requirements.txt for an URL based
    dependency when --require-hashes is enabled.

8.0.3

==================

  • Make install --quiet really quiet. (3418)
  • Fix a bug when removing packages in python 3: disable INI-style parsing of the
    entry_point.txt file to allow entry point names with colons. (3434)
  • Normalize generated script files path in RECORD files. (3448)
  • Fix bug introduced in 8.0.0 where subcommand output was not shown,
    even when the user specified -v / --verbose. (3486)
  • Enable python -W with respect to PipDeprecationWarning. (3455)
  • Upgrade distlib to 0.2.2.
  • Improved support for Jython when quoting executables in output scripts.
    (3467)
  • Add a --all option to pip freeze to include usually skipped package
    (like pip, setuptools and wheel) to the freeze output. (1610)

8.0.2

==================

  • Stop attempting to trust the system CA trust store because it's extremely
    common for them to be broken, often in incompatible ways. (3416)

8.0.1

==================

  • Detect CAPaths in addition to CAFiles on platforms that provide them.
  • Installing argparse or wsgiref will no longer warn or error - pip will allow
    the installation even though it may be useless (since the installed thing
    will be shadowed by the standard library).
  • Upgrading a distutils installed item that is installed outside of a virtual
    environment, while inside of a virtual environment will no longer warn or
    error.
  • Fix a bug where pre-releases were showing up in pip list --outdated
    without the --pre flag.
  • Switch the SOABI emulation from using RuntimeWarnings to debug logging.
  • Rollback the removal of the ability to uninstall distutils installed items
    until a future date.

8.0.0

==================

  • BACKWARD INCOMPATIBLE Drop support for Python 3.2.
  • BACKWARD INCOMPATIBLE Remove the ability to find any files other than the
    ones directly linked from the index or find-links pages.
  • BACKWARD INCOMPATIBLE Remove the --download-cache which had been
    deprecated and no-op'd in 6.0.
  • BACKWARD INCOMPATIBLE Remove the --log-explicit-levels which had been
    deprecated in 6.0.
  • BACKWARD INCOMPATIBLE Change pip wheel --wheel-dir default path from
    <cwd>/wheelhouse to <cwd>.
  • Deprecate and no-op the --allow-external, --allow-all-external, and
    --allow-unverified functionality that was added as part of PEP 438. With
    changes made to the repository protocol made in PEP 470, these options are no
    longer functional.
  • Allow --trusted-host within a requirements file. (2822)
  • Allow --process-dependency-links within a requirements file. (1274)
  • Allow --pre within a requirements file. (1273)
  • Allow repository URLs with secure transports to count as trusted. (E.g.,
    "git+ssh" is okay.) (2811)
  • Implement a top-level pip download command and deprecate
    pip install --download.
  • When uninstalling, look for the case of paths containing symlinked
    directories (3141, 3154)
  • When installing, if building a wheel fails, clear up the build directory
    before falling back to a source install. (3047)
  • Fix user directory expansion when HOME=/. Workaround for Python bug
    http://bugs.python.org/issue14768. (2996)
  • Correct reporting of requirements file line numbers. (3009, 3125)
  • Fixed Exception(IOError) for pip freeze and pip list commands with
    subversion >= 1.7. (1062, 3346)
  • Provide a spinner showing that progress is happening when installing or
    building a package via setup.py. This will alleviate concerns that
    projects with unusually long build times have with pip appearing to stall.
  • Include the functionality of peep into pip, allowing hashes to be baked
    into a requirements file and ensuring that the packages being downloaded
    match one of those hashes. This is an additional, opt-in security measure
    that, when used, removes the need to trust the repository.
  • Fix a bug causing pip to not select a wheel compiled against an OSX SDK later
    than what Python itself was compiled against when running on a newer version
    of OSX.
  • Add a new --prefix option for pip install that supports wheels and
    sdists. (3252)
  • Fixed issue regarding wheel building with setup.py using a different encoding
    than the system. (2042)
  • Drop PasteScript specific egg_info hack. (3270)
  • Allow combination of pip list options --editable with --outdated/--uptodate.
    (933)
  • Gives VCS implementations control over saying whether a project is under
    their control. (3258)
  • Git detection now works when setup.py is not at the Git repo root
    and when package_dir is used, so pip freeze works in more
    cases. (3258)
  • Correctly freeze Git develop packages in presence of the &subdirectory
    option (3258)
  • The detection of editable packages now relies on the presence of .egg-link
    instead of looking for a VCS, so pip list -e is more reliable. (3258)
  • Add the --prefix flag to pip install which allows specifying a root
    prefix to use instead of sys.prefix. (3252)
  • Allow duplicate specifications in the case that only the extras differ, and
    union all specified extras together. (3198)
  • Fix the detection of the user's current platform on OSX when determining the
    OSX SDK version. (3232)
  • Prevent the automatically built wheels from mistakenly being used across
    multiple versions of Python when they may not be correctly configured for
    that by making the wheel specific to a specific version of Python and
    specific interpreter. (3225)
  • Emulate the SOABI support in wheels from Python 2.x on Python 2.x as closely
    as we can with the information available within the interpreter. (3075)
  • Don't roundtrip to the network when git is pinned to a specific commit hash
    and that hash already exists locally. (3066)
  • Prefer wheels built against a newer SDK to wheels built against an older SDK
    on OSX. (3163)
  • Show entry points for projects installed via wheel. (3122)
  • Improve message when an unexisting path is passed to --find-links option.
    (2968)
  • pip freeze does not add the VCS branch/tag name in the egg=... fragment
    anymore. (3312)
  • Warn on installation of editable if the provided egg=name part does not
    match the metadata produced by setup.py egg_info. (3143)
  • Add support for .xz files for python versions supporting them (>= 3.3). (722)

requests 2.9.1 -> 2.18.2

2.18.2

+++++++++++++++++++

Bugfixes

  • requests.help no longer fails on Python 2.6 due to the absence of
    ssl.OPENSSL_VERSION_NUMBER.

Dependencies

  • We now support urllib3 v1.22.

2.18.1

+++++++++++++++++++

Bugfixes

  • Fix an error in the packaging whereby the *.whl contained incorrect data that
    regressed the fix in v2.17.3.

2.18.0

+++++++++++++++++++

Improvements

  • Response is now a context manager, so can be used directly in a with statement
    without first having to be wrapped by contextlib.closing().

Bugfixes

  • Resolve installation failure if multiprocessing is not available
  • Resolve tests crash if multiprocessing is not able to determine the number of CPU cores
  • Resolve error swallowing in utils set_environ generator

2.17.3

+++++++++++++++++++

Improvements

  • Improved packages namespace identity support, for monkeypatching libraries.

2.17.2

+++++++++++++++++++

Improvements

  • Improved packages namespace identity support, for monkeypatching libraries.

2.17.1

+++++++++++++++++++

Improvements

  • Improved packages namespace identity support, for monkeypatching libraries.

2.17.0

+++++++++++++++++++

Improvements

  • Removal of the 301 redirect cache. This improves thread-safety.

2.16.5

+++++++++++++++++++

  • Improvements to $ python -m requests.help.

2.16.4

+++++++++++++++++++

  • Introduction of the $ python -m requests.help command, for debugging with maintainers!

2.16.3

+++++++++++++++++++

  • Further restored the requests.packages namespace for compatibility reasons.

2.16.2

+++++++++++++++++++

  • Further restored the requests.packages namespace for compatibility reasons.

No code modification (noted below) should be neccessary any longer.

2.16.1

+++++++++++++++++++

  • Restored the requests.packages namespace for compatibility reasons.
  • Bugfix for urllib3 version parsing.

Note: code that was written to import against the requests.packages
namespace previously will have to import code that rests at this module-level
now.

For example::

from requests.packages.urllib3.poolmanager import PoolManager

Will need to be re-written to be::

from requests.packages import urllib3
urllib3.poolmanager.PoolManager

Or, even better::

from urllib3.poolmanager import PoolManager

2.16.0

+++++++++++++++++++

  • Unvendor ALL the things!

2.15.1

+++++++++++++++++++

  • Everyone makes mistakes.

2.15.0

+++++++++++++++++++

Improvements

  • Introduction of the Response.next property, for getting the next
    PreparedResponse from a redirect chain (when allow_redirects=False).
  • Internal refactoring of __version__ module.

Bugfixes

  • Restored once-optional parameter for requests.utils.get_environ_proxies().

2.14.2

+++++++++++++++++++

Bugfixes

  • Changed a less-than to an equal-to and an or in the dependency markers to
    widen compatibility with older setuptools releases.

2.14.1

+++++++++++++++++++

Bugfixes

  • Changed the dependency markers to widen compatibility with older pip
    releases.

2.14.0

+++++++++++++++++++

Improvements

  • It is now possible to pass no_proxy as a key to the proxies
    dictionary to provide handling similar to the NO_PROXY environment
    variable.
  • When users provide invalid paths to certificate bundle files or directories
    Requests now raises IOError, rather than failing at the time of the HTTPS
    request with a fairly inscrutable certificate validation error.
  • The behavior of SessionRedirectMixin was slightly altered.
    resolve_redirects will now detect a redirect by calling
    get_redirect_target(response) instead of directly
    querying Response.is_redirect and Response.headers[&#39;location&#39;].
    Advanced users will be able to process malformed redirects more easily.
  • Changed the internal calculation of elapsed request time to have higher
    resolution on Windows.
  • Added win_inet_pton as conditional dependency for the [socks] extra
    on Windows with Python 2.7.
  • Changed the proxy bypass implementation on Windows: the proxy bypass
    check doesn't use forward and reverse DNS requests anymore
  • URLs with schemes that begin with http but are not http or https
    no longer have their host parts forced to lowercase.

Bugfixes

  • Much improved handling of non-ASCII Location header values in redirects.
    Fewer UnicodeDecodeErrors are encountered on Python 2, and Python 3 now
    correctly understands that Latin-1 is unlikely to be the correct encoding.
  • If an attempt to seek file to find out its length fails, we now
    appropriately handle that by aborting our content-length calculations.
  • Restricted HTTPDigestAuth to only respond to auth challenges made on 4XX
    responses, rather than to all auth challenges.
  • Fixed some code that was firing DeprecationWarning on Python 3.6.
  • The dismayed person emoticon (/o\\) no longer has a big head. I'm sure
    this is what you were all worrying about most.

Miscellaneous

  • Updated bundled urllib3 to v1.21.1.
  • Updated bundled chardet to v3.0.2.
  • Updated bundled idna to v2.5.
  • Updated bundled certifi to 2017.4.17.

2.13.0

+++++++++++++++++++

Features

  • Only load the idna library when we've determined we need it. This will
    save some memory for users.

Miscellaneous

  • Updated bundled urllib3 to 1.20.
  • Updated bundled idna to 2.2.

2.12.5

+++++++++++++++++++

Bugfixes

  • Fixed an issue with JSON encoding detection, specifically detecting
    big-endian UTF-32 with BOM.

2.12.4

+++++++++++++++++++

Bugfixes

  • Fixed regression from 2.12.2 where non-string types were rejected in the
    basic auth parameters. While support for this behaviour has been readded,
    the behaviour is deprecated and will be removed in the future.

2.12.3

+++++++++++++++++++

Bugfixes

  • Fixed regression from v2.12.1 for URLs with schemes that begin with "http".
    These URLs have historically been processed as though they were HTTP-schemed
    URLs, and so have had parameters added. This was removed in v2.12.2 in an
    overzealous attempt to resolve problems with IDNA-encoding those URLs. This
    change was reverted: the other fixes for IDNA-encoding have been judged to
    be sufficient to return to the behaviour Requests had before v2.12.0.

2.12.2

+++++++++++++++++++

Bugfixes

  • Fixed several issues with IDNA-encoding URLs that are technically invalid but
    which are widely accepted. Requests will now attempt to IDNA-encode a URL if
    it can but, if it fails, and the host contains only ASCII characters, it will
    be passed through optimistically. This will allow users to opt-in to using
    IDNA2003 themselves if they want to, and will also allow technically invalid
    but still common hostnames.
  • Fixed an issue where URLs with leading whitespace would raise
    InvalidSchema errors.
  • Fixed an issue where some URLs without the HTTP or HTTPS schemes would still
    have HTTP URL preparation applied to them.
  • Fixed an issue where Unicode strings could not be used in basic auth.
  • Fixed an issue encountered by some Requests plugins where constructing a
    Response object would cause Response.content to raise an
    AttributeError.

2.12.1

+++++++++++++++++++

Bugfixes

  • Updated setuptools 'security' extra for the new PyOpenSSL backend in urllib3.

Miscellaneous

  • Updated bundled urllib3 to 1.19.1.

2.12.0

+++++++++++++++++++

Improvements

  • Updated support for internationalized domain names from IDNA2003 to IDNA2008.
    This updated support is required for several forms of IDNs and is mandatory
    for .de domains.
  • Much improved heuristics for guessing content lengths: Requests will no
    longer read an entire StringIO into memory.
  • Much improved logic for recalculating Content-Length headers for
    PreparedRequest objects.
  • Improved tolerance for file-like objects that have no tell method but
    do have a seek method.
  • Anything that is a subclass of Mapping is now treated like a dictionary
    by the data= keyword argument.
  • Requests now tolerates empty passwords in proxy credentials, rather than
    stripping the credentials.
  • If a request is made with a file-like object as the body and that request is
    redirected with a 307 or 308 status code, Requests will now attempt to
    rewind the body object so it can be replayed.

Bugfixes

  • When calling response.close, the call to close will be propagated
    through to non-urllib3 backends.
  • Fixed issue where the ALL_PROXY environment variable would be preferred
    over scheme-specific variables like HTTP_PROXY.
  • Fixed issue where non-UTF8 reason phrases got severely mangled by falling
    back to decoding using ISO 8859-1 instead.
  • Fixed a bug where Requests would not correctly correlate cookies set when
    using custom Host headers if those Host headers did not use the native
    string type for the platform.

Miscellaneous

  • Updated bundled urllib3 to 1.19.
  • Updated bundled certifi certs to 2016.09.26.

2.11.1

+++++++++++++++++++

Bugfixes

  • Fixed a bug when using iter_content with decode_unicode=True for
    streamed bodies would raise AttributeError. This bug was introduced in
    2.11.
  • Strip Content-Type and Transfer-Encoding headers from the header block when
    following a redirect that transforms the verb from POST/PUT to GET.

2.11.0

+++++++++++++++++++

Improvements

  • Added support for the ALL_PROXY environment variable.
  • Reject header values that contain leading whitespace or newline characters to
    reduce risk of header smuggling.

Bugfixes

  • Fixed occasional TypeError when attempting to decode a JSON response that
    occurred in an error case. Now correctly returns a ValueError.
  • Requests would incorrectly ignore a non-CIDR IP address in the NO_PROXY
    environment variables: Requests now treats it as a specific IP.
  • Fixed a bug when sending JSON data that could cause us to encounter obscure
    OpenSSL errors in certain network conditions (yes, really).
  • Added type checks to ensure that iter_content only accepts integers and
    None for chunk sizes.
  • Fixed issue where responses whose body had not been fully consumed would have
    the underlying connection closed but not returned to the connection pool,
    which could cause Requests to hang in situations where the HTTPAdapter
    had been configured to use a blocking connection pool.

Miscellaneous

  • Updated bundled urllib3 to 1.16.
  • Some previous releases accidentally accepted non-strings as acceptable header values. This release does not.

2.10.0

+++++++++++++++++++

New Features

  • SOCKS Proxy Support! (requires PySocks; $ pip install requests[socks])

Miscellaneous

  • Updated bundled urllib3 to 1.15.1.

2.9.2

++++++++++++++++++

Improvements

  • Change built-in CaseInsensitiveDict (used for headers) to use OrderedDict
    as its underlying datastore.

Bugfixes

  • Don't use redirect_cache if allow_redirects=False
  • When passed objects that throw exceptions from tell(), send them via
    chunked transfer encoding instead of failing.
  • Raise a ProxyError for proxy related connection issues.

sh 1.11 -> 1.12.14

1.12.14

  • bugfix for poor sleep performance 378
  • allow passing raw integer file descriptors for _out and _err handlers
  • bugfix for when _tee and _out are used, and the _out is a tty or pipe 384
  • bugfix where python 3.3+ detected different arg counts for bound method output callbacks 380

1.12.12

  • pypi readme doc bugfix PR377

1.12.11

  • bugfix for relative paths to sh.Command not expanding to absolute paths 372
  • updated for python 3.6
  • bugfix for SIGPIPE not being handled correctly on pipelined processes 373

1.12.10

  • bugfix for file descriptors over 1024 356
  • bugfix when _err_to_out is True and _out is pipe or tty 365

1.12.9

  • added _bg_exc for silencing exceptions in background threads 350

1.12.8

  • bugfix for patched glob.glob on python3.5 341

1.12.7

  • added _out and _out_bufsize validator 346
  • bugfix for internal stdout thread running when it shouldn't 346

1.12.6

  • regression bugfix on timeout 344
  • regression bugfix on _ok_code=None

1.12.5

  • further improvements on cpu usage

1.12.4

  • regression in cpu usage 339

1.12.3

  • fd leak regression and fix for flawed fd leak detection test 337

1.12.2

  • support for io.StringIO in python2

1.12.1

  • added support for using raw file descriptors for _in, _out, and _err
  • removed .close()ing _out handler if FIFO detected

1.12.0

  • composed commands no longer propagate _bg
  • better support for using sys.stdin and sys.stdout for _in and _out
  • bugfix where which() would not stop searching at the first valid executable found in PATH
  • added _long_prefix for programs whose long arguments start with something other than -- 278
  • added _log_msg for advanced configuration of log message 311
  • added sh.contrib.sudo
  • added _arg_preprocess for advanced command wrapping
  • alter callable _in arguments to signify completion with falsy chunk
  • bugfix where pipes passed into _out or _err were not flushed on process end 252
  • deprecated with sh.args(**kwargs) in favor of sh2 = sh(**kwargs)
  • made sh.pushd thread safe
  • added .kill_group() and .signal_group() methods for better process control 237
  • added new_session special keyword argument for controlling spawned process session 266
  • bugfix better handling for EINTR on system calls 292
  • bugfix where with-contexts were not threadsafe 247
  • _uid new special keyword param for specifying the user id of the process 133
  • bugfix where exceptions were swallowed by processes that weren't waited on 309
  • bugfix where processes that dupd their stdout/stderr to a long running child process would cause sh to hang 310
  • improved logging output 323
  • bugfix for python3+ where binary data was passed into a process's stdin 325
  • Introduced execution contexts which allow baking of common special keyword arguments into all commands 269
  • Command and which now can take an optional paths parameter which specifies the search paths 226
  • _preexec_fn option for executing a function after the child process forks but before it execs 260
  • _fg reintroduced, with limited functionality. hurrah! 92
  • bugfix where a command would block if passed a fd for stdin that wasn't yet ready to read 253
  • _long_sep can now take None which splits the long form arguments into individual arguments 258
  • making _piped perform "direct" piping by default (linking fds together). this fixes memory problems 270
  • bugfix where calling next() on an iterable process that has raised StopIteration, hangs 273
  • sh.cd called with no arguments no changes into the user's home directory, like native cd 275
  • sh.glob removed entirely. the rationale is correctness over hand-holding. 279
  • added _truncate_exc, defaulting to True, which tells our exceptions to truncate output.
  • bugfix for exceptions whose messages contained unicode
  • _done callback no longer assumes you want your command put in the background.
  • _done callback is now called asynchronously in a separate thread.
  • _done callback is called regardless of exception, which is necessary in order to release held resources, for example a process pool

wheel 0.24.0 -> 0.29.0

0.29.0

======

  • Fix compression type of files in archive (Issue 155, Pull Request 62,
    thanks Xavier Fernandez)

0.28.0

======

  • Fix file modes in archive (Issue 154)

0.27.0

======

  • Support forcing a platform tag using --plat-name on pure-Python wheels, as
    well as nonstandard platform tags on non-pure wheels (Pull Request 60, Issue
    144, thanks Andrés Díaz)
  • Add SOABI tags to platform-specific wheels built for Python 2.X (Pull Request
    55, Issue 63, Issue 101)
  • Support reproducible wheel files, wheels that can be rebuilt and will hash to
    the same values as previous builds (Pull Request 52, Issue 143, thanks
    Barry Warsaw)
  • Support for changes in keyring >= 8.0 (Pull Request 61, thanks Jason R.
    Coombs)
  • Use the file context manager when checking if dependency_links.txt is empty,
    fixes problems building wheels under PyPy on Windows (Issue 150, thanks
    Cosimo Lupo)
  • Don't attempt to (recursively) create a build directory ending with ..
    (invalid on all platforms, but code was only executed on Windows) (Issue 91)
  • Added the PyPA Code of Conduct (Pull Request 56)

0.26.0

======

  • Fix multiple entrypoint comparison failure on Python 3 (Issue 148)

0.25.0

======

  • Add Python 3.5 to tox configuration
  • Deterministic (sorted) metadata
  • Fix tagging for Python 3.5 compatibility
  • Support py2-none-'arch' and py3-none-'arch' tags
  • Treat data-only wheels as pure
  • Write to temporary file and rename when using wheel install --force

Once you have closed this pull request, I'll create separate pull requests for every update as soon as I find them.

That's it for now!

Happy merging! 🤖

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant