-
-
Notifications
You must be signed in to change notification settings - Fork 168
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
tighten fmt in libmamba #628
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
@conda-forge/mamba @conda-forge/fmt |
Sorry for breaking libmamba by merging that 10.2 release. Please merge this fix :) Is this in any way libmamba specific or is fmt 10.2 just a breaking ABI change? @jaimergp |
I agree with all @saraedum said above. This PR seems like the right path forward. |
recipe>python show_diff.py
================================================================================
================================================================================
linux-armv7l
================================================================================
================================================================================
win-32
================================================================================
================================================================================
osx-arm64
osx-arm64::libmamba-1.5.6-h90c426b_0.conda
osx-arm64::libmamba-1.5.0-h6089622_1.conda
osx-arm64::libmamba-1.5.4-h0a6dc31_0.conda
osx-arm64::libmamba-1.5.1-h0a6dc31_2.conda
osx-arm64::libmamba-1.5.3-h0a6dc31_1.conda
osx-arm64::libmamba-1.5.1-hace0f30_1.conda
osx-arm64::libmamba-1.5.2-h0a6dc31_1.conda
osx-arm64::libmamba-1.5.2-h0a6dc31_0.conda
osx-arm64::libmamba-1.5.1-h6089622_0.conda
osx-arm64::libmamba-1.5.5-h0a6dc31_0.conda
osx-arm64::libmamba-1.5.3-h0a6dc31_2.conda
- "fmt >=10.1.1,<11.0a0",
+ "fmt >=10.1.1,<10.2.0a0",
================================================================================
================================================================================
linux-ppc64le
linux-ppc64le::libmamba-1.5.1-h5f46139_2.conda
linux-ppc64le::libmamba-1.5.3-h5f46139_2.conda
linux-ppc64le::libmamba-1.5.6-h5f46139_0.conda
linux-ppc64le::libmamba-1.5.3-h5f46139_1.conda
linux-ppc64le::libmamba-1.5.0-hcbafca5_1.conda
linux-ppc64le::libmamba-1.5.2-h5f46139_1.conda
linux-ppc64le::libmamba-1.5.4-h5f46139_0.conda
linux-ppc64le::libmamba-1.5.5-h5f46139_0.conda
linux-ppc64le::libmamba-1.5.1-h2246aa7_1.conda
linux-ppc64le::libmamba-1.5.1-hcbafca5_0.conda
linux-ppc64le::libmamba-1.5.2-h5f46139_0.conda
- "fmt >=10.1.1,<11.0a0",
+ "fmt >=10.1.1,<10.2.0a0",
================================================================================
================================================================================
linux-aarch64
linux-aarch64::libmamba-1.5.2-hea3be6c_1.conda
linux-aarch64::libmamba-1.5.1-hea3be6c_2.conda
linux-aarch64::libmamba-1.5.1-h5d583b4_1.conda
linux-aarch64::libmamba-1.5.3-hea3be6c_2.conda
linux-aarch64::libmamba-1.5.0-h604a1c0_1.conda
linux-aarch64::libmamba-1.5.2-hea3be6c_0.conda
linux-aarch64::libmamba-1.5.1-h604a1c0_0.conda
linux-aarch64::libmamba-1.5.6-hea3be6c_0.conda
linux-aarch64::libmamba-1.5.4-hea3be6c_0.conda
linux-aarch64::libmamba-1.5.3-hea3be6c_1.conda
linux-aarch64::libmamba-1.5.5-hea3be6c_0.conda
- "fmt >=10.1.1,<11.0a0",
+ "fmt >=10.1.1,<10.2.0a0",
================================================================================
================================================================================
noarch
================================================================================
================================================================================
win-64
win-64::libmamba-1.5.1-h925f7fc_1.conda
win-64::libmamba-1.5.0-h16d0179_1.conda
win-64::libmamba-1.5.2-h3f09ed1_0.conda
win-64::libmamba-1.5.1-h3f09ed1_2.conda
win-64::libmamba-1.5.3-h3f09ed1_1.conda
win-64::libmamba-1.5.3-h3f09ed1_2.conda
win-64::libmamba-1.5.6-h3f09ed1_0.conda
win-64::libmamba-1.5.1-h16d0179_0.conda
win-64::libmamba-1.5.4-h3f09ed1_0.conda
win-64::libmamba-1.5.2-h3f09ed1_1.conda
win-64::libmamba-1.5.5-h3f09ed1_0.conda
- "fmt >=10.1.1,<11.0a0",
+ "fmt >=10.1.1,<10.2.0a0",
================================================================================
================================================================================
osx-64
osx-64::libmamba-1.5.5-hb976dfd_0.conda
osx-64::libmamba-1.5.3-hb976dfd_1.conda
osx-64::libmamba-1.5.6-ha449628_0.conda
osx-64::libmamba-1.5.2-hb976dfd_1.conda
osx-64::libmamba-1.5.1-h08141de_1.conda
osx-64::libmamba-1.5.3-hb976dfd_2.conda
osx-64::libmamba-1.5.0-hb45792e_1.conda
osx-64::libmamba-1.5.2-hb976dfd_0.conda
osx-64::libmamba-1.5.1-hb45792e_0.conda
osx-64::libmamba-1.5.4-hb976dfd_0.conda
osx-64::libmamba-1.5.1-hb976dfd_2.conda
- "fmt >=10.1.1,<11.0a0",
+ "fmt >=10.1.1,<10.2.0a0",
================================================================================
================================================================================
linux-64
linux-64::libmamba-1.5.0-h744094f_1.conda
linux-64::libmamba-1.5.3-had39da4_2.conda
linux-64::libmamba-1.5.1-hfcfce90_1.conda
linux-64::libmamba-1.5.6-had39da4_0.conda
linux-64::libmamba-1.5.5-had39da4_0.conda
linux-64::libmamba-1.5.1-h744094f_0.conda
linux-64::libmamba-1.5.3-had39da4_1.conda
linux-64::libmamba-1.5.2-had39da4_1.conda
linux-64::libmamba-1.5.4-had39da4_0.conda
linux-64::libmamba-1.5.2-had39da4_0.conda
linux-64::libmamba-1.5.1-had39da4_2.conda
- "fmt >=10.1.1,<11.0a0",
+ "fmt >=10.1.1,<10.2.0a0", |
I merged this to stop the bleeding, but we still have a bunch of work to do (short of marking 10.2 as broken and not releasing it again). Everything built against 10.1 needs to get the run-export tightened (incl fmt 10.1 itself, as well as the migrator). |
Thanks so much @h-vetinari. Would this plan of action agree with your expectations? Am I missing any steps?
Let me know if you'd like my help with any piece of this. I'm not sure where the migrator comes in but I think I can fix the run-export on 10.2, backport that to 10.1, and mark older packages as broken (if that's the right course of action). |
- "fmt >=10.1.1,<11.0a0",
+ "fmt >=10.1.1,<10.2.0a0", for any packages built against fmt. I can do the change for the migrator (which currently injects |
Great. Item 1 is here: conda-forge/fmt-feedstock#40 For item 2, I can backport this change to 10.1.1 once that PR is merged. Any other versions I should backport to? |
Backporting to 10.1 should be enough (as that's the version that we've been building against for almost 5 months). |
I am not opposed to this but why do we think that this is necessary? It seems to me that the fmt authors are careful about ABI changes. (In fact, I don't understand what's the actual problem here. On Linux, I don't see a problematic ABI change.) |
@bdice @h-vetinari is anybody working on the repodata patch already or should I have a go at it? |
The fact that things broke is a pretty strong argument that it is necessary, unfortunately.
I know. Perhaps they can be enlisted to help (or at least elucidate what happened)?
Are you able to pinpoint the ABI break (or otherwise problematic change) on windows?
Please go for it! |
No, I didn't look into extracting the symbol table of a Windows DLL on my Linux machine. |
Shouldn't we then pin I guess an alternative could be to add an integration test to the fmt feedstock that tries to install mamba and checks whether it still works. |
So, the problematic symbol is this one: - bool __cdecl fmt::v10::detail::write_console(struct _iobuf * __ptr64,class fmt::v10::basic_string_view<char>)
+ bool __cdecl fmt::v10::detail::write_console(int,class fmt::v10::basic_string_view<char>) |
Cool, thanks for digging! Do you want to open an issue in fmt if such an ABI break in a minor-version was intentional? |
Yes, will do once I understand why it happened because that thing is not in the changeset. |
Upstream issue: fmtlib/fmt#3785 |
@h-vetinari wouldn't the proper and easier fix here be to provide the missing symbol again in a patch, rebuild, and then mark build 0 as broken on Windows? (I now realize that the same symbol also changed on Linux. Somehow I screwed up when looking at the symbol table initially. However, that symbol is unused on Linux.) |
Yeah, that's what I was saying in the other issue. Thanks again for digging into this! |
Checklist
generate_patch_json.py
if absolutely necessary.pre-commit run -a
and ensured all files pass the linting checks.python show_diff.py
and posted the output as part of the PR.fmt 10.2.0
breaks libmamba on Windows: conda-forge/fmt-feedstock#39