Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

more-itertools 6.0.0 release breaks pytest 4.2 #4770

Closed
msnook opened this Issue Feb 12, 2019 · 31 comments

Comments

Projects
None yet
@msnook
Copy link

msnook commented Feb 12, 2019

We are seeing issues with new installations of pytest-4.2, as it pulls in more-itertools-6.0.0 (which was released about 2 hours ago at the time of writing this issue).

Is there any way we can lock in pytest-4.2 to use more-itertools-5.0.0 to maintain the python 2.7 compatability?

Here are the errors we are seeing with pytest-4.2 and more-itertools-6.0.0:

12-Feb-2019 02:48:58 | File "/usr/local/lib/python2.7/dist-packages/more_itertools/more.py", line 329
-- | --
12-Feb-2019 02:48:58 | def _collate(*iterables, key=lambda a: a, reverse=False):
12-Feb-2019 02:48:58 | ^
12-Feb-2019 02:48:58 | SyntaxError: invalid syntax

And here is a link to more-itertools release history, indicating that python 2.7 is not supported with more-itertools-6.0.0:
https://pypi.org/project/more-itertools/6.0.0/

@joshuahendinata

This comment has been minimized.

Copy link

joshuahendinata commented Feb 12, 2019

I am using pytest==3.6.3 and it is still breaking this version

@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Feb 12, 2019

this is a release bug with more.itertools

@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Feb 12, 2019

i take it back, it has all the righ metadata

@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Feb 12, 2019

local testing indicates its supposed to work correctly, please provide more system information

@tayalakansh

This comment has been minimized.

Copy link

tayalakansh commented Feb 12, 2019

facing same issue with pytest 3.10.1. Error is: more-itertools requires Python '>=3.4' but the running Python is 2.7.5

@Zac-HD

This comment has been minimized.

Copy link
Member

Zac-HD commented Feb 12, 2019

Please update your pip! more-itertools==6.0.0 does set the requires_python metadata, so up-to-date versions of pip will not attempt to install it on old versions of Python.

More generally, this isn't actually a pytest issue, and our only "fix" would be to prevent the upgrade for Python 3 users. Remember, Python 2 is end-of-life at the end of 2019, and Pytest will drop support at that time.

I'm leaving this open for now so others find the issue, but the only solution is pip install --upgrade pip.

@satepna

This comment has been minimized.

Copy link

satepna commented Feb 12, 2019

I get the same error as @tayalakansh: pip detects the python version mismatch and then fails, instead of installing the last compatible version. So it's a cleaner error than OP, but the result (you can't use pytest with python2 currently) is the same:

$ virtualenv testenv
New python executable in /tmp/testenv/bin/python
Installing setuptools, pip, wheel...done.
$ . testenv/bin/activate
(testenv) $ python --version
Python 2.7.12
(testenv) $ pip install --upgrade pip
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already up-to-date: pip in ./testenv/lib/python2.7/site-packages (19.0.2)
(testenv) $ pip install pytest    
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Collecting pytest
Collecting atomicwrites>=1.0 (from pytest)
Collecting py>=1.5.0 (from pytest)
Collecting pluggy>=0.7 (from pytest)
Requirement already satisfied: setuptools in ./testenv/lib/python2.7/site-packages (from pytest) (40.8.0)
Collecting six>=1.10.0 (from pytest)
Collecting pathlib2>=2.2.0; python_version < "3.6" (from pytest)
Collecting more-itertools>=4.0.0 (from pytest)
more-itertools requires Python '>=3.4' but the running Python is 2.7.12
(testenv) [1]$ 
@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Feb 12, 2019

what are the versions of pip and setuptools there? (i tested on python 2.7 and it installed correctly on pip as old as pip 9.x

@satepna

This comment has been minimized.

Copy link

satepna commented Feb 12, 2019

what are the versions of pip and setuptools there? (i tested on python 2.7 and it installed correctly on pip as old as pip 9.x

pip 19.0.2 and setuptools 40.8.0 per this:

$ pip install --upgrade pip
Requirement already up-to-date: pip in ./testenv/lib/python2.7/site-packages (19.0.2)
$ pip install --upgrade setuptools
Requirement already up-to-date: setuptools in ./testenv/lib/python2.7/site-packages (40.8.0)
@fallenwood

This comment has been minimized.

Copy link

fallenwood commented Feb 12, 2019

I locked more-itertools==5.0.0 in my project's requirements.txt :)
We are using pip 8.x, facing the same issue

@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Feb 12, 2019

i believe we will have to bring this up with setuptools/pip, personally i cant replicate the issue

@ThreePinkApples

This comment has been minimized.

Copy link

ThreePinkApples commented Feb 12, 2019

If you are running your own devpi-server you need to upgrade to 4.7 or newer to support 'requires_python'
Then it will give you the 5.0.0 package without having to ask for it specifically.
Or you can switch to go directly to pypi, then it should also work

https://pypi.org/project/devpi-server/

@RonnyPfannschmidt

This comment has been minimized.

Copy link
Member

RonnyPfannschmidt commented Feb 12, 2019

@ThreePinkApples thanks for that detail, this may be key

i wonder if any of the other users that see this particular issue use devpi < 4.7

@thoha

This comment has been minimized.

Copy link

thoha commented Feb 12, 2019

Same issue here on Mac OS X 10.8.5, with the error message seen by the OP. Pip 18.0 and setuptools 40.4.3.

@yfried

This comment has been minimized.

Copy link

yfried commented Feb 12, 2019

this happens for pip<9:

$ pip install -U "pip<9"
...
Successfully installed pip-8.1.2
$ pip install pytest
...
Collecting more-itertools>=4.0.0 (from pytest)
  Downloading https://files.pythonhosted.org/packages/dd/f4/cdfbb6f07f767e0cd8a11b16adfecc735b6eb87dbebda026ce8898e1cc22/more-itertools-6.0.0.tar.gz (68kB)
@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 12, 2019

@msnook can you confirm if you are using the latest pip version and if you are using devpi? Thanks!

@sambrightman

This comment has been minimized.

Copy link

sambrightman commented Feb 12, 2019

I can make a PR from the mentioning branch if you like. I'm not sure if setuptools is supposed to respect transient environment markers? In my case the project using pytest is running python setup.py test, which seems to trigger the issue even with latest setuptools (40.8.0).

@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 12, 2019

Oh for python setup.py test indeed is a separate issue... I think the OP was about installing pytest using pip.

@sambrightman, just to confirm, if you install pytest using pip, do you get more-itertools 5 or 6?

@sambrightman

This comment has been minimized.

Copy link

sambrightman commented Feb 12, 2019

If I just make a virtualenv for Python 2.7 and pip install pytest I get 5.0.0.

@sambrightman sambrightman referenced this issue Feb 12, 2019

Merged

Fix build #201

@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 12, 2019

Oh OK, so indeed there are two problems IIUC:

  1. Users installing pytest using pip should make sure they are using the latest pip version. This should be enough to fix the problem.
  2. Users running python setup.py test using pytest are getting more-itertools 6.0, so it seems like a setuptools problem. Users can fix this by pinning to more-itertools in their own project.

If people can confirm that 1) solves their problem it would be great.

About 2), there's already an issue open about it: pypa/setuptools#1633.

spmallette added a commit to apache/tinkerpop that referenced this issue Feb 12, 2019

Pinned more_itertools in gremlin_python
more_itertools is a downstream depepency of pytest and a recent upgrade to it has now broken pytest: pytest-dev/pytest#4770 CTR

athos-ribeiro added a commit to athos-ribeiro/atomic-reactor that referenced this issue Feb 12, 2019

Freeze more-itertools version for centOS tests
more-itertools is a pytest dependency. It dropped python 2 support since
version 6.0.0. New pip versions will parse the requires_python metadata
and avoid installing new versions of this package on python 2
environments. This is not the case for CentOS version of pip. To avoid
breakage, we pre-install the last more-itertools version with python 2
support when running tests on CentOS.

* https://github.com/erikrose/more-itertools/blob/master/docs/versions.rst
* pytest-dev/pytest#4770 (comment)

Signed-off-by: Athos Ribeiro <athos@redhat.com>
@James-Crean

This comment has been minimized.

Copy link

James-Crean commented Feb 12, 2019

Might I ask why pytest doesn't pin specific versions of requirements? Having installations randomly picking up new versions of dependencies makes for some annoying issues.

@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 12, 2019

Hi @James-Crean,

Because pytest is a tool/library which runs in the same environment as the code being tested, so pinning exact versions of its dependencies would force the pinned requirements on all users.

@nicoddemus

This comment has been minimized.

Copy link
Member

nicoddemus commented Feb 12, 2019

Fixed, a workaround was implemented in #4774 and will be released in 4.2.1. 👍

@nicoddemus nicoddemus closed this Feb 12, 2019

mpeuster added a commit to sonata-nfv/son-emu that referenced this issue Feb 12, 2019

