Allow users to disable filesystem walk for dev specs#41976
Allow users to disable filesystem walk for dev specs#41976psakievich wants to merge 16 commits intospack:developfrom psakievich:f/skip-develop-check
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.
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.
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.
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.
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.