Skip to content

Set up KKL fork releases and upstream sync #2

Description

@baby-joel

Goal

Make KnickKnackLabs/pi usable as our installable Pi fork while staying close to earendil-works/pi.

Initial release posture

  • Publish GitHub Release binaries from the fork.
  • Do not publish npm packages initially; upstream owns @earendil-works/*.
  • Spike the exact mise install shape so users can keep the command name pi while sourcing releases from KnickKnackLabs/pi.
  • Keep release/tagging human-gated until the process is proven.

Upstream sync posture

  • Keep remotes/branches shaped like:
    • upstream/main = earendil-works/pi
    • origin/upstream = mirrored upstream main/tag baseline
    • origin/main = upstream plus KKL patches
  • Add scheduled/manual CI that detects upstream tags/main movement and opens sync PRs into KKL main.
  • Sync PRs should run the normal Pi validation before merge.
  • After sync PR review/merge, manually trigger a KKL release tag like vX.Y.Z-kkl.N.

Open questions

  • Should KKL releases mirror upstream version numbers with -kkl.N, or use a separate monotonic fork version?
  • Should the fork release workflow reuse upstream build-binaries.yml with npm publish disabled, or have a dedicated KKL workflow?
  • What is the cleanest mise config syntax for installing pi from github:KnickKnackLabs/pi releases?

Decision: fork version string

Use explicit fork versions like v0.79.0-kkl.1 and make the built binary report the same version. This matches the existing KKL fork convention and keeps provenance visible in pi --version, release artifacts, and bug reports.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions