Skip to content

Installer: queue only link/run deps unless building from source#46101

Closed
becker33 wants to merge 9 commits intodevelopfrom
features/install-binary-no-build-deps
Closed

Installer: queue only link/run deps unless building from source#46101
becker33 wants to merge 9 commits intodevelopfrom
features/install-binary-no-build-deps

Conversation

@becker33
Copy link
Copy Markdown
Member

@becker33 becker33 commented Aug 29, 2024

Depends on #39136 (commits up-to/including 39ff are from that PR)

  • Refactors BuildTask into separate classes BuildTask and InstallTask
  • Queues all packages as InstallTask, with link/run deps only
  • If an InstallTask fails to install from binary, a BuildTask is generated
  • The BuildTask is queued with dependencies on the new InstallTasks for its build deps and their link/run dependencies.
  • The Tasks telescope open to include all build deps of build deps ad-hoc

TODO:

  • Docs
  • Fix InstallStatus to track/report new dependencies properly

@spackbot-app spackbot-app Bot added binary-packages commands core PR affects Spack core functionality dependencies environments new-version shell-support stand-alone-tests Stand-alone (or smoke) tests for installed packages tests General test capability(ies) update-package workflow labels Aug 29, 2024
@spackbot-app spackbot-app Bot requested review from alalazo and tgamblin August 29, 2024 00:18
@becker33 becker33 force-pushed the features/install-binary-no-build-deps branch 2 times, most recently from e7980d2 to fbc7ad9 Compare August 29, 2024 00:34
@tldahlgren tldahlgren self-requested a review August 29, 2024 01:36
@tldahlgren tldahlgren self-assigned this Aug 29, 2024
@tldahlgren tldahlgren force-pushed the features/install-binary-no-build-deps branch from d6d8dbb to 085cff4 Compare August 30, 2024 00:22
Copy link
Copy Markdown
Contributor

@tldahlgren tldahlgren left a comment

Choose a reason for hiding this comment

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

I'm still reviewing this but wanted to add the comment.

Comment thread lib/spack/spack/installer.py Outdated
@becker33 becker33 force-pushed the features/install-binary-no-build-deps branch 2 times, most recently from 52ec48e to 63c8bd6 Compare September 5, 2024 20:28
Comment thread lib/spack/spack/installer.py Outdated
"The spec is now uninstalled."
)

# Unwrap the actuall installation exception
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Typo: actuall -> actual.

@becker33 becker33 force-pushed the features/install-binary-no-build-deps branch 3 times, most recently from 5e8476b to c0e596c Compare September 6, 2024 05:26
@becker33 becker33 force-pushed the features/install-binary-no-build-deps branch from c0e596c to e8327bc Compare November 12, 2024 01:00
@tldahlgren tldahlgren force-pushed the features/install-binary-no-build-deps branch from 7261682 to 58ed9be Compare November 14, 2024 00:09
@becker33 becker33 force-pushed the features/install-binary-no-build-deps branch from 58ed9be to d87158a Compare March 28, 2025 19:31
@becker33 becker33 force-pushed the features/install-binary-no-build-deps branch from d87158a to ac86eb2 Compare June 16, 2025 23:41
becker33 and others added 9 commits June 16, 2025 17:27
…eded

Refactors BuildTask into separate classes BuildTask and InstallTask
Queues all packages as InstallTask, with link/run deps only
If an InstallTask fails to install from binary, a BuildTask is generated
The BuildTask is queued with dependencies on the new InstallTasks for its
build deps and their link/run dependencies.
The Tasks telescope open to include all build deps of build deps ad-hoc
- test/installer: use existing inst for spack.installer
- remove install status from Installing message
- Add specs count visitor
- Report status on installed plus minor refactor
- Add the "+" to the tracker; include one experimental dynamic calculation
- tweak status reporting to include ensuring numerator unique across installed packages
- _print_installed_pkg -> InstallStatus.print_installed()
- move set_term_title outside of InstallStatus
- InstallStatus: remove unnecessary next_pkg
- InstallStatus: class and method name changes
  * changed InstallStatus to InstallerStatus since already have former in
    database.py and spec.py
  * changed print_installed to set_installed since does more than print now
- InstallerStatus -> InstallerProgress, install_status -> progress
- InstallerProgress: cache config:install_status
- InstallerProgress: restore get_progress and set_term_title methods (w/ tweaks)
- Task execute(): added returns to docstrings
- Don't pass progress to build_process or Installer.run, but set installed on successful return
- fix mypy issue with pkg.run_tests assignment
Signed-off-by: Gregory Becker <becker33@llnl.gov>
Signed-off-by: Gregory Becker <becker33@llnl.gov>
@becker33 becker33 force-pushed the features/install-binary-no-build-deps branch from ac86eb2 to 7d48c18 Compare June 17, 2025 16:48
bcumming added a commit to eth-cscs/stackinator that referenced this pull request Jul 9, 2025
Remove the bootstrap compiler stage.

- remove the `compilers/bootstrap` environment
- the first target is the `compilers/gcc` environment
- remove external packages from `compilers/gcc`
- these can cause difficulties for users the environment as a downstream
package
- the build dependencies will not be included in the target uenv when
spack/spack#46101 is merged
- create a special `uenv_tools` environment that builds the `squashfs`
package (which was built in `bootstrap`)
- update tests

Bonus extra:
- fix the build cache access token warning

Fixes #241 
Fixes #239

---------

Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
@github-actions
Copy link
Copy Markdown
Contributor

This pull request has been automatically marked as stale because it has not had any activity in the last 6 months. It will be closed in 30 days if there is no further activity.

If the pull request is waiting for a reply from reviewers, feel free to ping them as a reminder. If it is waiting and has no assigned reviewer, feel free to ping @spack/spack-releasers or simply leave a comment saying this should not be marked stale. This will reset the pull request's stale state.

To get more eyes on your pull request, you can post a link in the #pull-requests channel of the Spack Slack.
Thank you for your contributions!

@github-actions github-actions Bot added the stale label Dec 15, 2025
@github-actions
Copy link
Copy Markdown
Contributor

This pull request was closed because it had no activity for 30 days after being marked stale. If you feel this is in error, please feel free to reopen this pull request.

@github-actions github-actions Bot closed this Jan 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

binary-packages commands core PR affects Spack core functionality dependencies environments new-version shell-support stale stand-alone-tests Stand-alone (or smoke) tests for installed packages tests General test capability(ies) update-package workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants