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
Add separate workflow and dockerfile for conda build #1527
base: develop
Are you sure you want to change the base?
Conversation
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 for kicking this off
I have a suggestion to make. Recently, while working on the DAGMC CI, I found its implementation to be quite well. Would it be possible for us to apply a similar method here as well? It could make it easier for us to understand all the projects as they would be configured in the same way. In the case of PyNE, we may need to add a few steps to make it compatible with the CI. What do you think, @gonuke? Do you agree, or do you have a better alternative in mind? |
I think we first need to get some version of this working, and then we can look into improvements. The PyNE build process is different from the DAGMC one for a few reasons and we need to make sure that our CI is meeting our overall needs. |
# make starting directory | ||
RUN mkdir -p $HOME/opt | ||
RUN echo "export PATH=$HOME/.local/bin:\$PATH" >> ~/.bashrc |
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.
Not required I suppose. We may set pyne install prefix to conda dir.
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.
Here is the issue. This should be RUN mkdir -p $HOME/opt/pyne
Co-authored-by: Ahnaf Tahmid Chowdhury <ahnaf-tahmid@outlook.com>
docker/conda_build.dockerfile
Outdated
|
||
RUN export PYNE_HDF5_ARGS="" ;\ | ||
&& cd $HOME/opt \ | ||
&& git clone -b develop --single-branch https://github.com/pyne/pyne.git \ |
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.
Please use COPY command here and copy the source to the dockerfile.
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.
To apply this change, I have removed the pyne-dev
stage. Now, we will build the existing pyne
stage in docker_publish.yml
since that uses the COPY command.
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.
MOAB v5.3 is old and doesn't support Cython v3. We have a separate PR #1528 for this. Please consider using Cython v0.29 for now.
The limitation isn't from MOAB. Conda-forge has MOAB 5.5.1 |
Unfortunately, we still need to consider staying with Cython 0.29 for this current PR, as PyNE has issues with Cython 3. This may be resolved through a separate PR #1528. |
Co-authored-by: Ahnaf Tahmid Chowdhury <ahnaf-tahmid@outlook.com>
It seems, the action workflows, share similarities. I'm curious if we could potentially use a single action file to select different Docker files, if feasible. I'd like to pass this decision over to @gonuke. |
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.
This is failing tests because of the inconsistent resolution of $HOME
After running into a bunch of errors (which were fixed by applying the solutions I previously found in the |
I think something changed with how pytest handles a The missing file is downloaded in a |
I'm not sure if this is the problem. I've been working on scikit-build-core and have fixed all the test issues; now all tests are passing. However, I've noticed some UnicodeDecodeError instances and resolved the use of the setup function in two files. @bquan0, could you please try running |
I noticed that the tests were also not working for the original |
The change to the The error that's causing the workflow to fail now has to do with the The file that is missing is the |
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.
I suggested the change to setup_module()
in once place and it should probably propagate to the others.
Our previous usage of setup()
assumed that it was called once per module, so we want to ensure that same behavior now, and not once per function. I think (speculation) that using setup_function()
and teardown_function()
results in teardown happening after each test, thus removing a file generated in one test that is needed for another test. (this practice may have other flaws)
Co-authored-by: Paul Wilson <paul.wilson@wisc.edu>
After applying that change and removing the The other BuildTests error out in |
Somethings to try in
|
For conda builds, let's pin the moab version to 5.3.0 |
All of the tests in |
Please consider pinning HDF5 to 1.10 not <1.14 |
Big news: the original Also, I just realized that the 10 in |
After pinning The moab tests are now passing. However, the dagmc and openmc tests are failing due to the same |
This may be because the DAGMC conda package is out of date. I'll have to see to that. |
I think it's not a good idea to set Python < 3.10 since ubuntu 22.04 comes with Python 3.10.6 which is old now. I will check this on the scikit-build-core branch and try to resolve that there. |
Description
This is a continuation of the closed PR #1516. In the dockerfile of that PR, we had one stage for installing dependencies via apt and one stage for installing dependencies via conda. However, we decided that it would be best to split up the apt build and the conda build for a few reasons
moab
,dagmc
, andopenmc
via conda. This structural difference means that it's better to have 2 separate workflows and dockerfiles.In this PR, I have reverted
ubuntu_22.04-dev.dockerfile
anddocker_publish.yml
to what they were 7 months ago, right before any of the conda changes were made. The only change I made was to remove thecython
restriction in the dockerfile.I also added a new
conda_build.dockerfile
andconda_docker.yml
to build and test PyNE by installing packages via conda. It's still a work in progress and I'm open to any feedback about how I can change and improve it.Motivation and Context
This PR will be the new PR to close #1515.
Changes
This should be a fix to the current situation on develop where conda builds weren't working properly at all. This should also be a better way to implement what #1516 was trying to accomplish.
Behavior
Current behavior is that we try to build PyNE via conda dependencies or apt dependencies in the same workflow/dockerfile. New behavior is that there will be separate workflows/dockerfiles.