A tree-sitter grammar for Pkl.
# install dependencies
$ npm install
# build parser
$ npm run build
# parse some code
$ ./node_modules/.bin/tree-sitter parse test.pkl
Tree sitter comes with its own test framework. Files in corpus/
describe one test each. All tests in corpus/
are performed by the
command
$ tree-sitter test
The script src/synctests.ts
creates corpus/
test files from tests in
pkl
's LanguageSnippetTests
. The script assumes that ../pkl
is a
checked out pkl
repository (and that the tests are under
pkl-core/src/test/files/LanguageSnippetFiles/input
). A pre-condition
of the script is that tree-sitter test
currently passes. If broken
tests need replacing, the broken tests must first be deleted.
It can be executed by running
$ npm run synctests
Upgrading tree-sitter involves upgrading the NPM package.
- Run
npm update tree-sitter
to install the newer version of tree-sitter. - Commit to main, and push.
- Run the build & test to make sure everything is up-to-date and passes (check 0 diff).
- Create a
Prepare 1.2.3 release
(with appropriate version number) commit where
- Versions are bumped in
package.json
,Cargo.toml
- Lockfiles are updated (
npm install
,cargo check
) - You have checked the previous release PR for any changes in process not described in this
README.adoc
; if any- Adopt the changes accordingly
- Update this description to capture the changed process
- Merge into
main
& push - Check that CI release succeeded (release pipeline)
- Check the publication is reachable, on NPM