Skip to content

Ship Deck as a cargo-generate template + open-source release prep - #7

Merged
hellno merged 1 commit into
mainfrom
hellno/open-source-readiness-audit
Jun 11, 2026
Merged

Ship Deck as a cargo-generate template + open-source release prep#7
hellno merged 1 commit into
mainfrom
hellno/open-source-readiness-audit

Conversation

@hellno

@hellno hellno commented Jun 11, 2026

Copy link
Copy Markdown
Owner

What & why

Make Deck forkable via cargo generate gh:hellno/deck using native Liquid {{ }} tokens behind an include allowlist (no hooks/scripts), and prep the repo to go public. Because the source now carries tokens, the raw repo no longer builds directly — CI and just check-template render a throwaway project and build that instead.

Bundled in: accurate NOTICE licensing (gpui is Apache-2.0 from git; GPL-3.0-or-later only in transitive zlog/ztracing/ztracing_macro) + ship NOTICE/LICENSE in the artifact; community-health files (SECURITY/CONTRIBUTING/CODE_OF_CONDUCT, issue/PR templates, dependabot, README badges); and CI hardening (least-privilege permissions, blocking cargo-deny, SHA-pinned actions).

Definition of Done

This repo is now a template, so just ci runs inside a generated fork, not the raw repo. Verified via the generate-then-check path (the new just check-template / CI flow):

  • cargo generatecargo build --locked + cargo test (6) + cargo test --features overlay (15) + clippy on default / tray / overlay / tray,overlay, all green.
  • No new or changed dependencies (only bundle metadata + the tokenized Cargo.lock root name).
  • GPUI pins unchanged (not hand-edited).
  • Docs updated (README.md, CLAUDE.md/AGENTS.md, NOTICE).

Platforms tested

  • macOS (generated project: build + tests + clippy)
  • Linux (kept honest by CI)
  • Features exercised: default / tray / overlay / tray,overlay

Notes for reviewers

The raw repo intentionally doesn't cargo run (it has {{ }} tokens — that's how the rename works); verify with just check-template. Out of scope / still TODO: a README GIF, and the GitHub-side steps (flip public, prune merged branches, tag v0.1.0).

Make Deck forkable via `cargo generate gh:hellno/deck` using native Liquid
{{ }} tokens behind an include-allowlist (no hooks, no scripts). The raw repo
no longer builds directly; `just check-template` and CI render-then-check.

Template:
- cargo-generate.toml: `include` allowlist of the 7 tokenized files +
  bundle_qualifier/bundle_org placeholders.
- Tokenize crate/bin name, default-run, APP_NAME, bundle name/id, config-dir
  consts, actions! namespaces, log prefixes, the .desktop entry, LICENSE, and
  the Cargo.lock root (so a fork's `cargo --locked` works).
- justfile: `check-template` renders a throwaway project and lints+tests it.

Release prep:
- NOTICE: accurate gpui licensing (Apache-2.0 from git; GPL-3.0-or-later in
  zlog/ztracing/ztracing_macro, transitive via gpui); bundle NOTICE+LICENSE
  into the .app/.deb.
- Community health: SECURITY, CONTRIBUTING, CODE_OF_CONDUCT, issue/PR
  templates, dependabot, README badges.
- CI: generate-then-check on macOS+Linux, blocking cargo-deny, least-privilege
  permissions, SHA-pinned actions (incl. taiki-e for prebuilt tools).
- Docs: cargo-generate quickstart, overlay feature section, honest first-build
  time, and a concise "this is a template" landmine note in CLAUDE.md/AGENTS.md.

Verified: cargo generate -> build --locked + tests (6 + 15) + clippy on all four
feature configs, all green.
@hellno
hellno merged commit ce2c80b into main Jun 11, 2026
0 of 3 checks passed
@hellno
hellno deleted the hellno/open-source-readiness-audit branch June 11, 2026 11:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant