diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 9eb164861..8bca6d6f1 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -102,6 +102,65 @@ consider:
- first checkout your main: `git checkout main`
- then run: `git reset --hard upstream/main`
+## Developing for the validator
+
+When proposing a feature or bug fix, you must decide which branch you will target:
+`main` or `dev`.
+In most cases you will want `main`, but read below to understand the purposes of
+the two branches.
+
+### Branching policy
+
+The BIDS Validator's `main` branch tracks the most recent release version of the specification:
+.
+Pull requests made against the `main` branch should implement features or fix bugs in a way
+that preserves consistency with the stable specification.
+
+The `dev` branch is for features that are not yet in the released version of the BIDS
+specification.
+The purpose of this branch is to verify that proposed rules can be validated and
+provide users with preview access to upcoming changes to the validator, increasing the chances
+of catching issues with the specification or the validator, prior to release.
+Changes to the `dev` branch may be reverted at any time.
+
+### How to prepare a pull request for your target branch
+
+If you're going to target `main`, then start as follows:
+
+```console
+git fetch upstream
+git switch -c feat/short-desc upstream/main
+```
+
+This will create a new branch named `feat/short-desc`
+(use `fix/...` for bug-fix branches, `doc/...` for documentation, etc.) starting
+from the current state of the `main` branch on the `upstream` remote.
+Instead of `short-desc`, use a few words to make the content of your branch
+easily identifiable.
+
+Once you have changes committed and ready for review you can run:
+
+```console
+git push -u origin feat/short-desc
+```
+
+GitHub will then give you a link such as:
+.
+Follow that link to create a pull request.
+
+While you are creating the pull request, verify that the base branch is set to `main`.
+
+For `dev`, the process is identical:
+
+```console
+git fetch upstream
+git switch -c feat/short-desc upstream/dev
+# Add your feature
+git push -u origin feat/short-desc
+```
+
+Open PR, set base branch to `dev`.
+
[link_git]: https://git-scm.com/
[link_handbook]: https://guides.github.com/introduction/git-handbook/
[link_swc_intro]: http://swcarpentry.github.io/git-novice/
diff --git a/.github/workflows/deno_tests.yml b/.github/workflows/deno_tests.yml
index fa96d2d52..b5d8760d4 100644
--- a/.github/workflows/deno_tests.yml
+++ b/.github/workflows/deno_tests.yml
@@ -13,6 +13,20 @@ concurrency:
cancel-in-progress: true
jobs:
+ debug_info:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - run: git status
+ - run: git describe
+ - run: env
+ - name: Dump github context
+ run: echo $GITHUB_CONTEXT | jq .
+ env:
+ GITHUB_CONTEXT: ${{ toJson(github) }}
+
build:
runs-on: ubuntu-latest
steps:
@@ -60,6 +74,9 @@ jobs:
- name: Disable example that requires network access
run: touch tests/data/bids-examples/xeeg_hed_score/.SKIP_VALIDATION
if: ${{ ! matrix.allow-net }}
+ - name: Disable unreleased examples
+ run: touch tests/data/bids-examples/dwi_deriv/.SKIP_VALIDATION
+ if: github.ref_name != 'dev' && github.base_ref != 'dev'
- run: deno test --node-modules-dir=auto $PERMS --coverage=cov/ src/
- name: Collect coverage
run: deno coverage cov/ --lcov --output=coverage.lcov
diff --git a/deno.json b/deno.json
index 1208ca162..0848110d6 100644
--- a/deno.json
+++ b/deno.json
@@ -24,7 +24,7 @@
},
"imports": {
"@ajv": "npm:ajv@8.17.1",
- "@bids/schema": "jsr:@bids/schema@0.11.4-dev.10+436d7cde",
+ "@bids/schema": "jsr:@bids/schema@0.11.3+2",
"@cliffy/command": "jsr:@effigies/cliffy-command@1.0.0-dev.8",
"@cliffy/table": "jsr:@effigies/cliffy-table@1.0.0-dev.5",
"@hed/validator": "npm:hed-validator@3.15.5",
diff --git a/tests/data/bids-examples b/tests/data/bids-examples
index 7de1e8c56..d549036da 160000
--- a/tests/data/bids-examples
+++ b/tests/data/bids-examples
@@ -1 +1 @@
-Subproject commit 7de1e8c569ae70209217c42a6843be11ffc8e9fd
+Subproject commit d549036dad8d77075db1946ed0fdcdeeca8acd1f