Skip to content
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 dev.eessi.io support including project subdirectories #885

Draft
wants to merge 84 commits into
base: 2023.06-software.eessi.io
Choose a base branch
from

Conversation

Neves-P
Copy link
Member

@Neves-P Neves-P commented Jan 24, 2025

This PR replaces open WIP PR #804 (to merge from a more up to date and tested branch) and adds support for building into the dev.eessi.io repository.

Documentation for how to install into dev.eessi.io is available in https://www.eessi.io/docs/adding_software/adding_development_software/, with maintainer documentation to come in EESSI/dev.eessi.io-example#12

With this PR, software builds are installed into /cvmfs/dev.eessi.io/2023.06/$EESSI_DEV_PROJECT/. $EESSI_DEV_PROJECT is determined automatically during the build process and comes from the name of the GitHub repository that the bot is listening according to the format: dev.eessi.io-EESSI_DEV_PROJECT. See: https://github.com/EESSI/dev.eessi.io-example

Existing builds to dev.eessi.io were tested with the code that is about to be merged as verified in EESSI/dev.eessi.io-example#14

Neves-P and others added 30 commits November 1, 2024 11:26
@Neves-P Neves-P requested a review from ocaisa February 14, 2025 18:26
@Neves-P
Copy link
Member Author

Neves-P commented Feb 14, 2025

Talked with @bedroge about this and decided to try just adding a simple if statement to EESSI extend that would account for builds targeting the development repository, changes in: ee2bcb1

I'd like to clarify to things:

  1. How to test this without potentially breaking working code. I suppose that the change to the EESSI-extend module needs to actually be ingested first so that the new module file is used?
  2. Does this actually work, or is there a better or improved way of achieving this.

@ocaisa , would you have any suggestions regarding this?

PS: I'm marking this a draft to prevent accidental merges as this could break production code. This PR also got extremely long with many commits reverting small changes and applying them again. I'm happy to open a new one from a clean branch to prevent polluting the repo's commit history with many trial and error commits.

@Neves-P Neves-P marked this pull request as draft February 14, 2025 18:33
@ocaisa
Copy link
Member

ocaisa commented Feb 17, 2025

Talked with @bedroge about this and decided to try just adding a simple if statement to EESSI extend that would account for builds targeting the development repository, changes in: ee2bcb1

In general, I think this is the way to go. I would like to target the dev repos just the same as we do project extensions. There will need to be a step that generates the path with the subdirectory, but that could all be done with a single environment variable (if the variable EESSI_DEV_PROJECT is set, we are targeting /cvmfs/dev.eessi.io and should use the value of the variable to decide the subdirectory). That would mean you set the variable to the project and there is only a very small amount of special treatment to determine EESSI_PROJECT_INSTALL

I'd like to clarify to things:

  1. How to test this without potentially breaking working code. I suppose that the change to the EESSI-extend module needs to actually be ingested first so that the new module file is used?

EESSI-extend is just an easyconfig that creates a module file, you can install it locally.

  1. Does this actually work, or is there a better or improved way of achieving this.

@ocaisa , would you have any suggestions regarding this?

Rather than complicate our lives with

/cvmfs/dev.eessi.io/versions/2023.06/example/software/linux/aarch64/neoverse_n1

perhaps we should be using

/cvmfs/dev.eessi.io/example/versions/2023.06/software/linux/aarch64/neoverse_n1

then you have direct mapping /cvmfs/software.eessi.io -> /cvmfs/dev.eessi.io/example

@Neves-P
Copy link
Member Author

Neves-P commented Feb 17, 2025

Thanks @ocaisa , indeed that makes it a lot simpler.

In fact, I think we don't need to even touch EESSI-extend (or just tweak the check to see if the project directory exists), because we should be able to just pass /cvmfs/dev.eessi.io/example as EESSI_PROJECT_INSTALL in one go from theEESSI-install.sh. I'll give this a try now on the example repo.

Comment on lines 11 to 20
# If $EESSI_DEV_PROJECT is defined, then we are building for dev.eessi.io
# and add a subdirectory to $EESSI_PREFIX
if [ -z ${EESSI_DEV_PROJECT} ]; then
export EESSI_PREFIX=$EESSI_CVMFS_REPO/versions/$EESSI_VERSION
else
echo "\$EESSI_DEV_PROJECT: ${EESSI_DEV_PROJECT}; building for dev.eessi.io"
export EESSI_PREFIX=$EESSI_CVMFS_REPO_OVERRIDE/versions/$EESSI_VERSION/$EESSI_DEV_PROJECT
# Set EESSI_PREFIX to the dev project path for EESSI-extend
export EESSI_CVMFS_INSTALL=$EESSI_PREFIX
fi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto here, you could just tweak the definition of EESSI_CVMFS_REPO_OVERRIDE

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, but I think we need to set $EESSI_CVMFS_REPO_OVERRIDE before we call minimal_eessi_env, in bot/build.sh(?). I'm trying this now in acb896a

@Neves-P
Copy link
Member Author

Neves-P commented Feb 20, 2025

Not there yet, the check for software_dir_overlay fails in create_tarball.sh but should be close to sorted. I'll pick this up tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev.eessi.io enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants