diffplug / diffplug/blowdryer

declarative script plugin dependencies

Open
#8 0 comments 0 reactions 0 assignees View on GitHub
enhancement pr-welcome
Dominant language
Java
Stars
29
Forks
6
Avg merge
1h 7m
Merged PRs (30d)
2

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:

```java
/**
* 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') { ... }
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.