-
-
Notifications
You must be signed in to change notification settings - Fork 422
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
Feature: composite scripts #1117
Feature: composite scripts #1117
Conversation
13e62b5
to
1211dc3
Compare
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.
Hi, this feature is good to have, but since there is still room for improvement and we are developing on v2.0, new features should go there. I will change the base to dev
branch if you don't mind.
0ba4d98
to
0189eb3
Compare
Given it's now planned for 2.0 and we have time to craft a proper solution, I did the following:
I think I'm going to add:
|
0189eb3
to
484f449
Compare
484f449
to
37bb6d4
Compare
PR updated with:
I would say scope is OK for a first unless you want or see something else. Note: previous build failure was a permission denied on github assets under Windows, I don't think this is related to this PR |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dev #1117 +/- ##
=======================================
Coverage 84.33% 84.34%
=======================================
Files 79 79
Lines 6921 6930 +9
Branches 1640 1644 +4
=======================================
+ Hits 5837 5845 +8
+ Misses 736 732 -4
- Partials 348 353 +5
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
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.
Nice work! LGTM
* feat(core): Use tomllib on Python 3.11 (#1072) * docs: 📝 Fix typo in `pip install pdm` description (#1061) * Use tomllib on Python 3.11 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * news * use a compatibility module * missed one import Co-authored-by: t106362512 <[email protected]> Co-authored-by: hauntsaninja <> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * feat(core): Replace halo, click, and termcolor with rich (#1091) * feat(core): Use `unearth` as the backend to find and download packages (#1096) * perf(resolver): Speed up the resolution with lazy find_matches (#1098) * Improve the output of installing packages * Use confirm instead of ask * feat(core): New command: pdm publish (#1107) * Use rich handler for logging to stderr * feat(scripts): added composite tasks support (#1117) * feat(core): Add option to skip hooks (#1127) * fix(scripts): allow pdm test command to receive path arguments * feat(hooks): added a `--skip` option to skipp scripts and hooks (#1127) fix #948 * feat(hooks): use PDM_SKIP_HOOKS environement variable as fallback for skip list * feat(core): Support setup.py import (#1137) * Update completion script * fix(resolution): fix a bug that versions with local part can't be found and installed Close #1093 * feat(core): forbid editable depenencies in project table (#1140) * Make the error message more friendly * doc: improve the docs about dependencies * doc: add CLI reference doc * doc: use asciiart as the program description * chore: remove remaining artifacts from #1127 (#1152) * Feature: complete lifecycle signals and documentation (#1147) * feat(hooks): Added pre-publish hook * refactor(hooks): dynamic signal/hooks listing avoiding double declaration * feat(hooks): added (pre|post)_script and (pre|post)_run hooks * doc(hooks): added lifecycle and hooks documentation * review fix * fix(tests): add and use the _echo fixture for cross-plateform and concise test echos * refactor(hooks): automatically register the script handler for all hooks * feat: Update pdm-pep517 to 1.0 (#1153) * fix(scripts): merge the Script and Description field from listing (#1151) * feat: fetch the candidate hashes concurrently (#1154) * feat: fetch the candidate hashes concurrently * add news * Feat/respect-source-order (#1155) * doc: restructure the docs about project metadata and build configuration * parse pep 621 metadata to avoid build (#1156) * feat: Remove the compatible support for pdm legacy metadata (#1157) * fix(config): use platform standard directories for all PDM directories (#1161) Fixes #1150 * fix(#1156): only trust parsing result when all are static * New build configuration table * chore: added a tox.ini file for easier local testing against all Python versions (#1160) * feat(CLI): Yarn-like root scripts fallback (#1159) * feat(hooks): added a post_use hook (#1163) Co-authored-by: Shantanu <[email protected]> Co-authored-by: t106362512 <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel H <[email protected]>
Pull Request Check List
news/
describing what is new.Describe what you have changed in this PR.
This PR adds a "composite script" feature allowing to run multiple scripts one by one.
A classical use case would be:
Then
pdm run ci
will run thelint
command and then thetest
command. Execution stops and returns on first error.Both
env
andenv_file
defined incomposite
action will override those defined in called tasks.So with the following:
you will have: