Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/analytics-emdash-1-0-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@eisbachcode/emdash-plugin-analytics": patch
---

Tested on EmDash 1.0.1, the first stable release; no change was needed.
41 changes: 34 additions & 7 deletions .github/workflows/compat-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@
# Deliberately NOT named emdash-release.yml: `emdash-plugin release setup`
# generates that file, and this must not collide with it.
#
# Two jobs, because they answer different questions:
# Three jobs, because they answer different questions:
#
# declared gating. The versions inside our published range. A failure here
# is our regression and blocks the branch.
# tests gating. Typecheck, manifest validation and every suite on the
# EmDash version each package's harness pins. This is the
# baseline that tells a harness breakage from a plugin regression.
# declared gating, one job per version so they run in parallel. The
# versions inside our published range. A failure here is our
# regression and blocks the branch.
# latest informational, never blocks. Runs against whatever EmDash is
# current on npm. EmDash ships a minor every 6-8 days and any minor
# may carry breaking changes, so this is the signal to widen the
Expand All @@ -26,9 +30,13 @@ on:
permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
declared:
name: declared range
tests:
name: tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Expand All @@ -41,7 +49,26 @@ jobs:
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm typecheck
- run: ./scripts/compat-matrix.sh 0.39.0 0.39.1 0.40.0 0.40.1 0.41.0 0.42.0 1.0.1-rc.0:0.2.6-rc.0
# One package at a time, like the compat script: suites running in
# parallel on one runner are untested.
- run: pnpm --filter "./packages/*" --workspace-concurrency=1 run test

