ngless-toolkit / ngless-toolkit/ngless

Implement a setup phase for external modules

Open
#71 0 comments 0 reactions 1 assignee View on GitHub

@unode is already working on this.

Since Sep 24, 2019.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.