Skip to content

Conversation

henryiii
Copy link
Member

@henryiii henryiii commented May 24, 2021

pyproject.toml no longer pins exactly. Might have an issue with cmake 3.20 or the latest scikit-build, but hopefully we can work those out.

Supports ROOT 6.24's Minuit2 changes (and should work on old ROOTs too).

Updating pybind11, catch2, and Minuit2 (built-in). fmt is stuck at version 5 because newer versions don't support CUDA 8.

Added a noxfile so testing in a fresh, temporary virtual environment is simple and easy. Just run nox. (pipx run nox if you have pipx but not nox).

@danielsibemol
Copy link
Contributor

@henryiii, this OMP test is failing, as far as I understand, due to a change in the latest root version. Would you know how to fix it? I tried declaring an instance of MnPrint locally, but it didn't work.

@henryiii
Copy link
Member Author

I think this was a change in root-project/root#6705. I'll try to look through that soon and see what changed. @HDembinski, does iMinuit provide a public pybind11 API for integrating custom classes? It would be nicer if this could simply register iMinuit classes instead of wrapping Minuit separately.

@henryiii
Copy link
Member Author

Yes, it looks like that patch contains a breaking change - the static functions Level and SetLevel were renamed to SetGlobalLevel and GlobalLevel, and MnPrint is now a class, which means we either have to drop support for < 6.24, or add versions checks and multiple versions of these parts. One could argue we likely are really using the easy but wrong thing by setting the global print level, as setting the level on the specific object is better; so maybe I'll try to use that in a couple of places first.

@henryiii henryiii force-pushed the henryiii-patch-2 branch 4 times, most recently from dd9a62b to d1afd28 Compare May 26, 2021 21:39
@HDembinski
Copy link

I think this was a change in root-project/root#6705. I'll try to look through that soon and see what changed. @HDembinski, does iMinuit provide a public pybind11 API for integrating custom classes? It would be nicer if this could simply register iMinuit classes instead of wrapping Minuit separately.

Hi, I am not sure what you mean. The pybind11 wrapper for Minuit2 in iminuit is mostly a thin wrapper around the C++ code, while iminuit is built in Python on that foundation. There is one hybrid class, FCN, which overrides methods in FCNBase to call Python implementations.

@HDembinski
Copy link

I improved the Printing in Minuit2 somewhat, but this is probably not the last change. The print level is still a global variable which causes problems with parallelization.

@henryiii henryiii force-pushed the henryiii-patch-2 branch 2 times, most recently from ecd9ebc to 7322daa Compare May 27, 2021 03:42
@henryiii henryiii force-pushed the henryiii-patch-2 branch from 7322daa to f9bb089 Compare May 27, 2021 04:25
@henryiii henryiii changed the title fix: support latest versions in pyproject.toml fix: support latest versions of some deps May 27, 2021
@henryiii henryiii enabled auto-merge (rebase) May 27, 2021 04:38
@henryiii henryiii merged commit 660b8f1 into master May 27, 2021
@henryiii henryiii deleted the henryiii-patch-2 branch May 27, 2021 04:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants