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

Allow users to disable filesystem walk for dev specs #41976

Open
wants to merge 16 commits into
base: develop
Choose a base branch
from

Conversation

psakievich
Copy link
Contributor

On some filesystems like lustre the timing check can bring development work to a crawl and always performing an incremenetal build is prefered. This gives users that option.

On some filesystems like lustre the timing check can bring development
work to a crawl and always performing an incremenetal build is prefered.
This gives users that option
@psakievich psakievich self-assigned this Jan 6, 2024
@spackbot-app spackbot-app bot added commands core PR affects Spack core functionality environments stand-alone-tests Stand-alone (or smoke) tests for installed packages tests General test capability(ies) labels Jan 6, 2024
@spackbot-app spackbot-app bot added the documentation Improvements or additions to documentation label Jan 6, 2024
@psakievich
Copy link
Contributor Author

Complements #41013

Users can set the configuration option ``config:dev_specs_always_rebuild:true`` to
disable this check.
``config:dev_specs_always_rebuild:true`` makes it so all develop specs will perform
**incremental rebuilds** each time ``spack install`` is called. Please note these are not *complete rebuilds* and will still be much quicker than a fresh installation.
Copy link
Member

Choose a reason for hiding this comment

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

These builds are only incremental for build systems that support incremental builds, autotools packages will have to do the entire build over again.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The more you know... 👍

``config:dev_specs_always_rebuild:true`` makes it so all develop specs will perform
**incremental rebuilds** each time ``spack install`` is called. Please note these are not *complete rebuilds* and will still be much quicker than a fresh installation.

Adding the ``--always-rebuild`` flag to the ``spack develop`` command will automatically
Copy link
Member

Choose a reason for hiding this comment

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

If we're tagging this per-package on the spack develop command, then we should be recording this separately for each package instead of globally. That would also allow you to get the performance benefits from packages that do incremental builds but still pay the cost to avoid full rebuilds for some packages that have long and non-incremental builds.

env = spack.cmd.require_active_env(cmd_name="develop")
if args.always_rebuild:
with env.write_transaction():
spack.config.add("config:dev_specs_always_rebuild:true", env.scope_name)
Copy link
Member

Choose a reason for hiding this comment

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

This belongs in the develop section (and I think it needs to be set per-package, see above).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
commands core PR affects Spack core functionality documentation Improvements or additions to documentation environments shell-support stand-alone-tests Stand-alone (or smoke) tests for installed packages tests General test capability(ies)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants