-
Notifications
You must be signed in to change notification settings - Fork 22
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
Incremental version 24.7.1 still breaks some projects's setuptools behaviour #106
Comments
The incremental library 24.7.0 and 24.7.1 have been broken (the 24.7.0 has been yanked already but 24.7.1 has still a breaking change - it plugs in setuptools/distutils in the way that when virtualenv is invoked incremental will scan pyproject.toml in the current directory and fails if it finds something that it see as inconsistency (where it apparently is not). Unfortunately it happens when just `python -m virtualenv` is invoked so generally it breaks all our tests that are creating a virtualenv using it. This is tracked in twisted/incremental#106
The incremental library 24.7.0 and 24.7.1 have been broken (the 24.7.0 has been yanked already but 24.7.1 has still a breaking change - it plugs in setuptools/distutils in the way that when virtualenv is invoked incremental will scan pyproject.toml in the current directory and fails if it finds something that it see as inconsistency (where it apparently is not). Unfortunately it happens when just `python -m virtualenv` is invoked so generally it breaks all our tests that are creating a virtualenv using it. This is tracked in twisted/incremental#106
Thank you for the thorough report, and apologies for the breakage. It looks like this was introduced in #94, so it would also affect the yanked 24.7.0 release. I am currently working up a patch. |
No worries. Happens :) |
I have a fix ready over at #107. It is currently waiting for review. If I install the package from CI (please disregard the version number):
(I have to use Then virtualenv seems to work:
|
Confirmed. Downloaded the package, installed it in the old image and it works for me as well. I also prepared a Draft PR in Airlfow to test the new version once it is out apache/airflow#41075 |
Running tests in apache/airflow#41075, we exclued both .0 and .1 but it would be great to yank .1 as well I think. |
The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked.
* Remove incremental upper-bind limit The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked. * Skip DB isolation tests for www package Related: #41067
I didn't want to yank 24.7.1 because that would disrupt the Twisted security release currently in progress (it contained a relevant bugfix). In my judgement the danger of breakage is much lower than with 24.7.0, and as 24.7.2 is out anyone who hasn't pinned a specific Incremental will get the fixed version. I want to be cautious about yanking: the yank of 24.7.0 actually broke Twisted's build because it had a I'm open to being convinced otherwise, but those are my thoughts. |
For us no problem - we already excluded it in apache/airflow#41075 so that should be no issue for us |
The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked.
The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked.
The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked.
The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked.
Bumps [incremental](https://github.com/twisted/incremental) from 22.10.0 to 24.7.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/twisted/incremental/blob/trunk/NEWS.rst">incremental's changelog</a>.</em></p> <blockquote> <h1>Incremental 24.7.2 (2024-07-29)</h1> <h2>Bugfixes</h2> <ul> <li> <p>Incremental could mis-identify that a project had opted in to version management.</p> <p>If a <code>pyproject.toml</code> in the current directory contained a <code>[project]</code> table with a <code>name</code> key, but did not contain the opt-in <code>[tool.incremental]</code> table, Incremental would still treat the file as if the opt-in were present and attempt to validate the configuration. This could happen in contexts outside of packaging, such as when creating a virtualenv. When operating as a setuptools plugin Incremental now always ignores invalid configuration, such as configuration that doesn't match the content of the working directory. (<code>[#106](twisted/incremental#106) <https://github.com/twisted/incremental/issues/106></code>__)</p> </li> </ul> <h1>Incremental 24.7.1 (2024-07-27)</h1> <h2>Bugfixes</h2> <ul> <li>Incremental 24.7.0 would produce an error when parsing the <code>pyproject.toml</code> of a project that lacked the <code>use_incremental=True</code> or <code>[tool.incremental]</code> opt-in markers if that file lacked a <code>[project]</code> section containing the package name. This could cause a project that only uses <code>pyproject.toml</code> to configure tools to fail to build if Incremental is installed. Incremental now ignores such projects. (<code>[#100](twisted/incremental#100) <https://github.com/twisted/incremental/issues/100></code>__)</li> </ul> <h2>Misc</h2> <ul> <li><code>[#101](twisted/incremental#101) <https://github.com/twisted/incremental/issues/101></code>__</li> </ul> <h1>Incremental 24.7.0 (2024-07-25)</h1> <h2>Features</h2> <ul> <li>Incremental can now be configured using <code>pyproject.toml</code>. (<code>[#90](twisted/incremental#90) <https://github.com/twisted/incremental/issues/90></code>__)</li> <li>Incremental now provides a read-only <code>Hatchling version source plugin <https://hatch.pypa.io/latest/plugins/version-source/reference/></code>_. (<code>[#93](twisted/incremental#93) <https://github.com/twisted/incremental/issues/93></code>__)</li> </ul> <h2>Bugfixes</h2> <ul> <li>Incremental no longer inserts a dot before the rc version component (i.e., <code>1.2.3rc1</code> instead of <code>1.2.3.rc1</code>), resulting in version numbers in the <code>canonical format <https://packaging.python.org/en/latest/specifications/version-specifiers/#public-version-identifiers></code><strong>. (<code>[#81](twisted/incremental#81) <https://github.com/twisted/incremental/issues/81></code></strong>)</li> <li>Incremental's tests are now included in the sdist release artifact. (<code>[#80](twisted/incremental#80) <https://github.com/twisted/incremental/issues/80></code>__)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li><code>incremental[scripts]</code> no longer depends on Twisted. (<code>[#88](twisted/incremental#88) <https://github.com/twisted/incremental/issues/88></code>__)</li> <li>Support for Python 2.7 has been dropped for lack of test infrastructure. We no longer provide universal wheels. (<code>[#86](twisted/incremental#86) <https://github.com/twisted/incremental/issues/86></code>__)</li> <li>Support for Python 3.5, 3.6, and 3.7 has been dropped for lack of test infrastructure. (<code>[#92](twisted/incremental#92) <https://github.com/twisted/incremental/issues/92></code>__)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/twisted/incremental/commit/32be98f929cc45b6a1b588e865dcf8c220b6c7f6"><code>32be98f</code></a> Release Incremental 24.7.2</li> <li><a href="https://github.com/twisted/incremental/commit/380e66970918027bc7fbbb393453de7cd8d7a555"><code>380e669</code></a> Merge pull request <a href="https://redirect.github.com/twisted/incremental/issues/107">#107</a> from twisted/106-never-raise</li> <li><a href="https://github.com/twisted/incremental/commit/a559f5c770ec93c95abaadfc8693d7ae654c6e39"><code>a559f5c</code></a> Allow syntax errors to propagate</li> <li><a href="https://github.com/twisted/incremental/commit/3d2cdb172c7d5c7e27903c0949128f0aa7888741"><code>3d2cdb1</code></a> Cleanups to shorten the diff</li> <li><a href="https://github.com/twisted/incremental/commit/d2fe36fa5bb5bb13bfbeb3461154fadd5d709993"><code>d2fe36f</code></a> Defense in depth</li> <li><a href="https://github.com/twisted/incremental/commit/d659ea0ed0f8518608f40065aa5e6ad6dd2a69be"><code>d659ea0</code></a> There and back again</li> <li><a href="https://github.com/twisted/incremental/commit/11ad4133e2857b37f140bfee835135f8cf1b6ad0"><code>11ad413</code></a> Update the readme</li> <li><a href="https://github.com/twisted/incremental/commit/0f7001c2bf5cc3d24f6d273067b2e88866bff6d1"><code>0f7001c</code></a> Tidy up some comments</li> <li><a href="https://github.com/twisted/incremental/commit/4adf23bb48cfbc35e75d44c4863b2dc73d4e9563"><code>4adf23b</code></a> Add newsfragment</li> <li><a href="https://github.com/twisted/incremental/commit/b5ad0545b572ede441d73c35d8ff882f430e64d1"><code>b5ad054</code></a> 100% coverage, why not?</li> <li>Additional commits viewable in <a href="https://github.com/twisted/incremental/compare/incremental-22.10.0...incremental-24.7.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=incremental&package-manager=pip&previous-version=22.10.0&new-version=24.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [incremental](https://github.com/twisted/incremental) from 22.10.0 to 24.7.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/twisted/incremental/blob/trunk/NEWS.rst">incremental's changelog</a>.</em></p> <blockquote> <h1>Incremental 24.7.2 (2024-07-29)</h1> <h2>Bugfixes</h2> <ul> <li> <p>Incremental could mis-identify that a project had opted in to version management.</p> <p>If a <code>pyproject.toml</code> in the current directory contained a <code>[project]</code> table with a <code>name</code> key, but did not contain the opt-in <code>[tool.incremental]</code> table, Incremental would still treat the file as if the opt-in were present and attempt to validate the configuration. This could happen in contexts outside of packaging, such as when creating a virtualenv. When operating as a setuptools plugin Incremental now always ignores invalid configuration, such as configuration that doesn't match the content of the working directory. (<code>[#106](twisted/incremental#106) <https://github.com/twisted/incremental/issues/106></code>__)</p> </li> </ul> <h1>Incremental 24.7.1 (2024-07-27)</h1> <h2>Bugfixes</h2> <ul> <li>Incremental 24.7.0 would produce an error when parsing the <code>pyproject.toml</code> of a project that lacked the <code>use_incremental=True</code> or <code>[tool.incremental]</code> opt-in markers if that file lacked a <code>[project]</code> section containing the package name. This could cause a project that only uses <code>pyproject.toml</code> to configure tools to fail to build if Incremental is installed. Incremental now ignores such projects. (<code>[#100](twisted/incremental#100) <https://github.com/twisted/incremental/issues/100></code>__)</li> </ul> <h2>Misc</h2> <ul> <li><code>[#101](twisted/incremental#101) <https://github.com/twisted/incremental/issues/101></code>__</li> </ul> <h1>Incremental 24.7.0 (2024-07-25)</h1> <h2>Features</h2> <ul> <li>Incremental can now be configured using <code>pyproject.toml</code>. (<code>[#90](twisted/incremental#90) <https://github.com/twisted/incremental/issues/90></code>__)</li> <li>Incremental now provides a read-only <code>Hatchling version source plugin <https://hatch.pypa.io/latest/plugins/version-source/reference/></code>_. (<code>[#93](twisted/incremental#93) <https://github.com/twisted/incremental/issues/93></code>__)</li> </ul> <h2>Bugfixes</h2> <ul> <li>Incremental no longer inserts a dot before the rc version component (i.e., <code>1.2.3rc1</code> instead of <code>1.2.3.rc1</code>), resulting in version numbers in the <code>canonical format <https://packaging.python.org/en/latest/specifications/version-specifiers/#public-version-identifiers></code><strong>. (<code>[#81](twisted/incremental#81) <https://github.com/twisted/incremental/issues/81></code></strong>)</li> <li>Incremental's tests are now included in the sdist release artifact. (<code>[#80](twisted/incremental#80) <https://github.com/twisted/incremental/issues/80></code>__)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li><code>incremental[scripts]</code> no longer depends on Twisted. (<code>[#88](twisted/incremental#88) <https://github.com/twisted/incremental/issues/88></code>__)</li> <li>Support for Python 2.7 has been dropped for lack of test infrastructure. We no longer provide universal wheels. (<code>[#86](twisted/incremental#86) <https://github.com/twisted/incremental/issues/86></code>__)</li> <li>Support for Python 3.5, 3.6, and 3.7 has been dropped for lack of test infrastructure. (<code>[#92](twisted/incremental#92) <https://github.com/twisted/incremental/issues/92></code>__)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/twisted/incremental/commit/32be98f929cc45b6a1b588e865dcf8c220b6c7f6"><code>32be98f</code></a> Release Incremental 24.7.2</li> <li><a href="https://github.com/twisted/incremental/commit/380e66970918027bc7fbbb393453de7cd8d7a555"><code>380e669</code></a> Merge pull request <a href="https://redirect.github.com/twisted/incremental/issues/107">#107</a> from twisted/106-never-raise</li> <li><a href="https://github.com/twisted/incremental/commit/a559f5c770ec93c95abaadfc8693d7ae654c6e39"><code>a559f5c</code></a> Allow syntax errors to propagate</li> <li><a href="https://github.com/twisted/incremental/commit/3d2cdb172c7d5c7e27903c0949128f0aa7888741"><code>3d2cdb1</code></a> Cleanups to shorten the diff</li> <li><a href="https://github.com/twisted/incremental/commit/d2fe36fa5bb5bb13bfbeb3461154fadd5d709993"><code>d2fe36f</code></a> Defense in depth</li> <li><a href="https://github.com/twisted/incremental/commit/d659ea0ed0f8518608f40065aa5e6ad6dd2a69be"><code>d659ea0</code></a> There and back again</li> <li><a href="https://github.com/twisted/incremental/commit/11ad4133e2857b37f140bfee835135f8cf1b6ad0"><code>11ad413</code></a> Update the readme</li> <li><a href="https://github.com/twisted/incremental/commit/0f7001c2bf5cc3d24f6d273067b2e88866bff6d1"><code>0f7001c</code></a> Tidy up some comments</li> <li><a href="https://github.com/twisted/incremental/commit/4adf23bb48cfbc35e75d44c4863b2dc73d4e9563"><code>4adf23b</code></a> Add newsfragment</li> <li><a href="https://github.com/twisted/incremental/commit/b5ad0545b572ede441d73c35d8ff882f430e64d1"><code>b5ad054</code></a> 100% coverage, why not?</li> <li>Additional commits viewable in <a href="https://github.com/twisted/incremental/compare/incremental-22.10.0...incremental-24.7.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=incremental&package-manager=pip&previous-version=22.10.0&new-version=24.7.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked.
The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked.
The incremental library 24.7.0 and 24.7.1 have been broken (the 24.7.0 has been yanked already but 24.7.1 has still a breaking change - it plugs in setuptools/distutils in the way that when virtualenv is invoked incremental will scan pyproject.toml in the current directory and fails if it finds something that it see as inconsistency (where it apparently is not). Unfortunately it happens when just `python -m virtualenv` is invoked so generally it breaks all our tests that are creating a virtualenv using it. This is tracked in twisted/incremental#106 GitOrigin-RevId: fad5e5e9d494f0cf81f35993f5fd0f6f047a3b75
* Remove incremental upper-bind limit The twisted/incremental#106 issue has been addressed in 24.7.2 so we are removing the limit - just in case we also exclude the buggy versions, even if they are yanked. * Skip DB isolation tests for www package Related: #41067 GitOrigin-RevId: 63e7c6354a8e59ac625c88f61cf8730f60d4a6b3
The #100 in incremental 24.7.0 has been solved, but there is another breaking change remaining in 24.7.1.
In airlfow we are using
virtualenv
to create venvs and it seems that incremental initialization during virtualenv's intialization also break something by attempting to read pyproject.toml. Attempting to parse and fail in i__init__ where some inconsistency occurs is generally a bad idea when incremental is apprently somewhat plugged into setuptools/distutils (it looks like at least - why otherwise it would be initialized whenpython -m virtualenv
got initialized?)The error can be very easily reproduced using our images that we build in CI:
Run:
And follow it up with
python -m virtualenv
(without changing the current directory from /opt/airflow - which is where airlfow sources are present). Then it will fail with:The pyproject.toml seems to be pretty correct, yet incremental fails.
Incremental is installed there in latest version.
Running the same command from a different directory works:
Also downgrading it to 22.10.0 works also from
/opt/airflow
:The text was updated successfully, but these errors were encountered: