-
Notifications
You must be signed in to change notification settings - Fork 5
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
modernise packaging, and better manage optional depencencies #56
Conversation
…ors of for optional dependencies
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot Liam!
Questions:
- I am not sure where the dependencies' versions are taken from -- automatically from requirements.txt?
- Do you think it makes sense to make [all] the default option and add [minimal] or something that depends only on numpy?
- I think we should also make pyscf an optional dependency so one can e.g. install [qml] and use B2R2. However this would require more changes of imports I guess. Should it be a separeate PR?
am I doing it wrong?
|
|
Nothing specific for now... I guess I can specify the versions from requirements.txt as minimal versions?
not currently possible I think (pypa/setuptools#1503), unless I were to change the build backend from setuptools to something else, but... I'm not sure it's even possible since we have a setup.py file
at this point the easier thing to do would be to split qml/ into a separate package called qstack-qml? |
I think for reproducibility it's better to fix the major and minor versions (e.g. one of our tests fails with pyscf 2.5 because they changed something)
Okay! I thought I saw an example how to do it but maybe with an older configuration. Then we'll just need to be clear in the readme
Makes sense! Is it possible with minimal refactoring? |
Also there's an upcoming patch concerning the regression module which will lead to some conflicts sorry |
Not really. As things are in the python ecosystem, there is no standard way to do this in a single project, so unless we switch the backend to Pantsbuild or whatever, we will have to move qml to a different repo altogether.
not a problem, I'm almost used to dealing with this sort of stuff.
is it a numerical result specifically?
yeah I think this is possible in setup.py but honestly it's not an issue if we put that info there. better do that than make users' lives more complicated anyway |
I would like to avoid having a different repo. Can we do it in the way it's done in equistore/metatensor?
Agree with adding upper bounds (can take the current ones I guess except for pyscf but we're planning to change the minimal version to 2.5 soon anyway) |
Well I just think that for "scientific" packages it makes sense to fix versions more strictly (in contrast to e.g. tqdm which just has to be compatible) but I can be wrong |
what did you say pyscf-v2.5.0 broke? I ran the tests both with the minimal versions from requirements.txt and the latest available version from all packages, and the tests give the same results, give or take numerical noise |
Everything passes for me too but earlier either |
Yes, I think so, let me try.
also, my bad, it's just not possible to have opt-out dependencies at all. |
Found it: #31 |
My check was wrong! Tried again and |
...right, of course CI breaks down. |
so for linux user's, I think there's no problem!
|
I will take a look later but looks like a big difference, beyond normal round off errors |
wouldn't be surprised if it was a change in the way the grid points are placed or something |
it's not the grid, and it's not libxc (it seems) EDIT2: yes it actually does: tightening the rks.conv_tol and rks.conv_tol_cpscf tolerances by 1E3 makes so that the results in pyscf==2.2.0 and pyscf==2.1.1 are much much closer to each other than before |
yeah this is what i was thinking about too! thanks a lot |
...can I have the ability to force-push in this repackaging-PR branch, please? So I can replace the final commit over and over to fix the CI |
I can't find how to do it. This branch isn't protected... |
c166141
to
c7b1106
Compare
c7b1106
to
2900aab
Compare
done! |
so cool thanks a lot! |
Can we still have max. version for pyscf? I've remembered that at some point they forced basis set order sorting wrt |
ok! |
I changed the function so there's no problem with the new pyscf but who knows what they change in 2.6 |
note: this dropped the pinning on both python and the dependencies, please tell me if something doesn't work in a way the tests didn't catch