declared:
name: EmDash ${{ matrix.emdash }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
emdash: [0.39.0, 0.39.1, 0.40.0, 0.40.1, 0.41.0, 0.42.0, "1.0.1:0.2.6"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version-file: .nvmrc
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: ./scripts/compat-matrix.sh --no-baseline "${{ matrix.emdash }}"

latest:
name: current EmDash (informational)
Expand All @@ -67,4 +94,4 @@ jobs:
echo "harness=$(npm view @emdash-cms/plugin-test dist-tags.latest)" >> "$GITHUB_OUTPUT"
- run: |
echo "current EmDash on npm: ${{ steps.resolve.outputs.version }} (plugin-test ${{ steps.resolve.outputs.harness }})"
./scripts/compat-matrix.sh "${{ steps.resolve.outputs.version }}:${{ steps.resolve.outputs.harness }}"
./scripts/compat-matrix.sh --no-baseline "${{ steps.resolve.outputs.version }}:${{ steps.resolve.outputs.harness }}"
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ pnpm install
pnpm typecheck
pnpm test # emdash-plugin validate, then vitest, per package
pnpm build
./scripts/compat-matrix.sh 0.39.0 0.39.1 0.40.0 0.40.1 0.41.0 0.42.0 1.0.1-rc.0:0.2.6-rc.0 # suites against other EmDash releases
./scripts/compat-matrix.sh 0.39.0 0.39.1 0.40.0 0.40.1 0.41.0 0.42.0 1.0.1:0.2.6 # suites against other EmDash releases
```

## Releases
Expand Down
3 changes: 1 addition & 2 deletions packages/analytics/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ entry that earned them rather than to a URL string.
> **Status: early releases.** Cloudflare Web Analytics plus demo data: a
> dashboard widget, an Analytics page with a setup check, a per-entry page,
> an Analytics panel in the entry editor and four read-only MCP tools.
> Tested on EmDash 0.39 to 0.42 and on the 1.0 release candidate
> (1.0.1-rc.0). See "Not in this version".
> Tested on EmDash 0.39 to 1.0. See "Not in this version".

The screenshots show demo data on a site made from EmDash's blog template.

Expand Down
2 changes: 1 addition & 1 deletion packages/content-freshness/emdash-plugin.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"release": {
"requires": { "env:emdash": ">=0.39.0" }
},
"description": "Audits your content for staleness: entries untouched for too long, missing or badly sized SEO descriptions, forgotten drafts, schedules that never fired, and collections without a URL pattern.",
"description": "Audits your content: stale entries, weak or missing SEO descriptions, forgotten drafts, schedules that never fired and missing URL patterns.",
"keywords": ["content", "audit", "seo", "maintenance", "editorial"],

// Trust contract: read content and the collection list, nothing else.
Expand Down
16 changes: 8 additions & 8 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@ allowBuilds:
strictDepBuilds: true
dangerouslyAllowAllBuilds: false
minimumReleaseAgeExclude:
- '@emdash-cms/admin@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1-rc.0'
- '@emdash-cms/auth@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1-rc.0'
- '@emdash-cms/blocks@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1-rc.0'
- '@emdash-cms/cloudflare@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1-rc.0'
- '@emdash-cms/gutenberg-to-portable-text@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1-rc.0'
- '@emdash-cms/plugin-cli@0.12.0 || 0.13.0'
- '@emdash-cms/plugin-test@0.2.0 || 0.2.3 || 0.2.5 || 0.2.6-rc.0'
- '@emdash-cms/admin@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1'
- '@emdash-cms/auth@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1'
- '@emdash-cms/blocks@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1'
- '@emdash-cms/cloudflare@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1'
- '@emdash-cms/gutenberg-to-portable-text@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1'
- '@emdash-cms/plugin-cli@0.12.0 || 0.13.1'
- '@emdash-cms/plugin-test@0.2.0 || 0.2.3 || 0.2.6'
- '@emdash-cms/plugin-types@0.4.0 || 0.5.0'
- '@emdash-cms/registry-client@0.6.1 || 0.7.0'
- '@emdash-cms/registry-lexicons@0.6.0 || 0.7.0'
- '@emdash-cms/registry-verification@0.3.2 || 0.3.3'
- emdash@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1-rc.0
- emdash@0.39.0 || 0.40.1 || 0.42.0 || 1.0.1
22 changes: 17 additions & 5 deletions scripts/compat-matrix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,24 @@
# (`emdash/plugin-test-runtime` became `emdash/internal/plugin-test-runtime`),
# so no harness before plugin-test 0.2.6 can start a 1.0 host. A version
# written as `version:harness` also overrides plugin-test, for example
# `1.0.1-rc.0:0.2.6-rc.0`.
# `1.0.1:0.2.6`.
#
# Usage: scripts/compat-matrix.sh [version[:harness]...] (default: 0.39.1 0.40.0)
# `--no-baseline` skips the baseline row, for CI jobs that each run one
# version while a separate job runs the suites on their pinned host.
#
# Usage: scripts/compat-matrix.sh [--no-baseline] [version[:harness]...] (default: 0.39.1 0.40.0)

set -euo pipefail

ROOT="$(git rev-parse --show-toplevel)"
cd "$ROOT"

BASELINE=1
if [ "${1:-}" = "--no-baseline" ]; then
BASELINE=0
shift
fi

VERSIONS=("${@:-}")
[ -z "${VERSIONS[0]:-}" ] && VERSIONS=(0.39.1 0.40.0)

Expand Down Expand Up @@ -100,8 +109,10 @@ run_suites() {
done
}

echo "baseline (harness's own pinned host, no overrides)"
run_suites "baseline"
if [ "$BASELINE" -eq 1 ]; then
echo "baseline (harness's own pinned host, no overrides)"
run_suites "baseline"
fi

for spec in "${VERSIONS[@]}"; do
v="${spec%%:*}"
Expand All @@ -127,7 +138,8 @@ printf '%-26s %-12s' "package" "baseline"
for spec in "${VERSIONS[@]}"; do printf '%-12s' "${spec%%:*}"; done
echo
for p in "${PKGS[@]}"; do
printf '%-26s %-12s' "$p" "$(lookup baseline "$p")"
if [ "$BASELINE" -eq 1 ]; then base="$(lookup baseline "$p")"; else base="skipped"; fi
printf '%-26s %-12s' "$p" "$base"
for spec in "${VERSIONS[@]}"; do printf '%-12s' "$(lookup "${spec%%:*}" "$p")"; done
echo
done
Expand Down
Loading