Skip to content

Allow users to disable filesystem walk for dev specs#41976

Closed
psakievich wants to merge 16 commits intospack:developfrom
psakievich:f/skip-develop-check
Closed

Allow users to disable filesystem walk for dev specs#41976
psakievich wants to merge 16 commits intospack:developfrom
psakievich:f/skip-develop-check

Conversation

@psakievich
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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).

@psakievich psakievich closed this by deleting the head repository May 14, 2025
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