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
8 changes: 5 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,15 @@ jobs:
# ───────────── Website/docs-only scope (lightweight) ─────────────
# Validates that the site compiles and the web package is clean without
# paying for the full cross-workspace test/build/gate pipeline.
# typediagram-core MUST build first: type-aware eslint and the web build
# both resolve typediagram-core's dist declarations; on a fresh runner an
# unbuilt core makes every import "a type that could not be resolved".
- name: Website checks (format, lint, typecheck, web tests, site build)
if: steps.scope.outputs.scope == 'web'
run: |
npm run fmt:check
npm run lint
npm run -w typediagram-core build
npm run -w @typediagram/web typecheck
make _fmt_check
make lint
npm run -w @typediagram/web test:unit
npm run -w @typediagram/web build

Expand Down
30 changes: 24 additions & 6 deletions docs/plans/marketplace-oidc-and-0.11.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,30 @@ Key facts from the runbooks:

### D. Ship v0.11.0

- [ ] Commit all of the above on `fixes`; open PR → `main`; CI green; merge.
- [ ] Tag `v0.11.0` from `main` → release workflow stamps 0.11.0, publishes npm + GitHub
Release, and now the OIDC `publish-marketplace` job pushes the VSIX.
- [ ] Monitor both workflows; confirm Marketplace shows **0.11.0** (full release, not
pre-release).
- [ ] Record typeDiagram in the NimblesiteDeployment onboarded-repos table (follow-up).
- [x] Commit all of the above on `fixes`; PR #45 → `main`; CI green; squash-merged
(`d7f3f7e`).
- [x] Tag `v0.11.0` from `main` → release run 27376654355: stamped 0.11.0, published
npm (`typediagram-core@0.11.0`, `typediagram@0.11.0`) + GitHub Release (6 assets),
and the OIDC `publish-marketplace` job pushed the VSIX
(`Published nimblesite.typediagram v0.11.0.`).
- [x] Verified live: Marketplace shows **0.11.0** as a stable (non-prerelease) release.
- [ ] Record typeDiagram in the NimblesiteDeployment onboarded-repos table (follow-up —
that repo is outside this working tree).

### E. Website audit findings (fixed in follow-up PR #47)

- [x] `dist/sitemap.xml` was never shipped: the Vite copy plugin only emitted `.html`
files while `robots.txt` advertised `/sitemap.xml` (crawl 404). Plugin now copies
Eleventy's `.xml` outputs.
- [x] Sitemap listed 7 of 156 URLs: Eleventy pagination adds only the first page to
`collections.all` by default, so every docs page except `introduction` was
missing. Fixed with `addAllPagesToCollections: true`.
- [x] Blog post title `&` double-escaped in `<title>` — reworded.
- [x] Playwright smoke (desktop 1280×720 + mobile 375×667): pages load, zero console
errors, no horizontal overflow, viewport meta correct.
- [x] `[CI-SCOPE-FILTER]` validated live: the website-only PR took the WEB path and
skipped the framework matrix/e2e/gates. (First run exposed an ordering bug —
type-aware lint before `typediagram-core` build — fixed by building core first.)

## Guard rails

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: "typeDiagram 0.11: Native DateTime, Uuid & Decimal — and Codegen That Refuses to Lie"
title: "typeDiagram 0.11: Native DateTime, Uuid and Decimal Scalars — Codegen That Refuses to Lie"
date: 2026-06-12
author: "The typeDiagram team"
description: "typeDiagram 0.11 adds native DateTime, Uuid, and Decimal scalars that generate real datetime / UUID / decimal types in TypeScript, Python, Rust, Go, C#, F#, Dart, PHP, and Protobuf — plus strict code generation that fails on unknown type names instead of emitting code that won't compile. The fix for schema drift on timestamps and ids."
Expand Down
3 changes: 3 additions & 0 deletions packages/web/eleventy/docs.njk
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ pagination:
data: docs
size: 1
alias: doc
# Without this, only the FIRST paginated page joins collections.all, so the
# sitemap listed /docs/introduction.html and silently dropped every other doc.
addAllPagesToCollections: true
permalink: "/docs/{{ doc.slug }}.html"
eleventyComputed:
title: "{{ doc.title }} — typeDiagram"
Expand Down
6 changes: 6 additions & 0 deletions packages/web/vite-plugin-copy-eleventy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ export const copyEleventyPlugin = (eleventyRoot: string): Plugin => ({
const all = await walk(eleventyRoot);
for (const abs of all) {
const rel = toPosix(relative(eleventyRoot, abs));
// Non-HTML Eleventy outputs (sitemap.xml) must reach dist too —
// robots.txt advertises /sitemap.xml, so dropping it is a crawl 404.
if (rel.endsWith(".xml")) {
this.emitFile({ type: "asset", fileName: rel, source: await readFile(abs, "utf-8") });
continue;
}
if (!rel.endsWith(".html")) {
continue;
}
Expand Down
Loading