Store review round: plain MIT, source synced per release, asset attestations

The automated review requires source in the repository (closed-source
unsupported), a recognized license (the CC-BY exception paragraph broke
detection and referenced a directory this repo does not have), and
recommends provenance attestations. The release workflow now syncs src/
and styles.css from the monorepo on every release and attests the
release assets; LICENSE is vanilla MIT.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Nossimonov 2026-07-21 16:23:30 -07:00
parent 101b114493
commit 23e51a867f
3 changed files with 20 additions and 14 deletions

View file

@ -1,7 +1,9 @@
# Builds the plugin from the Chartdown monorepo (the single source of truth)
# and cuts a release the Obsidian community store can consume: tag = exact
# manifest version (no v prefix), with main.js / manifest.json / styles.css
# as individual assets, and the root manifest.json + versions.json synced.
# as individual assets carrying build-provenance attestations, and the root
# manifest.json + versions.json + src/ synced (the store requires source in
# the repository).
name: Release plugin
on:
@ -13,6 +15,8 @@ on:
permissions:
contents: write
id-token: write
attestations: write
jobs:
release:
@ -35,8 +39,12 @@ jobs:
working-directory: chartdown
- id: version
run: echo "version=$(node -p "require('./chartdown/packages/obsidian/manifest.json').version")" >> "$GITHUB_OUTPUT"
- name: Sync root manifest.json and versions.json
- name: Sync source, manifest.json, and versions.json from the monorepo
run: |
rm -rf src
cp -r chartdown/packages/obsidian/src src
cp chartdown/packages/obsidian/styles.css styles.css
cp chartdown/packages/obsidian/tsconfig.json tsconfig.json
cp chartdown/packages/obsidian/dist/manifest.json manifest.json
node -e "
const fs = require('fs');
@ -47,9 +55,16 @@ jobs:
"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add manifest.json versions.json
git add -A
git diff --cached --quiet || git commit -m "Release ${{ steps.version.outputs.version }}"
git push
- name: Attest build provenance for the release assets
uses: actions/attest-build-provenance@v2
with:
subject-path: |
chartdown/packages/obsidian/dist/main.js
chartdown/packages/obsidian/dist/styles.css
chartdown/packages/obsidian/dist/manifest.json
- name: Create the release (tag = exact version, per Obsidian guidelines)
env:
GH_TOKEN: ${{ github.token }}
@ -61,5 +76,3 @@ jobs:
chartdown/packages/obsidian/dist/styles.css \
--title "$V" \
--notes "Chartdown plugin $V — built from Nossimonov/Chartdown@${{ inputs.ref }}. See the [Chartdown changelog](https://github.com/Nossimonov/Chartdown/blob/main/CHANGELOG.md)."
# (workflow indexing nudge)

View file

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2026 The Chartdown Authors
Copyright (c) 2026 Nossimonov
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -19,10 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---
Exception: the contents of the docs/spec/ directory (the Chartdown language
specification) are licensed under the Creative Commons Attribution 4.0
International License (CC-BY-4.0) rather than the MIT License. See
docs/spec/README.md.

View file

@ -35,7 +35,7 @@ Until the plugin is in the community store: download `main.js`, `manifest.json`,
## Development
This is the **release repository**: releases are built by CI from the [Chartdown monorepo](https://github.com/Nossimonov/Chartdown) (`packages/obsidian`), which is where the source, tests, and issue tracker live. Please file issues and PRs there.
Development happens in the [Chartdown monorepo](https://github.com/Nossimonov/Chartdown) (`packages/obsidian`), which is where the tests and issue tracker live — please file issues and PRs there. This repository carries the store-facing artifact: [`src/`](src/) and `styles.css` are synced verbatim from the monorepo by the release workflow (every release commit pins the exact source it was built from), and release assets carry [build-provenance attestations](https://github.com/Nossimonov/obsidian-chartdown/attestations). The plugin imports [`@chartdown/core`](https://www.npmjs.com/package/@chartdown/core) and [`@chartdown/render-svg`](https://www.npmjs.com/package/@chartdown/render-svg), published from the same monorepo.
## License