Skip to content

Releases: ariaci/kopia-provisioner

Deterministic and cross‑platform versioning system

06 Apr 14:27

Choose a tag to compare

🚀 kopia-provisioner 0.4.0 — Deterministic and cross‑platform versioning system

This release introduces a fully deterministic and cross‑platform versioning system, together with a brand‑new CI pipeline designed for clean, reproducible builds across all supported platforms.

✨ Highlights

  • Integrated Windows resource generation directly into the build process using the embedded winres library.
  • Added the new genversioninfo tool to generate .syso files during go generate without relying on external tools.
  • Ensured go generate always runs in a host‑native environment without leaking GOOS or GOARCH from the build matrix.
  • Unified version metadata through the updated versioninfo package.

✨ New CI pipeline

  • Introduces a clean, deterministic build workflow from scratch.
  • Matrix builds produce consistent artifacts for all platforms.
  • Source archives are generated via git archive for reproducible results.
  • A single SHA256SUMS file is generated in the release job.
  • All artifacts are automatically published to GitHub Releases.
  • Full ACT compatibility for local testing.

Deterministic Identity Processing

14 Mar 21:54

Choose a tag to compare

🚀 kopia-provisioner 0.3.0 — Deterministic Identity Processing

This release introduces a fully deterministic identity processing pipeline, ensuring stable and reproducible behavior across all runs.

✨ Highlights

  • Deterministic ordering of all identities via a domain‑level Compare method
  • Unified IdentityEntry model for consistent handling across YAML and Kopia
  • Modern sorting using slices.SortFunc
  • Accurate 1‑based line numbers from YAML (UnmarshalYAML) and Kopia
  • Clean map‑to‑slice conversion through MakeEntries()
  • Lays the groundwork for upcoming structured error handling

Password Provider DSL

13 Mar 21:21

Choose a tag to compare

kopia‑provisioner 0.2.0 — Password Provider DSL

This release introduces a flexible, provider‑based password DSL that allows passwords and password hashes to be sourced and transformed through a simple pipeline mechanism.

✨ New

  • Added a provider‑based password DSL with support for:
    • file, env, and inline backends
    • chained provider pipelines using >
    • password types: plain, kopia-hash, and nil
  • Added formal EBNF grammar to the documentation
  • Added detailed README section with examples and semantics

🔧 Improvements

  • Password handling is now fully deterministic and extensible
  • Clear separation between backend (source) and type (interpretation)
  • nil type allows explicit “no password” semantics while still supporting provider chains

🧩 Examples

env>file>plain:DB_PWD_FILE
file>kopia-hash:secrets/.bob-pwdhash
inline>plain:supersecretpassword
nil:

📚 Documentation

The README now includes a complete specification of the DSL, including EBNF grammar and usage examples.