Skip to content

feat: add go, rust, and odin language templates#3

Open
skapoor8 wants to merge 8 commits into
mainfrom
feat/go-rust-odin-templates
Open

feat: add go, rust, and odin language templates#3
skapoor8 wants to merge 8 commits into
mainfrom
feat/go-rust-odin-templates

Conversation

@skapoor8

Copy link
Copy Markdown
Contributor

Summary

Adds three new language templates — go, rust, odin — to the scaffold system, each publishing GitHub-release artifacts (and/or git-based install) with no central-registry publish, mirroring the existing zig template. One commit per template.

Templates

  • gocore:go; static CGO_ENABLED=0 GOOS/GOARCH cross-compile of 5 targets → gh release upload; version from version.txt (git tag authoritative); lib at src/mise_lib_template/ + CLI with -X main.version.
  • rust — native git installs (cargo install --git … --tag, { git, tag } deps) as the headline; prebuilt Linux binaries via cross for v1 (macOS/Windows use git install); version.txt synced into Cargo.toml on release.
  • odin — GitHub-release binaries (the idiomatic Odin channel); github:odin-lang/Odin toolchain; guarded clang/LLVM install in the install task; output-guarded cross-compile (Linux reliable, others best-effort); format is a no-op stub (no odin fmt), lint via odin check -vet -strict-style.

All three keep semantic-release as the release owner (publish only uploads assets; publish:rc mints the timestamped vX.Y.Z-rc.<yyyymmddhhmm>.<sha> pre-release) and add no template-specific workflows (GoReleaser/cargo-dist rejected).

Tests

Added scaffold/docker/export bats coverage for each template. Full suite mise run templates:test189/189 locally (all toolchains installed via mise; Odin build/test/lint verified on macOS clang).

Notes / follow-ups

  • build:all-platforms for rust (cross+Docker) and odin (Linux→macOS/Windows cross-link) are CI/Linux-authoritative — not run on the local macOS host.
  • mise 2026.3.3 rejects inline-table tool values with arrays, so rust/odin toolchain components/targets are added in the install task rather than declaratively.
  • Odin's runnable bats asserts are gated behind command -v odin/clang so the suite stays green where the toolchain isn't present.

Closes PL-related template work (go/rust/odin).

skapoor8 added 3 commits July 10, 2026 07:50
Odin template with full contract task set (build, test, lint, format no-op
stubs, publish via gh-release, version, docker). Uses github:odin-lang/Odin
backend (registry short-name is broken); tags are calendar-based dev-YYYY-MM.
Guarded clang/LLVM install for CI Linux runners. Single-runner cross-compile
with output-existence guard for darwin/windows best-effort targets. No manifest
— version.txt is the sole version source. Bats tests clang-gated where compile
is required.
Comment thread templates/rust/mise-tasks/build/all-platforms Outdated
Comment thread templates/rust/install.sh.template
Comment thread templates/rust/mise-tasks/build/_default Outdated
Comment thread templates/rust/mise-tasks/build/all-platforms Outdated
Comment thread templates/rust/mise-tasks/install
Comment thread templates/rust/Cargo.lock
Comment thread templates/odin/CLAUDE.md.append Outdated
Comment thread templates/go/go.mod
Comment thread templates/odin/mise-tasks/install
Comment thread mise-tasks/scaffold
@skapoor8 skapoor8 marked this pull request as ready for review July 10, 2026 12:45
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