Ship Deck as a cargo-generate template + open-source release prep - #7
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Make Deck forkable via
cargo generate gh:hellno/deckusing native Liquid{{ }}tokens behind anincludeallowlist (no hooks/scripts), and prep the repo to go public. Because the source now carries tokens, the raw repo no longer builds directly — CI andjust check-templaterender a throwaway project and build that instead.Bundled in: accurate
NOTICElicensing (gpui is Apache-2.0 from git; GPL-3.0-or-later only in transitivezlog/ztracing/ztracing_macro) + shipNOTICE/LICENSEin the artifact; community-health files (SECURITY/CONTRIBUTING/CODE_OF_CONDUCT, issue/PR templates, dependabot, README badges); and CI hardening (least-privilegepermissions, blocking cargo-deny, SHA-pinned actions).Definition of Done
This repo is now a template, so
just ciruns inside a generated fork, not the raw repo. Verified via the generate-then-check path (the newjust check-template/ CI flow):cargo generate→cargo build --locked+cargo test(6) +cargo test --features overlay(15) + clippy on default /tray/overlay/tray,overlay, all green.Cargo.lockroot name).README.md,CLAUDE.md/AGENTS.md,NOTICE).Platforms tested
Notes for reviewers
The raw repo intentionally doesn't
cargo run(it has{{ }}tokens — that's how the rename works); verify withjust check-template. Out of scope / still TODO: a README GIF, and the GitHub-side steps (flip public, prune merged branches, tagv0.1.0).