-
Notifications
You must be signed in to change notification settings - Fork 604
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
[heft] Add Heft "Phases" and "Tasks" to Allow for Heavy Customization of Heft Build Flows #3468
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add new remainder test Add ScopedCommandLineParser Revert "Update argparse version" This reverts commit 6f917d3. Cleanup More cleanup Rush change Updated docstring
…eveloper to decide if the scope is required
…ng the developer to decide if the scope is required" This reverts commit 117770e.
This reverts commit 66ed548.
Add new remainder test Add ScopedCommandLineParser Revert "Update argparse version" This reverts commit 6f917d3. Cleanup More cleanup Rush change Updated docstring Tweaks to allow for unscoped calls to scoping actions, allowing the developer to decide if the scope is required Apply suggestions from code review Co-authored-by: Ian Clanton-Thuon <[email protected]> Call the onExecute directly Use a symbol for the 'scoping' parameter group Break a circular reference.
This reverts commit b20cb5c.
Add new remainder test Add ScopedCommandLineParser Revert "Update argparse version" This reverts commit 6f917d3. Cleanup More cleanup Rush change Updated docstring Tweaks to allow for unscoped calls to scoping actions, allowing the developer to decide if the scope is required Apply suggestions from code review Co-authored-by: Ian Clanton-Thuon <[email protected]> Call the onExecute directly Use a symbol for the 'scoping' parameter group Break a circular reference. Fixes for writing help and continuing to execute Add missing onExecute Nit: import order
This reverts commit 02d9a97.
This was referenced Jun 15, 2022
D4N14L
changed the title
Add Heft "Phases" and "Tasks" to Allow for Heavy Customization of Heft Build Flows
[heft] Add Heft "Phases" and "Tasks" to Allow for Heavy Customization of Heft Build Flows
Jun 24, 2022
…er/danade/HeftNext2
…er/danade/HeftNext2
…er/danade/HeftNext2
…er/danade/HeftNext2
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Implements the design discussed in #3181. Rejigs how plugins are developed for Heft. Rejigs how plugins interact with the "build" flow.
Details
As stated in the summary, many of the changes here are implementations of the designs discussed in #3181. A few of the bigger callouts for this change include:
heft.json
changesheft build
). These actions are made up of phases and tasks.heft build
will run all phases up to and including thebuild
phase, as defined inheft.json
)--clean
parameterheft run
actionheft run --to <phaseName>
andheft run --only <phaseName>
scoping parameters can be used to target a limited number of phasesheft run --to phaseName -- --parameter
heft <phaseName>
actionsheft run --to <phaseName> --
clean
and arun
hookheft.json
heftPlugins
field, and provide aclean
,toolStart
,toolStop
, andmetrics
hookheft-plugin.json
manifest in the root of the packageheft.json
-provided options--parameter
and--PluginName:parameter
HeftTaskSession
objecttemp/lifecycle.<lifecycleplugin>
andtemp/<phasename>.<taskname>
folders are deleted when cleaning.cache/lifecycle.<lifecycleplugin>
and.cache/<phasename>.<taskname>
folders are deleted when cleaning and--clean-cache
is specifiedclean
hooks can provide files to delete via the options passed into the hookrun
hooks can provide files to be copied via the options passed into the hookIRigToolResolver
API to obtain packages from rigs the same way TypeScript or API Extractor are loaded@rushstack/heft-jest-plugin
Changes made that are used by (but external to) Heft:
APIExtractorPlugin
clean
hookFileError
to@rushstack/node-core-library
SubprocessTerminator
to@rushstack/node-core-library
Subprocess
-related classes were removed from Heft, as their implementation was tied closely to Heft and is no longer being usedTODO:
metrics
lifecycle hookheft start
functionalityHow it was tested
Updated most of repository to build using new Heft. Remaining unconverted projects use Heft as a cyclic dependency and will be converted after the new version of Heft is published. Updated build tests to target new Heft.