-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
base: develop
Are you sure you want to change the base?
Conversation
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
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. |
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.
These builds are only incremental for build systems that support incremental builds, autotools packages will have to do the entire build over again.
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.
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 |
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.
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) |
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 belongs in the develop section (and I think it needs to be set per-package, see above).
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.