ngless-toolkit / ngless-toolkit/ngless
Implement a setup phase for external modules
@unode is already working on this.
Since Sep 24, 2019.
- Dominant language
- Rust
- Stars
- 152
- Forks
- 23
- PR merge metrics
- No merged PRs in 30d
Description
When using external modules we currently provide an init phase in addition to the actual execution phase.
init can be used to test if all requirements to execute the module are satisfied.
On https://github.com/ngless-toolkit/ngless/commit/8459d7eb21a4231319a22c582b49f1194b65fcf8 I've introduced a lock such that init could be used for concurrent unsafe operations such as install/build software. The lock however gets in the way of execution since several jobs will fight for the same lock. Even worse, if a job fails during this phase, other jobs will be waiting for 24h+.
The discussed solution is to implement a setup phase that will lock but would be skipped once successfully finished. Much like a makefile rule with a setup.done target.
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.
Assessment
This issue has not been assessed yet.