Unified command execution in Docker containers.
Also adds a hotfix for a broken test execution based on
an issue with a used library: pytest-dev/pytest#4770

Change-Id: I54aade1eda31cb2584641b95226fbf39d9d298f4
Signed-off-by: peusterm <manuel.peuster@uni-paderborn.de>

cosmicexplorer added a commit to pantsbuild/pants that referenced this issue Feb 12, 2019

Pin pytest version to avoid induced breakage from more-itertools tran…
…sitive dep (#7238)

### Problem

A floating transitive dependency of pytest, `more-itertools`, dropped support for python 2 in its 6.0.0 release -- see pytest-dev/pytest#4770. This is currently breaking our and our users' CI: see https://travis-ci.org/pantsbuild/pants/jobs/492004734. We could pin that dep, but as mentioned in pytest-dev/pytest#4770 (comment), pinning transitive deps of pytest would impose requirement constraints on users of pytest in pants.

### Solution

- Pin `pytest==3.0.7` for now.

### Result

python tests should no longer be broken.

athos-ribeiro added a commit to projectatomic/atomic-reactor that referenced this issue Feb 13, 2019

Freeze more-itertools version for centOS tests
more-itertools is a pytest dependency. It dropped python 2 support since
version 6.0.0. New pip versions will parse the requires_python metadata
and avoid installing new versions of this package on python 2
environments. This is not the case for CentOS version of pip. To avoid
breakage, we pre-install the last more-itertools version with python 2
support when running tests on CentOS.

* https://github.com/erikrose/more-itertools/blob/master/docs/versions.rst
* pytest-dev/pytest#4770 (comment)

Signed-off-by: Athos Ribeiro <athos@redhat.com>

peterbe added a commit to mozilla-services/tecken that referenced this issue Feb 13, 2019

Update pytest to 4.2.1
This PR updates [pytest](https://pypi.org/project/pytest) from **4.2.0** to **4.2.1**.



<details>
  <summary>Changelog</summary>
  
  
   ### 4.2.1
   ```
   =========================

Bug Fixes
---------

- `2895 &lt;https://github.com/pytest-dev/pytest/issues/2895&gt;`_: The ``pytest_report_collectionfinish`` hook now is also called with ``--collect-only``.


- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Do not raise ``UsageError`` when an imported package has a ``pytest_plugins.py`` child module.


- `4347 &lt;https://github.com/pytest-dev/pytest/issues/4347&gt;`_: Fix output capturing when using pdb++ with recursive debugging.


- `4592 &lt;https://github.com/pytest-dev/pytest/issues/4592&gt;`_: Fix handling of ``collect_ignore`` via parent ``conftest.py``.


- `4700 &lt;https://github.com/pytest-dev/pytest/issues/4700&gt;`_: Fix regression where ``setUpClass`` would always be called in subclasses even if all tests
  were skipped by a ``unittest.skip()`` decorator applied in the subclass.


- `4739 &lt;https://github.com/pytest-dev/pytest/issues/4739&gt;`_: Fix ``parametrize(... ids=&lt;function&gt;)`` when the function returns non-strings.


- `4745 &lt;https://github.com/pytest-dev/pytest/issues/4745&gt;`_: Fix/improve collection of args when passing in ``__init__.py`` and a test file.


- `4770 &lt;https://github.com/pytest-dev/pytest/issues/4770&gt;`_: ``more_itertools`` is now constrained to &lt;6.0.0 when required for Python 2.7 compatibility.


- `526 &lt;https://github.com/pytest-dev/pytest/issues/526&gt;`_: Fix &quot;ValueError: Plugin already registered&quot; exceptions when running in build directories that symlink to actual source.



Improved Documentation
----------------------

- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Add note to ``plugins.rst`` that ``pytest_plugins`` should not be used as a name for a user module containing plugins.


- `4324 &lt;https://github.com/pytest-dev/pytest/issues/4324&gt;`_: Document how to use ``raises`` and ``does_not_raise`` to write parametrized tests with conditional raises.


- `4709 &lt;https://github.com/pytest-dev/pytest/issues/4709&gt;`_: Document how to customize test failure messages when using
  ``pytest.warns``.



Trivial/Internal Changes
------------------------

- `4741 &lt;https://github.com/pytest-dev/pytest/issues/4741&gt;`_: Some verbosity related attributes of the TerminalReporter plugin are now
  read only properties.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: https://docs.pytest.org/en/latest/
</details>

cathay4t added a commit to cathay4t/nmstate that referenced this issue Feb 13, 2019

Centos CI docker image: Upgrade pytest to 4.2.1
Newly build Centos CI docker image will fail due to issue:
    pytest-dev/pytest#4770

Upgrade the version to 4.2.1 fix this problem.

Signed-off-by: Gris Ge <fge@redhat.com>

tyll added a commit to tyll/nmstate that referenced this issue Feb 14, 2019

Centos CI docker image: Upgrade pytest to 4.2.1
Newly build Centos CI docker image will fail due to this issue:
    pytest-dev/pytest#4770

Upgrade the version to 4.2.1 to fix this problem.

Signed-off-by: Gris Ge <fge@redhat.com>

tyll added a commit to nmstate/nmstate that referenced this issue Feb 14, 2019

Centos CI docker image: Upgrade pytest to 4.2.1
Newly build Centos CI docker image will fail due to this issue:
    pytest-dev/pytest#4770

Upgrade the version to 4.2.1 to fix this problem.

Signed-off-by: Gris Ge <fge@redhat.com>

stuhood added a commit to pantsbuild/pants that referenced this issue Feb 15, 2019

Pin pytest version to avoid induced breakage from more-itertools tran…
…sitive dep (#7238)

### Problem

A floating transitive dependency of pytest, `more-itertools`, dropped support for python 2 in its 6.0.0 release -- see pytest-dev/pytest#4770. This is currently breaking our and our users' CI: see https://travis-ci.org/pantsbuild/pants/jobs/492004734. We could pin that dep, but as mentioned in pytest-dev/pytest#4770 (comment), pinning transitive deps of pytest would impose requirement constraints on users of pytest in pants.

### Solution

- Pin `pytest==3.0.7` for now.

### Result

python tests should no longer be broken.

vreuter added a commit to databio/pypiper that referenced this issue Feb 19, 2019

bors bot added a commit to rehandalal/therapist that referenced this issue Feb 19, 2019

Merge #61
61: Update pytest to 4.3.0 r=rehandalal a=pyup-bot


This PR updates [pytest](https://pypi.org/project/pytest) from **4.2.0** to **4.3.0**.



<details>
  <summary>Changelog</summary>
  
  
   ### 4.3.0
   ```
   =========================

Deprecations
------------

- `4724 &lt;https://github.com/pytest-dev/pytest/issues/4724&gt;`_: ``pytest.warns()`` now emits a warning when it receives unknown keyword arguments.

  This will be changed into an error in the future.



Features
--------

- `2753 &lt;https://github.com/pytest-dev/pytest/issues/2753&gt;`_: Usage errors from argparse are mapped to pytest&#39;s ``UsageError``.


- `3711 &lt;https://github.com/pytest-dev/pytest/issues/3711&gt;`_: Add the ``--ignore-glob`` parameter to exclude test-modules with Unix shell-style wildcards.
  Add the ``collect_ignore_glob`` for ``conftest.py`` to exclude test-modules with Unix shell-style wildcards.


- `4698 &lt;https://github.com/pytest-dev/pytest/issues/4698&gt;`_: The warning about Python 2.7 and 3.4 not being supported in pytest 5.0 has been removed.

  In the end it was considered to be more
  of a nuisance than actual utility and users of those Python versions shouldn&#39;t have problems as ``pip`` will not
  install pytest 5.0 on those interpreters.


- `4707 &lt;https://github.com/pytest-dev/pytest/issues/4707&gt;`_: With the help of new ``set_log_path()`` method there is a way to set ``log_file`` paths from hooks.



Bug Fixes
---------

- `4651 &lt;https://github.com/pytest-dev/pytest/issues/4651&gt;`_: ``--help`` and ``--version`` are handled with ``UsageError``.


- `4782 &lt;https://github.com/pytest-dev/pytest/issues/4782&gt;`_: Fix ``AssertionError`` with collection of broken symlinks with packages.
   ```
   
  
  
   ### 4.2.1
   ```
   =========================

Bug Fixes
---------

- `2895 &lt;https://github.com/pytest-dev/pytest/issues/2895&gt;`_: The ``pytest_report_collectionfinish`` hook now is also called with ``--collect-only``.


- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Do not raise ``UsageError`` when an imported package has a ``pytest_plugins.py`` child module.


- `4347 &lt;https://github.com/pytest-dev/pytest/issues/4347&gt;`_: Fix output capturing when using pdb++ with recursive debugging.


- `4592 &lt;https://github.com/pytest-dev/pytest/issues/4592&gt;`_: Fix handling of ``collect_ignore`` via parent ``conftest.py``.


- `4700 &lt;https://github.com/pytest-dev/pytest/issues/4700&gt;`_: Fix regression where ``setUpClass`` would always be called in subclasses even if all tests
  were skipped by a ``unittest.skip()`` decorator applied in the subclass.


- `4739 &lt;https://github.com/pytest-dev/pytest/issues/4739&gt;`_: Fix ``parametrize(... ids=&lt;function&gt;)`` when the function returns non-strings.


- `4745 &lt;https://github.com/pytest-dev/pytest/issues/4745&gt;`_: Fix/improve collection of args when passing in ``__init__.py`` and a test file.


- `4770 &lt;https://github.com/pytest-dev/pytest/issues/4770&gt;`_: ``more_itertools`` is now constrained to &lt;6.0.0 when required for Python 2.7 compatibility.


- `526 &lt;https://github.com/pytest-dev/pytest/issues/526&gt;`_: Fix &quot;ValueError: Plugin already registered&quot; exceptions when running in build directories that symlink to actual source.



Improved Documentation
----------------------

- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Add note to ``plugins.rst`` that ``pytest_plugins`` should not be used as a name for a user module containing plugins.


- `4324 &lt;https://github.com/pytest-dev/pytest/issues/4324&gt;`_: Document how to use ``raises`` and ``does_not_raise`` to write parametrized tests with conditional raises.


- `4709 &lt;https://github.com/pytest-dev/pytest/issues/4709&gt;`_: Document how to customize test failure messages when using
  ``pytest.warns``.



Trivial/Internal Changes
------------------------

- `4741 &lt;https://github.com/pytest-dev/pytest/issues/4741&gt;`_: Some verbosity related attributes of the TerminalReporter plugin are now
  read only properties.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: https://docs.pytest.org/en/latest/
</details>



Co-authored-by: pyup-bot <github-bot@pyup.io>

bors bot added a commit to mozilla/normandy that referenced this issue Feb 20, 2019

Merge #1743 #1744
1743: Update dependency webpack to v4.29.5 r=mythmon a=renovate[bot]

This PR contains the following updates:

| Package | Type | Update | Change | References |
|---|---|---|---|---|
| webpack | devDependencies | patch | `4.29.3` -> `4.29.5` | [source](https://togithub.com/webpack/webpack) |


1744: Scheduled weekly dependency update for week 07 r=mythmon a=pyup-bot






### Update [botocore](https://pypi.org/project/botocore) from **1.12.91** to **1.12.96**.


<details>
  <summary>Changelog</summary>
  
  
   ### 1.12.96
   ```
   =======

* api-change:``chime``: Update chime client to latest version
* api-change:``application-autoscaling``: Update application-autoscaling client to latest version
* api-change:``iot``: Update iot client to latest version
   ```
   
  
  
   ### 1.12.95
   ```
   =======

* api-change:``kinesisvideo``: Update kinesisvideo client to latest version
* api-change:``ec2``: Update ec2 client to latest version
   ```
   
  
  
   ### 1.12.94
   ```
   =======

* api-change:``rekognition``: Update rekognition client to latest version
* api-change:``mediatailor``: Update mediatailor client to latest version
* api-change:``efs``: Update efs client to latest version
   ```
   
  
  
   ### 1.12.93
   ```
   =======

* api-change:``lambda``: Update lambda client to latest version
   ```
   
  
  
   ### 1.12.92
   ```
   =======

* api-change:``appstream``: Update appstream client to latest version
* api-change:``codebuild``: Update codebuild client to latest version
* api-change:``mediapackage``: Update mediapackage client to latest version
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/botocore
  - Changelog: https://pyup.io/changelogs/botocore/
  - Repo: https://github.com/boto/botocore
</details>





### Update [cffi](https://pypi.org/project/cffi) from **1.11.5** to **1.12.1**.


<details>
  <summary>Changelog</summary>
  
  
   ### 1.12.1
   ```
   =======

* CPython 3 on Windows: we again no longer compile with ``Py_LIMITED_API``
  by default because such modules *still* cannot be used with virtualenv.
  The problem is that it doesn&#39;t work in CPython &lt;= 3.4, and for
  technical reason we can&#39;t enable this flag automatically based on the
  version of Python.

  Like before, `Issue 350`_ mentions a workaround if you still want
  the ``Py_LIMITED_API`` flag and *either* you are not concerned about
  virtualenv *or* you are sure your module will not be used on CPython
  &lt;= 3.4: pass ``define_macros=[(&quot;Py_LIMITED_API&quot;, None)]`` to the
  ``ffibuilder.set_source()`` call.
   ```
   
  
  
   ### 1.12
   ```
   =====

* `Direct support for pkg-config`__.

* ``ffi.from_buffer()`` takes a new optional *first* argument that gives
  the array type of the result.  It also takes an optional keyword argument
  ``require_writable`` to refuse read-only Python buffers.

* ``ffi.new()``, ``ffi.gc()`` or ``ffi.from_buffer()`` cdata objects
  can now be released at known times, either by using the ``with``
  keyword or by calling the new ``ffi.release()``.

* Windows, CPython 3.x: cffi modules are linked with ``python3.dll``
  again.  This makes them independant on the exact CPython version,
  like they are on other platforms.  **It requires virtualenv 16.0.0.**

* Accept an expression like ``ffi.new(&quot;int[4]&quot;, p)`` if ``p`` is itself
  another cdata ``int[4]``.

* CPython 2.x: ``ffi.dlopen()`` failed with non-ascii file names on Posix

* CPython: if a thread is started from C and then runs Python code (with
  callbacks or with the embedding solution), then previous versions of
  cffi would contain possible crashes and/or memory leaks.  Hopefully,
  this has been fixed (see `issue 362`_).

* Support for ``ffi.cdef(..., pack=N)`` where N is a power of two.
  Means to emulate ``pragma pack(N)`` on MSVC.  Also, the default on
  Windows is now ``pack=8``, like on MSVC.  This might make a difference
  in corner cases, although I can&#39;t think of one in the context of CFFI.
  The old way ``ffi.cdef(..., packed=True)`` remains and is equivalent
  to ``pack=1`` (saying e.g. that fields like ``int`` should be aligned
  to 1 byte instead of 4).

.. __: cdef.htmlpkgconfig
.. _`issue 362`: https://bitbucket.org/cffi/cffi/issues/362/


Older Versions
==============
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/cffi
  - Changelog: https://pyup.io/changelogs/cffi/
  - Docs: http://cffi.readthedocs.org
</details>





### Update [more-itertools](https://pypi.org/project/more-itertools) from **5.0.0** to **6.0.0**.


<details>
  <summary>Changelog</summary>
  
  
   ### 6.0.0
   ```
   This is the first Python 3-only release.

Python 2 users may use [version 5.0.0](https://github.com/erikrose/more-itertools/releases/tag/5.0.0).

See [the release notes](https://github.com/erikrose/more-itertools/blob/e36eeebc9d01d2dbbe232880741e88585a95bf7d/docs/versions.rst600) for the full list of changes.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/more-itertools
  - Changelog: https://pyup.io/changelogs/more-itertools/
  - Repo: https://github.com/erikrose/more-itertools
  - Docs: https://pythonhosted.org/more-itertools/
</details>





### Update [googleapis-common-protos](https://pypi.org/project/googleapis-common-protos) from **1.5.6** to **1.5.8**.


*The bot wasn't able to find a changelog for this release. [Got an idea?](https://github.com/pyupio/changelogs/issues/new)*

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/googleapis-common-protos
  - Repo: https://github.com/googleapis/googleapis
</details>





### Update [boto3](https://pypi.org/project/boto3) from **1.9.91** to **1.9.96**.


<details>
  <summary>Changelog</summary>
  
  
   ### 1.9.96
   ```
   ======

* api-change:``chime``: [``botocore``] Update chime client to latest version
* api-change:``application-autoscaling``: [``botocore``] Update application-autoscaling client to latest version
* api-change:``iot``: [``botocore``] Update iot client to latest version
   ```
   
  
  
   ### 1.9.95
   ```
   ======

* api-change:``kinesisvideo``: [``botocore``] Update kinesisvideo client to latest version
* api-change:``ec2``: [``botocore``] Update ec2 client to latest version
   ```
   
  
  
   ### 1.9.94
   ```
   ======

* api-change:``rekognition``: [``botocore``] Update rekognition client to latest version
* api-change:``mediatailor``: [``botocore``] Update mediatailor client to latest version
* api-change:``efs``: [``botocore``] Update efs client to latest version
   ```
   
  
  
   ### 1.9.93
   ```
   ======

* api-change:``lambda``: [``botocore``] Update lambda client to latest version
   ```
   
  
  
   ### 1.9.92
   ```
   ======

* api-change:``appstream``: [``botocore``] Update appstream client to latest version
* api-change:``codebuild``: [``botocore``] Update codebuild client to latest version
* api-change:``mediapackage``: [``botocore``] Update mediapackage client to latest version
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/boto3
  - Changelog: https://pyup.io/changelogs/boto3/
  - Repo: https://github.com/boto/boto3
</details>





### Update [Django](https://pypi.org/project/Django) from **2.0.12** to **2.0.13**.


<details>
  <summary>Changelog</summary>
  
  
   ### 2.0.13
   ```
   ===========================

*February 12, 2019*

Django 2.0.13 fixes a regression in 2.0.12/2.0.11.

Bugfixes
========

* Fixed crash in ``django.utils.numberformat.format_number()`` when the number
  has over 200 digits (🎫`30177`).


===========================
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/django
  - Changelog: https://pyup.io/changelogs/django/
  - Homepage: https://www.djangoproject.com/
</details>





### Update [django-countries](https://pypi.org/project/django-countries) from **5.3.2** to **5.3.3**.


<details>
  <summary>Changelog</summary>
  
  
   ### 5.3.3
   ```
   ========================

- Add test coverage for Django Rest Framework 3.9.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/django-countries
  - Changelog: https://pyup.io/changelogs/django-countries/
  - Repo: https://github.com/SmileyChris/django-countries/
</details>





### Update [newrelic](https://pypi.org/project/newrelic) from **4.12.0.113** to **4.14.0.115**.


<details>
  <summary>Changelog</summary>
  
  
   ### 4.14.0.115
   ```
   This release of the Python agent adds support for native coroutines and generators with the background task API and adds support for Kubernetes detection.

The agent can be installed using easy_install/pip/distribute via the Python Package Index or can be downloaded directly from the New Relic download site.

Features


background_task can now be used with coroutines

The background_task decorator API can now be used with native coroutines and generators.

background_task(name=&#39;my_coroutine&#39;)
 async def my_coroutine():
   await asyncio.sleep(0.1)

Add support for collection of Kubernetes metadata

The agent will now collect environment variables prefixed by NEW_RELIC_METADATA_ as additional metadata. Some of this metadata may be added to Transaction events to provide context between your Kubernetes cluster and your services. For details on the benefits (currently in beta) see this blog post.

The agent now also collects the KUBERNETES_SERVICE_HOST environment variable to detect when the application is running on Kubernetes. The data is used to link the application to the host machine when using the New Relic infrastructure product.


Bug Fixes


Using time trace decorators allowed coroutines to become Iterables and generators to become awaitables

When using time trace decorators native coroutines were converted to iterables. Additionally generators were converted to awaitables. The behavior of generators, native coroutines, and awaitable generators is now unchanged when using time trace decorators.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/newrelic
  - Changelog: https://pyup.io/changelogs/newrelic/
  - Homepage: http://newrelic.com/docs/python/new-relic-for-python
</details>





### Update [pytest](https://pypi.org/project/pytest) from **4.2.0** to **4.2.1**.


<details>
  <summary>Changelog</summary>
  
  
   ### 4.2.1
   ```
   =========================

Bug Fixes
---------

- `2895 &lt;https://github.com/pytest-dev/pytest/issues/2895&gt;`_: The ``pytest_report_collectionfinish`` hook now is also called with ``--collect-only``.


- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Do not raise ``UsageError`` when an imported package has a ``pytest_plugins.py`` child module.


- `4347 &lt;https://github.com/pytest-dev/pytest/issues/4347&gt;`_: Fix output capturing when using pdb++ with recursive debugging.


- `4592 &lt;https://github.com/pytest-dev/pytest/issues/4592&gt;`_: Fix handling of ``collect_ignore`` via parent ``conftest.py``.


- `4700 &lt;https://github.com/pytest-dev/pytest/issues/4700&gt;`_: Fix regression where ``setUpClass`` would always be called in subclasses even if all tests
  were skipped by a ``unittest.skip()`` decorator applied in the subclass.


- `4739 &lt;https://github.com/pytest-dev/pytest/issues/4739&gt;`_: Fix ``parametrize(... ids=&lt;function&gt;)`` when the function returns non-strings.


- `4745 &lt;https://github.com/pytest-dev/pytest/issues/4745&gt;`_: Fix/improve collection of args when passing in ``__init__.py`` and a test file.


- `4770 &lt;https://github.com/pytest-dev/pytest/issues/4770&gt;`_: ``more_itertools`` is now constrained to &lt;6.0.0 when required for Python 2.7 compatibility.


- `526 &lt;https://github.com/pytest-dev/pytest/issues/526&gt;`_: Fix &quot;ValueError: Plugin already registered&quot; exceptions when running in build directories that symlink to actual source.



Improved Documentation
----------------------

- `3899 &lt;https://github.com/pytest-dev/pytest/issues/3899&gt;`_: Add note to ``plugins.rst`` that ``pytest_plugins`` should not be used as a name for a user module containing plugins.


- `4324 &lt;https://github.com/pytest-dev/pytest/issues/4324&gt;`_: Document how to use ``raises`` and ``does_not_raise`` to write parametrized tests with conditional raises.


- `4709 &lt;https://github.com/pytest-dev/pytest/issues/4709&gt;`_: Document how to customize test failure messages when using
  ``pytest.warns``.



Trivial/Internal Changes
------------------------

- `4741 &lt;https://github.com/pytest-dev/pytest/issues/4741&gt;`_: Some verbosity related attributes of the TerminalReporter plugin are now
  read only properties.
   ```
   
  
</details>


 

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/pytest
  - Changelog: https://pyup.io/changelogs/pytest/
  - Homepage: https://docs.pytest.org/en/latest/
</details>





### Update [sphinx_rtd_theme](https://pypi.org/project/sphinx_rtd_theme) from **0.4.2** to **0.4.3**.


*The bot wasn't able to find a changelog for this release. [Got an idea?](https://github.com/pyupio/changelogs/issues/new)*

<details>
  <summary>Links</summary>
  
  - PyPI: https://pypi.org/project/sphinx-rtd-theme
  - Repo: https://github.com/rtfd/sphinx_rtd_theme/
</details>







Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: pyup-bot <github-bot@pyup.io>

schandrika added a commit to schandrika/volttron that referenced this issue Feb 22, 2019

schandrika added a commit to schandrika/volttron that referenced this issue Feb 22, 2019

schandrika added a commit to schandrika/volttron that referenced this issue Feb 22, 2019

schandrika added a commit to schandrika/volttron that referenced this issue Feb 22, 2019

Eric-Arellano added a commit to Eric-Arellano/pants that referenced this issue Feb 27, 2019

Squashed commit of the following:
commit efaae09
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 23:41:55 2019 -0700

    Add debugging to release.sh for linux ucs2

    It looks like the bootstrap part now works completely as intended! It's consistently using UCS2.

    But the release script is failing for some reason. Turn on debugging to wake up to hopefully some insight tomorrow morning..

commit 4cb6cae
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 18:27:22 2019 -0700

    Squashed commit of the following:

    commit 9c754dc
    Merge: 3f30d39 7819724
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Tue Feb 26 17:17:34 2019 -0700

        Merge branch 'master' of github.com:pantsbuild/pants into pex-interpreter-constraints

    commit 3f30d39
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Tue Feb 26 17:12:01 2019 -0700

        Fix issue with compatibility_or_constraints() returning a tuple

        add_interpreter_constraints() expects a str, so we must unpack the tuple when calling it.

    commit ff17f73
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 22:46:16 2019 -0700

        Revert "Constrain ci.sh to the exact Python interpreter version"

        This reverts commit 887a8ef.

        This change is necessary to fix the original motivation for this PR, but it does not really belong in this PR anymore. Instead, it should be in the Py2 ABI PR (7235). This PR should be kept more generic, and there is no logical connection to the changes being made with ci.sh, beyond that original motivating problem.

    commit 6b07abd
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 21:49:52 2019 -0700

        Remove bad import

        My bad for not catching this before pushing.

    commit 2c6fdb0
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 21:37:41 2019 -0700

        Generify solution by using compatibility_or_constraints()

        Instead of applying a bandaid for only `./pants binary`, John proposed fixing the issue with our PexBuilderWrapper itself. So, we use `compatibility_or_constrains()`, which will first try to return the target's compatibility, else will return the Python Setup subystem's value.

        The wrapper still is not ideal and John proposes killing add_interpreter_constraint() and add_interpreter_constraints_from() to instead automatically be setting the interpreter constraints from the targets graph. This PR does not make that change for the scope, but this should be noted.

    commit b71f164
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 21:03:46 2019 -0700

        Fix typo

    commit 3bca020
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 20:31:14 2019 -0700

        Add global interpreter constraints to Python binary creation

    commit 887a8ef
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Fri Feb 22 21:05:50 2019 -0700

        Constrain ci.sh to the exact Python interpreter version

        Earlier we allowed the patch version to float. We discovered in pantsbuild#7235 with the CI run https://travis-ci.org/pantsbuild/pants/jobs/497208431#L891 that PEX was building with 2.7.10 but running with 2.7.13.

        The fix will require having Pants pass interpreter constraints to Pex. Even with that change though, the CI shard would still have the issue because the constraint would be floating.

        Now, we have the constraint be exact.

commit 0d25bcc
Merge: 373ffee 7819724
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 17:41:10 2019 -0700

    Merge branch 'master' of github.com:pantsbuild/pants into py2-wheels-abi-specified

commit 373ffee
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 17:39:25 2019 -0700

    Configure PEX_PYTHON on linux UCS2

    It looks like ./pants binary now completely builds the PEX with 2.7.15 / UCS2! But then when trying to run `./pants.pex -V`, it resolves the runtime interpreter to 2.7.13 :/

    I'm not sure how the runtime interpreter selection is supposed to work, but there is an env var PEX_PYTHON that allows passing a path to the value you always want to use. So, we use this for now.

commit 7819724
Author: Alex Schmitt <codealchemy@users.noreply.github.com>
Date:   Tue Feb 26 13:42:36 2019 -0800

    Allow tasks to opt-in to target filtering (pantsbuild#7283)

    Followup to pantsbuild#7275 following [discussion](pantsbuild#7275 (comment)) that the target filter was being applied to tasks that do not support it (e.g. tasks that don't access targets via `get_targets()`)

    This adds a class property to `Task` that allows subclasses to effectively opt-in to the new behavior - and sets that flag to `True` for `fmt` and `lint` tasks.

commit 3bf2d28
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 12:11:17 2019 -0700

    Add Pyenv back to Travis path

    Even though we directly pass $PY, later processes expect the 2.7.15 interpreter to be discoverable so Pyenv must be on the path.

commit 2166efe
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 09:52:10 2019 -0700

    Set $PY to disambiguate which Py2.7 version to use

    Interpreter constraints don't work, as previously noted.

commit 8dd215d
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 09:43:42 2019 -0700

    Allow user to set $PY in ci.sh

    If not set, will resolve to the Python version being used. We should allow the user to set it though in cases like this PR, where we may have to set $PY to a very specific interpreter path.

commit 49fe576
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 09:41:35 2019 -0700

    Stop hardcoding interpreter constraints

    Let ci.sh determine them based on the $PY value. While working on the Linux UCS2 shard, it became clear that what really matters is which interpreter $PY (i.e. `python2`) resolves to. Setting the interpreter constraints will not impact what this resolves to nor how we bootstrap Pants. So, we should focus on setting $PY and let the interpreter constraints be resolved accordingly.

commit c3dd843
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 08:49:44 2019 -0700

    Improve wording.

commit f810849
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 08:43:42 2019 -0700

    Move interpreter constraints to Docker env entry

    Docker does not pull in external env vars. Instead, we must specify this in the Dockerfile.

    This change has added benefit that it moves all of the Py2 logic into the Dockerfile out of .travis.yml, and leaves .travis.yml solely to call the Dockerfile.

commit b9efbf0
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 01:03:21 2019 -0700

    Also set PANTS_PYTHON_SETUP_INTERPRETER_CONSTRAINTS for OSX

    Even though it was resolving correctly already, explicit is better than implicit.

commit 8402c1f
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 01:01:03 2019 -0700

    Ensure Linux UCS2 always uses Py2.7.15 (UCS2)

    It was not enough to install 2.7.15 and use Pyenv global. The 2.7.13 (UCS2) interpreter was still being recognized.

commit 225f153
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 26 00:53:56 2019 -0700

    Remove bad merge lines

commit 1be9e90
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 25 22:41:04 2019 -0700

    Squashed commit of the following:

    commit 6b07abd
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 21:49:52 2019 -0700

        Remove bad import

        My bad for not catching this before pushing.

    commit 2c6fdb0
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 21:37:41 2019 -0700

        Generify solution by using compatibility_or_constraints()

        Instead of applying a bandaid for only `./pants binary`, John proposed fixing the issue with our PexBuilderWrapper itself. So, we use `compatibility_or_constrains()`, which will first try to return the target's compatibility, else will return the Python Setup subystem's value.

        The wrapper still is not ideal and John proposes killing add_interpreter_constraint() and add_interpreter_constraints_from() to instead automatically be setting the interpreter constraints from the targets graph. This PR does not make that change for the scope, but this should be noted.

    commit b71f164
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 21:03:46 2019 -0700

        Fix typo

    commit 3bca020
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 20:31:14 2019 -0700

        Add global interpreter constraints to Python binary creation

    commit 887a8ef
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Fri Feb 22 21:05:50 2019 -0700

        Constrain ci.sh to the exact Python interpreter version

        Earlier we allowed the patch version to float. We discovered in pantsbuild#7235 with the CI run https://travis-ci.org/pantsbuild/pants/jobs/497208431#L891 that PEX was building with 2.7.10 but running with 2.7.13.

        The fix will require having Pants pass interpreter constraints to Pex. Even with that change though, the CI shard would still have the issue because the constraint would be floating.

        Now, we have the constraint be exact.

commit f530843
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 25 22:39:29 2019 -0700

    Move unit tests above wheel building shards

    Now that we have 4 wheel building shards (soon 6)—and 2 of them require bootstrapping Pants—we move unit tests above to get more immediate feedback on if the PR is good or not. We still keep them high up relative to others because several major workflows require wheel building output.

commit 223541e
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 25 22:35:02 2019 -0700

    Fix Linux UCS2 using 2.7.13 with UCS4 instead of UCS2 sometimes

    There were two versions of 2.7.13 installed on the system, so Pants would sometimes choose an unintended version and would be inconsistent.

commit 8428376
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 25 21:03:22 2019 -0700

    Fix typo from squashed pex-constraints

commit 48ef4dd
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 25 20:44:37 2019 -0700

    Squashed commit of the following:

    commit 3bca020
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Mon Feb 25 20:31:14 2019 -0700

        Add global interpreter constraints to Python binary creation

    commit 887a8ef
    Author: Eric Arellano <ericarellano@me.com>
    Date:   Fri Feb 22 21:05:50 2019 -0700

        Constrain ci.sh to the exact Python interpreter version

        Earlier we allowed the patch version to float. We discovered in pantsbuild#7235 with the CI run https://travis-ci.org/pantsbuild/pants/jobs/497208431#L891 that PEX was building with 2.7.10 but running with 2.7.13.

        The fix will require having Pants pass interpreter constraints to Pex. Even with that change though, the CI shard would still have the issue because the constraint would be floating.

        Now, we have the constraint be exact.

commit 78a1aa9
Merge: 04c4ee0 26b0179
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 25 20:44:15 2019 -0700

    Merge branch 'master' of github.com:pantsbuild/pants into py2-wheels-abi-specified

commit 26b0179
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Mon Feb 25 16:23:46 2019 -0800

    try defining algebraic Executables in the native backend to compose more readable toolchains (pantsbuild#6855)

    ### Problem

    As can be seen in `native_toolchain.py` in e.g. pantsbuild#6800, it is often difficult to follow changes to the native backend, especially changes which modify the order of resources such as library and include directories for our linkers and compilers. This is because we have been patching together collections of these resources "by hand", without applying any higher-level structure (explicitly constructing each `path_entries` and `library_dirs` field for every executable, every time, for example). This was done to avoid creating abstractions that might break down due to the rapidly evolving code. We can now take the step of more clearly defining the relationships between the toolchains we construct hierarchically.

    ### Solution

    - Add an `ExtensibleAlgebraic` mixin which allows declaring list fields which can be immutably modified one at a time with `prepend_field` and `append_field`, or all at once with `sequence`.
    - Add a `for_compiler` method to `BaseLinker` to wrap the specific process required to prep our linker for a specific compiler.
    - Apply all of the above in `native_toolchain.py`.

    ### Result

    The compilers and linkers provided by `@rule`s in `native_toolchain.py` are composed with consistent verbs from `ExtensibleAlgebraic`, leading to increased readability.

commit cd4c773
Author: Nora Howard <nh@baroquebobcat.com>
Date:   Mon Feb 25 17:22:08 2019 -0700

    [zinc-compile] fully adopt enum based switches for hermetic/not; test coverage (pantsbuild#7268)

    @cosmicexplorer wrote this as part of pantsbuild#7227. This patch is pulling out just the Zinc changes, with a few differences. I also added a new test for hermetic failures and some additional assertions to ensure that the right message is being communicated on failures, while doing that I discovered that hermetic/non-hermetic appear to produce error messages on different streams.

commit c095f3b
Author: Alex Schmitt <codealchemy@users.noreply.github.com>
Date:   Mon Feb 25 10:49:57 2019 -0800

    Update TargetFiltering args for applying criteria (pantsbuild#7280)

    Update the class to take the criteria in the constructor, and helper methods take the targets against which to apply said criteria.

    From suggestion pantsbuild#7275

commit a87a01b
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Fri Feb 22 18:53:52 2019 -0800

    don't do a pants run on osx (pantsbuild#7278)

    ### Problem

    Fixes pantsbuild#7247, catching a case that was otherwise missed.

    ### Solution

    - Don't do a `./pants run` on osx using the gnu toolchain in testing, as it doesn't work yet.

    ### Result

    As noted in pantsbuild#7249, it's strange that that PR passes but the nightly job fails -- it may be nondeterministic.

commit a86639e
Author: Alex Schmitt <codealchemy@users.noreply.github.com>
Date:   Fri Feb 22 16:52:32 2019 -0800

    Add filtering subsystem to permit skipping targets by tags (pantsbuild#7275)

    This subsystem is responsible for handling options meant to exclude targets from specific tasks

    The application of the logic itself is contained in the TargetFiltering class - which currently only handles excluding targets with provided tags and can be expanded upon for additional filtering options.

commit b34d66f
Author: John Sirois <john.sirois@gmail.com>
Date:   Fri Feb 22 16:46:32 2019 -0800

    Prepare the 1.15.0.dev1 release. (pantsbuild#7277)

commit 8069653
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Fri Feb 22 11:41:58 2019 -0800

    cache python tools in ~/.cache/pants (pantsbuild#7236)

    ### Problem

    This runs for (on my laptop) about 16 seconds every time I do a `clean-all`:
    ```
    22:27:23 00:02   [native-compile]
    22:27:23 00:02     [conan-prep]
    22:27:23 00:02       [create-conan-pex]
    22:27:39 00:18     [conan-fetch]
    ```

    It doesn't seem like we need to be putting this tool in the task workdir as the python requirements list is pretty static. Conan in particular will be instantiated by invoking almost every goal, and it is a nontrivial piece of software to resolve each time.

    Also, we aren't mixing in interpreter identity to the generated pex filename, which is a bug that has so far gone undetected: see pantsbuild#7236 (comment).

    ### Solution

    - Take the `stable_json_sha1()` of the requirements of each python tool generated by `PythonToolPrepBase` to generate a fingerprinted pex filename.
    - Stick it in the pants cachedir so it doesn't get blown away by a clean-all.
    - Add an `--interpreter-constraints` option to pex tools (where previously the repo's `--python-setup-interpreter-constraints` were implicitly used).
    - Ensure the selected interpreter identity is mixed into the fingerprinted filename.
    - Add a test for the pex filename fingerprinting and that the pex can be successfully executed for python 2 and 3 constraints.

    ### Result

    A significant amount of time spent waiting after clean builds is removed, and pex tools can have their own interpreter constraints as necessary.

commit 04c4ee0
Author: Eric Arellano <ericarellano@me.com>
Date:   Fri Feb 22 12:36:56 2019 -0700

    Move debugging to proper location

    It's failing before the release.sh script is even called. The bootstrap command is what's failing.

commit e502f58
Author: Eric Arellano <ericarellano@me.com>
Date:   Fri Feb 22 12:24:33 2019 -0700

    Fix linux ucs4 stage being overriden to cron instead of test

commit 2cd72e4
Author: Eric Arellano <ericarellano@me.com>
Date:   Fri Feb 22 09:47:16 2019 -0700

    Add back logging to debug osx ucs4

commit c9e1650
Merge: 7da092b 4097052
Author: Eric Arellano <ericarellano@me.com>
Date:   Fri Feb 22 09:40:38 2019 -0700

    Merge branch 'master' of github.com:pantsbuild/pants into py2-wheels-abi-specified

commit 4097052
Author: Stu Hood <stuhood@twitter.com>
Date:   Thu Feb 21 13:49:16 2019 -0800

    Prepare 1.14.0rc3 (pantsbuild#7274)

commit ea33c36
Author: Nora Howard <nh@baroquebobcat.com>
Date:   Wed Feb 20 12:43:32 2019 -0700

    [jvm-compile] fix typo: s/direcotry/directory/ (pantsbuild#7265)

    Fix a typo in `jvm_compile.py`

commit 761849e
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Wed Feb 20 11:38:39 2019 -0800

    Fix nightly cron ctypes enum failure (pantsbuild#7249)

    ### Problem

    Resolves pantsbuild#7247. `ToolchainVariant('gnu')` does not in fact `== 'gnu'`.

    ### Solution

    - Use `.resolve_for_enum_variant()` instead of comparing with equality in that one failing test (I missed this in pantsbuild#7226, I fixed the instance earlier in the file though).
    - Raise an error when trying to use `==` on an enum to avoid this from happening again.
    - Note that in Python 3 it appears that `__hash__` must be explicitly implemented whenever `__eq__` is overridden, and this appears undocumented.

    ### Result

    The nightly cron job should be fixed, and enums are now a little more difficult to screw up.

    # Open Questions
    It's a little unclear why this didn't fail in CI -- either the test was cached, or some but not all travis osx images are provisioned with the correct dylib, causing a nondeterministic error, or something else?

commit 0e6a144
Author: Daniel Wagner-Hall <dawagner@gmail.com>
Date:   Wed Feb 20 04:14:23 2019 +0000

    Node is Display (pantsbuild#7264)

    Use standard traits, rather than our own methods which happen to do the same thing.

commit 904e3f3
Author: Ekaterina Tyurina <tyurina.katty@yandex.ru>
Date:   Wed Feb 20 01:03:42 2019 +0000

    Allow passing floating point numbers from rust to python (pantsbuild#7259)

    PR allows passing float points from Rust to Python.
    ```
    externs::store_f64(v: f64)
    ```

commit 7da092b
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 17:03:59 2019 -0700

    Fix platform default shards bootstrapping

    - OSX UCS2 shard no longer was setting RUN_PANTS_FROM_PEX anywhere
    - Linux UCS4 had its before_script entry being override by travis_image.

commit 38e1cf7
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 15:35:15 2019 -0700

    Remove unncessary RUN_PANTS_FROM_PEX=0

    Now that we don't it in the base_build_wheels_env, we don't need to set this.

    This was actually causing a failure. ./pants only checks if the env var is set, and not what its value is.

commit 621137e
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 15:16:04 2019 -0700

    Fix improper call to {osx,linux}_config_env

    They don't exist apparently.

commit 0da5f91
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 15:13:11 2019 -0700

    Stop pulling down PEX

    Use the {osx,linux}_config images rather than {osx,linux}_test_config images.

commit 513cd50
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 14:35:19 2019 -0700

    release.sh still needs to run from PEX

    Change how we handle env var to not use PEX when first bootstrapping, then use it in the followup release.sh command.

commit dc36d94
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 14:29:19 2019 -0700

    Also deduplicate Pyenv env vars for OSX

    Realized this is a better design while working on pantsbuild#7261.

commit ad45b2d
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 14:25:28 2019 -0700

    Revert "Turn on PEX_VERBOSE for OSX ucs4 shard"

    This reverts commit 28b9e8b.

commit fb9ef9b
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 14:24:21 2019 -0700

    Revert "Run PEX with -v*9"

    This reverts commit edf81ef.

commit ab534e2
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 14:23:28 2019 -0700

    Bootstrap Pants when using new Python install

    We can't use the PEX from AWS because the Python versions do not match up.

commit 0b59e46
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 12:36:08 2019 -0700

    Fix gcc no input file issues by passing dummy file

    For Linux UCS2, the build was failing due to gcc complaining it could not find any files. This reproduced locally when running `./pants3 setup-py --run="bdist_wheel --py-limited-api cp36" src/python/pants:pants-packaged` on OSX.

    John suggested and gave the code snippet to pass a dummy file so this no longer happens. Thanks John!

commit edf81ef
Author: Eric Arellano <ericarellano@me.com>
Date:   Tue Feb 19 09:33:12 2019 -0700

    Run PEX with -v*9

    PEX_VERBOSE only impacts runtime output. -vvv... impacts build time output.

commit 7c17c0a
Merge: 6ecb550 222bc11
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 18 17:47:13 2019 -0700

    Merge branch 'master' of github.com:pantsbuild/pants into py2-wheels-abi-specified

commit 222bc11
Author: Daniel Wagner-Hall <dawagner@gmail.com>
Date:   Mon Feb 18 21:12:30 2019 +0000

    Revert remote execution from tower to grpcio (pantsbuild#7256)

    We're seeing weird broken connection errors with tower.

    We'll probably just chuck some retries in and be happy, but for now, let's get back to a more stable time.

    * Revert "Remove unused operation wrapper (pantsbuild#7194)"

    This reverts commit 9400024.

    * Revert "Switch operation getting to tower (pantsbuild#7108)"

    This reverts commit 0375b30.

    * Revert "Remote execution uses tower-grpc to start executions (pantsbuild#7049)"

    This reverts commit 28683c7.

commit 3da2165
Author: Ekaterina Tyurina <tyurina.katty@yandex.ru>
Date:   Mon Feb 18 17:16:48 2019 +0000

    Scheduler returns metrics as a dictionary instead of a tuple of tuples (pantsbuild#7255)

    ### Problem
    Scheduler returns metrics as a tuple of tuples (key, value). And later this tuple is transformed into a dictionary.
    It is considered to use metrics to return to python part zipkin span info and dict type will be more convenient.

    ### Solution
    Scheduler_metrics returns a store_dict  instead of store_tuple.

commit 6ecb550
Author: Eric Arellano <ericarellano@me.com>
Date:   Sat Feb 16 19:57:25 2019 -0800

    Fix Dockerfile copyright year and add comment

commit 8d69dc2
Author: Eric Arellano <ericarellano@me.com>
Date:   Sat Feb 16 19:18:45 2019 -0800

    Improve naming of Build Wheels shards

    Make it more explicit how shard is configured / which wheel building config it has. Whereas for most shards we specify if they run with Py36 vs Py27 in parantheses, it is actually very important we make explicit the wheel building config, as it impacts which wheels we end up producing.

commit 170e9c8
Author: Eric Arellano <ericarellano@me.com>
Date:   Sat Feb 16 19:10:24 2019 -0800

    Install OpenSSL on OSX UCS4 shard

    The shard was failing when trying to build cryptography from an sdist because it could not find openssl. So, we now explicitly install it with Brew and modify the env vars to expose it. This is identical to how we install Py3 on OSX.

commit e87f567
Author: Eric Arellano <ericarellano@me.com>
Date:   Sat Feb 16 18:14:57 2019 -0800

    Fix typo in Dockerfile path

    The folder path is py27, not py2!

commit cb50136
Author: Stu Hood <stuhood@twitter.com>
Date:   Fri Feb 15 20:04:46 2019 -0800

    Prepare 1.14.0.rc2 instead. (pantsbuild#7251)

commit 28b9e8b
Author: Eric Arellano <ericarellano@me.com>
Date:   Fri Feb 15 13:38:21 2019 -0800

    Turn on PEX_VERBOSE for OSX ucs4 shard

    I can't reproduce the same failure locally. John was suspicious why for the problematic dependencies the sdist isn't being used to build the wheel when the bdist is not released for cp27mu. Hopefully this provides some insight.

commit f7472aa
Merge: 1e83f37 1ece461
Author: Eric Arellano <ericarellano@me.com>
Date:   Fri Feb 15 13:15:26 2019 -0800

    Merge branch 'master' of github.com:pantsbuild/pants into py2-wheels-abi-specified

commit 1ece461
Author: Stu Hood <stuhood@twitter.com>
Date:   Fri Feb 15 10:07:23 2019 -0800

    Prepare 1.14.0 (pantsbuild#7246)

commit fedc91c
Author: Stu Hood <stuhood@twitter.com>
Date:   Fri Feb 15 10:01:40 2019 -0800

    Avoid capturing Snapshots for previously digested codegen outputs (pantsbuild#7241)

    ### Problem

    As described in pantsbuild#7229, re-capturing `Snapshots` on noop runs in `SimpleCodegenTask` caused a performance regression for larger codegen usecases.

    ### Solution

    Remove features from the python-exposed `Snapshot` API that would prevent them from being roundtrippable via a `Digest` (including preservation of canonical paths, and preservation of literal ordering... ie. pantsbuild#5802), add support for optimistically loading a `Snapshot` from a `Digest`, and then reuse code to dump/load a `Digest` for the codegen directories to skip `Snapshot` capturing in cases where the `Digest` had already been stored.

    ### Result

    Very large codegen noop usecase runtimes reduced from `~15.2` seconds to `~3.05` seconds. Fixes pantsbuild#7229, and fixes pantsbuild#5802.

commit 594f91f
Author: Ekaterina Tyurina <tyurina.katty@yandex.ru>
Date:   Fri Feb 15 01:54:51 2019 +0000

    Add checks if values of flags zipkin-trace-id and zipkin-parent-id are valid (pantsbuild#7242)

    ### Problem
    When pants are called with flags zipkin-trace-id and zipkin-parent-id an assertion error is raised if the values of the flag are of the wrong format. The error is not informative.

    ### Solution
    Checks of values of flags zipkin-trace-id and zipkin-parent-id are added with a better error explanation. Users of the pants are asked to use 16-character  or 32-character hex string.
    Also, tests are added for these checks.

commit bc0536c
Author: Stu Hood <stuhood@twitter.com>
Date:   Thu Feb 14 13:59:26 2019 -0800

    Remove deprecated test classes (pantsbuild#7243)

    ### Problem

    `BaseTest` and the v1-aware `TaskTestBase` are long deprecated. Additionally, the `GraphTest` classes used v2 APIs that existed before `TestBase` came around.

    ### Solution

    Delete deprecated classes, and port `GraphTest` to `TestBase`.

commit e4456fd
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Tue Feb 12 18:09:35 2019 -0800

    fix expected pytest output for pytest integration after pinning to 3.0.7 (pantsbuild#7240)

    ### Problem

    pantsbuild#7238 attempted to fix an upstream pytest issue (and therefore unbreak our CI) by pinning the default pytest version in our pytest subsystem to `pytest==3.0.7`. This worked, but broke a few of our other tests which relied on specific pytest output, and master is broken now (sorry!).

    I also hastily merged pantsbuild#7226, which introduced another test failure, which I have fixed. These are the only failing tests, and these all now pass locally on my laptop.

    ### Solution

    - Fix expected pytest output in pytest runner testing.

    ### Result

    I think it's still a good idea to string match pytest output unless we suddenly have to change pytest versions drastically like this again.

commit e382541
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Tue Feb 12 12:54:49 2019 -0800

    Canonicalize enum pattern matching for execution strategy, platform, and elsewhere (pantsbuild#7226)

    ### Problem

    In pantsbuild#7092 we added [`NailgunTask#do_for_execution_strategy_variant()`](https://github.com/cosmicexplorer/pants/blob/70977ef064305b78406a627e07f4dae3a60e4ae4/src/python/pants/backend/jvm/tasks/nailgun_task.py#L31-L43), which allowed performing more declarative execution strategy-specific logic in nailgunnable tasks. Further work with rsc will do even more funky things with our nailgunnable task logic, and while we will eventually have a unified story again for nailgun and subprocess invocations with the v2 engine (see pantsbuild#7079), for now having this check that we have performed the logic we expect all execution strategy variants is very useful.

    This PR puts that pattern matching logic into `enum()`: https://github.com/pantsbuild/pants/blob/84cf9a75dbf68cf7126fe8372ab9b2f48720464d/src/python/pants/util/objects.py#L173-L174, among other things.

    **Note:** `TypeCheckError` and other exceptions are moved up from further down in `objects.py`.

    ### Solution

    - add `resolve_for_enum_variant()` method to `enum` which does the job of the previous `do_for_execution_strategy_variant()`
    - make the native backend's `Platform` into an enum.
    - stop silently converting a `None` argument to the enum's `create()` classmethod into its`default_value`.
    - add `register_enum_option()` helper method to register options based on enum types.

    ### Result

    We have a low-overhead way to convert potentially-tricky conditional logic into a checked pattern matching-style interface with `enum()`, and it is easier to register enum options.

commit d0432df
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Tue Feb 12 12:50:59 2019 -0800

    Pin pytest version to avoid induced breakage from more-itertools transitive dep (pantsbuild#7238)

    ### Problem

    A floating transitive dependency of pytest, `more-itertools`, dropped support for python 2 in its 6.0.0 release -- see pytest-dev/pytest#4770. This is currently breaking our and our users' CI: see https://travis-ci.org/pantsbuild/pants/jobs/492004734. We could pin that dep, but as mentioned in pytest-dev/pytest#4770 (comment), pinning transitive deps of pytest would impose requirement constraints on users of pytest in pants.

    ### Solution

    - Pin `pytest==3.0.7` for now.

    ### Result

    python tests should no longer be broken.

commit 3d7a295
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Mon Feb 11 22:02:21 2019 -0800

    add a TypedCollection type constraint to reduce boilerplate for datatype tuple fields (pantsbuild#7115)

    ### Problem

    *Resolves pantsbuild#6936.*

    There's been a [TODO in `pants.util.objects.Collection`](https://github.com/pantsbuild/pants/blob/c342fd3432aa0d73e402d2db7e013ecfcc76e9c8/src/python/pants/util/objects.py#L413) for a while to typecheck datatype tuple fields.

    pantsbuild#6936 has some thoughts on how to do this, but after realizing I could split out `TypeConstraint` into a base class and then introduce `BasicTypeConstraint` for type constraints which only act on the type, I think that ticket is invalidated as this solution is much cleaner.

    ### Solution

    - Split out logic for basic type checking (without looking at the object itself) into a `BasicTypeConstraint` class, which `Exactly` and friends inherit from.
    - Create the `TypedCollection` type constraint, which checks that its argument is iterable and then validates each element of the collection with a `BasicTypeConstraint` constructor argument.
      - Note that `TypedCollection` is a `TypeConstraint`, but not a `BasicTypeConstraint`, as it has to inspect the actual object object to determine whether each element matches the provided `BasicTypeConstraint`.
    - Move `pants.util.objects.Collection` into `src/python/pants/engine/objects.py`, as it is specifically for engine objects.
    - Use `TypedCollection` for the `dependencies` field of the datatype returned by `Collection.of()`.

    ### Result

    - `datatype` consumers and creators no longer have to have lots of boilerplate when using collections arguments, and those arguments can now be typechecked and made hashable for free!

    ### TODO in followup: `wrapper_type`

    See pantsbuild#7172.

commit 1e83f37
Author: Eric Arellano <ericarellano@me.com>
Date:   Mon Feb 11 17:37:31 2019 -0700

    Setup UCS2 vs UCS4 travis shards

    We must now build pantsbuild.pants with both unicode versions for Py2. So, we introduce Py2 to do this.

    We use Pyenv to install interpreter with the relevant encoding where necessary. See https://stackoverflow.com/questions/38928942/build-python-as-ucs-4-via-pyenv.

commit a02dde1
Author: Eric Arellano <ericarellano@me.com>
Date:   Thu Feb 7 11:33:53 2019 -0700

    Add ext_modules to BUILD entry

    This is going to be necessary to release Py3 with abi3.

    The line however results in the issue that this PR is going to aim to fix: now Python 2 will be built with abi `cp27m` or `cp27mu`, whereas earlier it was `none`. To test, try running `./pants setup-py --run="bdist_wheel --python-tag cp27 --plat-name=linux_x86_64" src/python/pants:pants-packaged` followed by `ls -l dist/pantsbuild.pants-1.14.0rc0/dist/`.

    Note also that ext_modules is deprecated in favor of distutils.Extension. We use this now as a temporary workaround until we add support for Extension.

commit 874ce34
Author: Chris Livingston <clivingston45@gmail.com>
Date:   Mon Feb 11 13:27:50 2019 -0500

    Validate and maybe prune interpreter cache run over run (pantsbuild#7225)

    * Purge stale interpreters from Interpreter Cache

commit 5d28cf8
Author: Daniel Wagner-Hall <dawagner@gmail.com>
Date:   Fri Feb 8 14:58:23 2019 +0000

    Prep for 1.15.0.dev0 (pantsbuild#7230)

commit 84cf9a7
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Wed Feb 6 13:56:35 2019 -0800

    deprecate implicit usage of binary_mode=True and mode='wb' in dirutil methods (pantsbuild#7120)

    ### Problem

    *Resolves pantsbuild#6543. See also [the python 3 migration project](https://github.com/pantsbuild/pants/projects/10).*

    There has been [a TODO](https://github.com/pantsbuild/pants/blob/6fcd7f7d0f8787910cfac01ec2895cdbd5cee66f/src/python/pants/util/dirutil.py#L109) pointing to pantsbuild#6543 to deprecate the `binary_mode` argument to `pants.util.dirutil.safe_file_dump()`, which wasn't canonicalized with a `deprecated_conditional`. This is because `binary_mode` doesn't quite make sense the way it does with file read methods `read_file()` and `maybe_read_file()`, because a file can be appended to as well as truncated (as opposed to reads).

    Separately, defaulting `binary_mode=True` for file read methods means more explicit conversions to unicode in a python 3 world,

    ### Solution

    - Deprecate the `binary_mode` argument to `safe_file_dump()`, as well as not explicitly specifying the `mode` argument.
      - `safe_file_dump()` now also defaults `payload=''`.
      - Also deprecate not specifying the `mode='wb'` argument in `safe_file_dump()`.
    - Deprecate not explicitly specifying the `binary_mode` argument in `{maybe_,}read_file()` and `temporary_file()` so that it can be given a default of unicode when pants finishes [migrating to python 3](https://github.com/pantsbuild/pants/projects/10) -- see pantsbuild#7121.
    - Update usages of `safe_file_dump()` across the repo.

    ### Result

    Pants plugins will see a deprecation warning if they fail to explicitly specify the `binary_mode` for file read methods in preparation for switching the default to unicode for [the python 3 switchover](https://github.com/pantsbuild/pants/projects/10). Several ambiguities in the `safe_file_dump()` method are alleviated.

    pantsbuild#7121 covers the eventual switchover to a default of `binary_mode=False` after the python 3 migration completes.

commit 224c2a0
Author: Borja Lorente <blorente@users.noreply.github.com>
Date:   Wed Feb 6 19:21:10 2019 +0000

    Make Resettable lazy again (pantsbuild#7222)

    ### Problem

    In the context of pantsbuild#6817, there is a logging issue that manifests when the daemon forks. In particular, in `fork_context`, both the daemon and the client reset some services that implement `Resettable`. Some of those services log at startup, when the client hasn't had time to reconfigure its logging to stderr, and therefore all these startup logs are intermingled in the `pantsd.log` file.

    ### Solution

    If we make `Resettable` lazy again, since we are ensured to only enter `fork_context` under a lock, the logging can only happen when the client has had time to configure its loggers.

    ### Result

    `Resettable` is now lazy. `Resettable::get()` is now implemented in terms of `Resettable::with`.

commit f281642
Author: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
Date:   Wed Feb 6 10:26:07 2019 -0800

    fix _raise_deferred_exc() (pantsbuild#7008)

    ### Problem

    The `_raise_deferred_exc(self)` method in `daemon_pants_runner.py` hasn't ever been tested. As a result, it causes an easily fixable error: the issue can be easily reproduced if you register an option twice in the same task and then run with pantsd enabled (you get the wrong exception, because `exc_type` isn't needed to construct the exception again, that's what `exc_value` is for).

    ### Solution

    - Appropriately destructure `sys.exc_info()` (if that was what was used to populate `self._deferred_exception`) and re-raise the exception with its original traceback.

    ### Result

    This error is fixed, but not yet tested -- see pantsbuild#7220.

commit f0a1a9f
Author: Stu Hood <stuhood@twitter.com>
Date:   Wed Feb 6 07:17:10 2019 -0800

    Prepare 1.14.0rc1 (pantsbuild#7221)

commit b6f045d
Author: Daniel Wagner-Hall <dawagner@gmail.com>
Date:   Wed Feb 6 10:47:30 2019 +0000

    Resolve all platforms from all python targets (pantsbuild#7156)

    Don't just use the default configured targets.

    This means that _all_ transitive 3rdparty python will need to be
    resolvable in _all_ platforms in any target in the graph. This is not
    ideal (we really want to be doing per-root resolves), but because we
    currently do one global resolve, this is a decent fit.

commit b08c1fd
Author: Ekaterina Tyurina <tyurina.katty@yandex.ru>
Date:   Wed Feb 6 10:40:35 2019 +0000

    Add flag reporting-zipkin-sample-rate (pantsbuild#7211)

    ### Problem
    In the current implementation, every time the pants command is run with zipkin tracing turned on all the zipkin traces will be collected. It is not very convenient when the number of runs is very big.

    ### Solution
    Possibility to set the sample rate will allow us to have the number of traces that fits the constraints of Zipkin server.

    ### Result
    A flag `reporting-zipkin-sample-rate` was added that sets the sample rate at which to sample Zipkin traces. If flags `reporting-zipkin-trace-id` and `reporting-zipkin-parent-id` are set the sample rate will always be 100.0 (no matter what is set in `reporting-zipkin-sample-rate` flag).

commit 95638d3
Author: Stu Hood <stuhood@twitter.com>
Date:   Tue Feb 5 16:19:17 2019 -0800

    Only lint the direct sources of a linted target. (pantsbuild#7219)

    ### Problem

    The thrift linter currently redundantly lints the transitive dependencies of each target, leading to repetitive errors, and larger tool invokes than necessary.

    ### Solution

    Lint only the directly owned sources of a target, and expand unit tests.

commit 121f98c
Author: Stu Hood <stuhood@twitter.com>
Date:   Tue Feb 5 16:05:11 2019 -0800

    Do not render the coursier workunit unless it will run. (pantsbuild#7218)

    ### Problem

    Currently the `bootstrap-coursier` workunit is rendered repeatedly, although it only actually runs once.

    ### Solution

    Only render the workunit if it will run.

commit b2f5a49
Author: Marcin Podolski <marcinex7@gmail.com>
Date:   Wed Feb 6 00:17:09 2019 +0100

    documentation for grpcio (pantsbuild#7155)

    ### Problem

    Documentation for grpcio generation tool

commit f73f112
Author: Daniel Wagner-Hall <dawagner@gmail.com>
Date:   Tue Feb 5 15:33:43 2019 +0000

    Skip flaky test (pantsbuild#7209)

    Relates to pantsbuild#7199

commit f0bb0da
Author: Stu Hood <stuhood@twitter.com>
Date:   Mon Feb 4 20:51:34 2019 -0800

    Only run master-dependent commithooks on master (pantsbuild#7214)

    ### Problem

    See pantsbuild#7213: some commit hooks are only valid in a context where master is present (and should otherwise be skipped).

    ### Solution

    Move more hooks that reference `master` under the check for the presence of `master`.

    ### Result

    Fixes pantsbuild#7213, and unblocks further iteration on the `1.14.x` stable branch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.