diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2c993be6..6363220f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -31,6 +31,13 @@ updates: - "react*" - "@testing-library/react" - "@mdx-js/react" + prod-minor-patch: + dependency-type: "production" + update-types: + - "minor" + - "patch" + patterns: + - "*" cooldown: default-days: 7 @@ -49,6 +56,12 @@ updates: docker: patterns: - "docker/*" + gha-minor-patch: + update-types: + - "minor" + - "patch" + patterns: + - "*" labels: - "bot" commit-message: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 261446d1..424f43f8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: node-version-file: package.json - name: Configure sustainable npm - uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0 + uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0 - name: Install NPM dependencies run: npm ci @@ -51,7 +51,7 @@ jobs: node-version-file: package.json - name: Configure sustainable npm - uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0 + uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0 - name: Install NPM dependencies run: npm ci @@ -65,7 +65,7 @@ jobs: npx --yes wait-on@9 --timeout 60000 http://localhost:3000/ - name: Run accessibility tests - uses: lowlysre/pa11y-ci-action@9cfc00c514ae1d06afa84ce15d3959f8bbca2e73 # v1.0.0 + uses: lowlysre/pa11y-ci-action@84174759cd514bd3ea3bcaa30dc1798dde81f713 # v1.1.0 query-tests: name: DuckDB query smoke tests diff --git a/.github/workflows/production_deploy_documentation.yml b/.github/workflows/production_deploy_documentation.yml index e3eb0600..8c6419d4 100644 --- a/.github/workflows/production_deploy_documentation.yml +++ b/.github/workflows/production_deploy_documentation.yml @@ -34,7 +34,7 @@ jobs: node-version-file: package.json - name: Configure sustainable npm - uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0 + uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0 - name: Install NPM dependencies run: npm ci --prefer-dedupe diff --git a/.github/workflows/staging_deploy.yaml b/.github/workflows/staging_deploy.yaml index c586c0b3..79299116 100644 --- a/.github/workflows/staging_deploy.yaml +++ b/.github/workflows/staging_deploy.yaml @@ -48,7 +48,7 @@ jobs: with: node-version-file: 'package.json' - - uses: lowlydba/sustainable-npm@31d51025884f424f58f22e4e6578178bb4e79632 # v3.0.0 + - uses: lowlydba/sustainable-npm@4cc1da285e5a589a7b3816122f791c21ec6ff3e6 # v4.0.0 - run: npm ci --omit=dev diff --git a/blog/2026-10-06-cng-workshop.mdx b/blog/2026-10-06-cng-workshop.mdx index 1aa5fe0b..5786c4cb 100644 --- a/blog/2026-10-06-cng-workshop.mdx +++ b/blog/2026-10-06-cng-workshop.mdx @@ -16,10 +16,11 @@ You do have a model. You just wrote it in a place nothing else can read. The dat We had the same problem at Overture, at a larger scale. The [Overture Schema]() started as JSON Schema, hand-written as YAML, with reference docs written separately and validation that only ran on JSON. When the schema changed, the docs had to catch up by hand, and they didn't always. So we asked how we could write the model so that the data, the validation, and the reference material all derive from it and can't diverge. Our answer was code. [Last month we published v2.0.0 of the schema]() as a Python library built on Pydantic. The model is the source, and the JSON Schema, the reference docs, and the validation checks are all generated from it. +{/* truncate */} + This post follows the workshop we're teaching today at the [CNG Forum in Snowbird](). If you're in the room, it's the written version of what we're doing together. If you're not, it's an invitation: the packages are on PyPI, the workshop material is in [a public repo](https://github.com/OvertureMaps/workshop/tree/cng-snowbird) with a [Codespace that has everything installed](https://bit.ly/4jH4Rp8), and you can work through it on your own data. It's written for people on their own data modeling journey: you have a model you built, one you inherited, or one that's implicit in how your data happens to look, and it isn't working as well as you'd like. You want something that holds together better and fits with other datasets and tools. -{/* truncate */} ## Background: JSON Schema and Pydantic