declarative script plugin dependencies
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- java
- Domain
- build-system
Research direction
Start with the issue's draft API and inspect the Gradle script-plugin entry points that handle plugin application order. Trace how script plugins are applied and how violations could be reported. Done means the proposed dependency relationships are declarative and produce clear errors for invalid ordering, exclusivity, and future application cases.
Written by the indexing model from the issue text.
Description
It is common that script plugins will need to be applied in a specific order. It would be nice if these scripts gave nice declarative error messages if this was violated. Here is a draft API:
/**
* Throws an error if `('base/java')` hasn't already been applied.
* (Must be called only from within a script plugin.)
*/
void 干.requires('base/java') { ... }
/**
* Throws an error if `('base/scala')` has been applied,
* or if it is applied in the future.
* (Must be called only from within a script plugin.)
*/
void 干.mutuallyExclusiveWith('base/scala') { ... }
/**
* If `base/java` has already been applied, or is never applied, then this is fine.
* But if `base/java` is ever applied in the future, then there will be an error,
* because this plugin must run after 'base/java'.
* (Must be called only from within a script plugin.)
*/
void 干.mustRunAfter('base/java') { ... }
void 干.mustRunBefore('base/java') { ... }
- Dominant language
- Java
- Stars
- 29
- Forks
- 6
- Avg merge
- 8m
- Merged PRs (30d)
- 1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from diffplug/blowdryer
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
enhancement pr-welcome
Difficulty 5/5 Over a week Newbie friendliness 30/100
-
blowdryerInline Openenhancement pr-welcome
Difficulty 5/5 Over a week Newbie friendliness 35/100
All issues in diffplug/blowdryer
Similar issues
-
area-deployment area-integrations triage:bot-seen
Difficulty 2/5 Half a day Newbie friendliness 86/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
apache/flink-agents#1156 ·
-
[source-shopify] FAILED bulk operation without partialDataUrl is silently treated as successful Openarea/connectors autoteam community connectors/source/shopify needs-triage team/use type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100