-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Rethink bundling of requirements #5074
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
Comments
I realized last night that we could easily cut that down to 5 as we only need a single dev environment + testing envs. |
Yes, we should be more strict about the CI. A red ❌ CI on main should be an immediate call to action to get it fixed. On splitting the dependencies, I think we should try to keep it with two requirements.txt files. A basic one and one with all testing & dev & docs dependencies relevant within the scope of this repo. The pymc-examples repo has its own. I think the third element is a restructuring of the CI workflows:
|
Let's start by cutting down the 3 dev envs to a single one? |
For the tests, it seems we can easily specify the python version outside of the conda environment file: https://github.com/conda-incubator/setup-miniconda#usage-examples |
@OriolAbril would you say the simplifications made by #5911 close this issue? If not, which are the most important items that we can track in separate smaller issues? |
It still feels less than ideal that to bump Aesara or ArviZ we need to update over 4 files. If possible, I think it would be best to have something like:
I don't know much for windows, but it might be needed to initialize the env with |
I like that. Although I think we already improve the current situation without that. As all the compiler and blas packages are handled in aseara now (thanks to @maresb) I think we could just have a package for test and one for docs. |
In order to move towards a single source of truth, could we generate I also like @OriolAbril's idea of breaking things up into |
Regarding the |
Is there an env file for building docs? I can't find it. Without that, I think we can merge all current ones into one env file. |
Done in #6060
Yes, we're using |
We can probably unify all our env files at this point, yes? |
Possibly yes, but it's not so clear to me yet. It would require sitting down and tracking down what's safe to use, and also leaning on the implicit dependencies of Aesara to avoid platform-specific issues. But I think it's worth a try. To clarify, the goal would be to have a single env file which combines dev, test, and docs dependencies, and works on all platforms? |
The goal is to simplify the env files as much as possible, but not more than that ;). |
I have been thinking about this, and I've come to the conclusion that the available tooling is very close, but not quite there yet. Rather than throw together some flaky scripts to close the gap, I think the biggest impact would be contributing to conda-lock, and the maintainer there is really responsive. That way, PyMC (plus a few other things I'm working on) would be my motivating use case. That said, I don't have any time horizon on this, so if anyone wants to contribute some quick-wins in the meantime, then please go ahead. |
@maresb That sounds like a fine approach to me. Our current setup is totally fine and works, so there's no rush and we can just wait for the proper tools. Having said that, I suppose I'm a bit unsure why we need OS specific envs in the first place as we're noarch now for PyMC. |
@twiecki, great point! That is indeed a quick-win which we could easily tackle right away. I'm probably not the best person to implement this since I don't have Windows, but one possible way forward is to make incremental changes to |
Uh oh!
There was an error while loading. Please reload this page.
I want to take this opportunity and rethink all these conda environments we have. I understand they are helpful and convenient to create our dev environments and they are also used for ci. However, at least in my case, the extra work and burden on updating 4 (8 now) nearly equivalent files with a pre-commit check that seems to only partially work (i.e. pandas has a lower bound in 3.7 and 3.8 but not in 3.9 nor in requirements-dev.txt) is clearly larger than the benefit I get. Moreover, issues with these files, installation and pre-commit blocked #5060. #5062 was only needed because of #5060 being blocked.
I think there are several issues at hand regarding all this.
cachetools
is for. I think that this is both issue and a consequence of the previous two, but I think it's important to put that on the table, because in my opinion, unless we make an effort in explaining all that in the developer guide and keep it up to date it will only get worse.Ideas for possible solutions:
setup.py
so that runningpip install pymc[all]
installs both requiremetns and requirements-optionalcc @Sayam753
The text was updated successfully, but these errors were encountered: