-
-
Notifications
You must be signed in to change notification settings - Fork 197
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
⚠ CRITICAL: Copier 9.1.1 broken by too loose pyyaml-include
requirement ⚠
#1568
Comments
Upper bounds were explicitly removed before IIRC, because they usually cause conflicts in the Python ecosystem. But since Copier uses Dependabot/Renovatebot, I suppose we could add back upper bounds on major versions. I'd strongly recommend adding some CI jobs to test early on unaccepted versions if we go this route again! |
I'd only like to note here that I provided a temporary workaround for troubled users, not a solution for Copier. |
When it comes to my suggestion, when I suggested pinning versions properly, I meant checking for future similar risks and pinning where necessary. This doesn't necessarily mean bringing back conservative and troublesome upper bounds, but rather checking for potential, analogous pitfalls in the future, due to this issue having been filed. |
I'd keep only lower bounds because upper bounds can cause unresolvable dependency trees. Major releases in SemVer-versioned projects may break dependants but often don't. A missing upper bound like in this case can be worked around in userland by adding a constraint – see, e.g., #1225 (comment). Ideally, we should temporarily upper-bound |
@bswck Regarding upper bounds and pinning in Python (libraries): https://iscinumpy.dev/post/bound-version-constraints/ |
I'd been fully aware of troubles that come from upper bounds and slowly adapt my projects to best practices. |
I'd vote for a quick release from master if possible indeed :) |
Second that. The dependency on |
Adding that we're pinned to 0.8.30 for other reasons and this affects us as well |
To add to #1225 (comment) regarding userland workarounds, with Rye, you can do |
8.x branch is broken too. Would you consider a patch on 8.x for those who cannot upgrade to 9.x yet? |
@krassowski Like many open-source projects, I don't think we have the capacity to backport fixes. But the ultimate decision lies with @yajo. If I may ask, what's your reason for not being able to upgrade to 9.x? Edit: Ah, I see you're using it for a Jupyter extension template and upgrading. |
Edit: in #1225 (comment) I see the |
Yeah, |
Any timeline on when we can expect the next release without |
* tests: init tests * deps: bump biopipen to 0.27.2 * deps: temporary fix copier breaks with pyyaml-include v2 (copier-org/copier#1568) * docs: update FAQ.md with instructions for running pipeline on a cluster * 1.3.3
FWIW, pyyaml-include should have had a deprecation period where both namespaces were provided and the one that was to be removed produced a warning. Making a sudden breaking change without warning is not a good idea in the Python ecosystem. There was a beta release, but unless you pass |
Hi, we're experiencing this issue with Copier 8.1.0 as well, which was working well until last week. Is there anyway that old Copier versions were modified when doing the new release? Or is it that pyyaml-include was not pinned in old versions of Copier? Is there any Copier version safe from this bug that we can use straight away? This issue is quite blocking |
You can just install the latest Copier version with a compatible |
Thanks! I was aware of this, but we're maintaining cross-company Github Actions which use Copier, which we'll already have to upgrade to Copier 9.X once the fix is released (and hope for the best), so I'd rather avoid this workaround in-between. In other words, I was also asking for a timeline for this fix from Copier's side to make a decision on this (I assume this fix can be quickly done but I'm not sure which are Copier's plans after reading this thread). |
I agree with @henryiii, deprecation periods with warnings are the most reliable way to inform downstream users that something is about to break. Regarding new releases, @sisp and I agree on releasing a 9.x release quickly, and I believe we have enough privileges to do that (pushing a tag), but @yajo is our captain and we'd like to hear from him first 🙂 |
* deps: temporary fix copier breaks with pyyaml-include v2 (copier-org/copier#1568) * deps: bump pipen-poplog to 0.1.1 * deps: bump pipen-poplog to 0.1.2 * 0.27.3 * choir(scrna.ScFGSEA): Skip cases when no cells found (pwwang/immunopipe#50) * choir(scrna.MarkersFinder): Skip cases when no cells found (pwwang/immunopipe#50) * choir(scrna.MetaMarkers): Skip cases when no cells found (pwwang/immunopipe#50) * docs: update CHANGELOG * feat(scrna.SeuratPreparing): support DoubletFinder * docs: update CHANGELOG
See <copier-org/copier#1568>. This should be fixed in a new version of copier in the next few days.
Hello! Sorry everybody. Since some weeks ago, gmail decided that copier issues were spam and I lost every message 😆 FWIW one advantage of not pinning versions is that we let you pin them downstream. Whatever packaging system you use, it should have a way to downgrade a package. Just do it and it will serve as a workaround for older releases. Let me push a new release without pyyaml-include, which we don't require in master anymore. |
End-to-end tests were broken because of the release of pyyaml-include 2.0 and a too loose dependency in copier. This was fixed in copier 9.2.0. See copier-org/copier#1568
Describe the problem
Yesterday,
pyyaml-include
2.0 was released. Unsurprisingly for a non-CalVer major release, it stabilized a breaking change: thepyyaml-include
's package namespaceyamlinclude
was moved toyaml_include
(ref).The latest Copier release, 9.1.1, was released prior to removing the
pyyaml-include
dependency in 037d7f0.Back then, the
pyproject.toml
version specification forpyyaml-include
was">=1.2"
:copier/pyproject.toml
Line 43 in b3ed48d
which has been welcoming Copier-incompatible
pyyaml-include==2.0
with open arms in every installation since the yesterday'spyyaml-include
release.Copier is now unusable in every environment that installed Copier upon the
pyyaml-include
2.0 release (including my today's CI environment that adopts CTT for testing my Copier template), unless one pins the legacypyyaml-include<2
explicitly as a direct, non-transitive dependency.Template
Doesn't apply.
To Reproduce
pip install copier
copier
Logs
Expected behavior
No errors.
Screenshots/screencasts/logs
No response
Operating system
Linux
Operating system distribution and version
Ubuntu 23.04
Copier version
9.1.1
Python version
3.10
Installation method
pipx+pypi
Additional context
Workaround: Pinning the legacy
pyyaml-include<2
directly.I strongly suggest pinning all versions properly to prevent unexpected breaking changes in the future and make Copier more reliable.
The current
pyproject.toml
file might expose Copier to many, many more identical pitfalls.The text was updated successfully, but these errors were encountered: