Just: introduce common "verbs" #19978
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This introduces verbs (
build
,test
,format
,lint
,generate
) that individual parts of the project can implement, and some common functionality that can be used to that effect.The core of the functionality is given by forwarding. The idea is that:
just
behaviour.just test rust/ql/test/...
, then a forwarder script finds a common directory to all the positional arguments passed there, and then retries callingjust test
from there. Iftest
is implemented beneath that (in that case, it is inrust/ql
), it uses that recipe. Otherwise it detects falling back to the forwarder again and exits with an error.Another point is how launching QL tests can be tweaked:
codeql
standalone), and no additional database or consistency checks are made--no-build
can be passed to skip the build step (if no changes were made to the CLI/extractors). I'm considering unifying the options withpytest
though (with a--codeql=built
corresponding to the--no-build
in this PR)+
argument, and adding consistency checks with++
. Both can be configured at the level of theql
directoryThis is applied for the moment to
rust
,swift
andcodegen
, although it does require changes in the internal repo to work.