diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..96e96ce --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,61 @@ +# Changelog + +All notable changes to this project are documented in this file. + +The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.6.0] - 2026-09-15 + +### Added + +- Installable Nix flake. `nix run github:ajmarkow/snippet_cli` runs the CLI without + installing the gem, and `overlays.default` lets Nix users refer to `snippet_cli` + by bare name in `environment.systemPackages` or `home.packages`. +- This changelog. The gemspec advertised a `changelog_uri` that pointed at a file + which did not exist. + +### Changed + +- **Require Ruby 3.2 or newer.** The runtime dependencies already needed it, so the + previous `>= 3.1.0` constraint let the gem install on a Ruby it could not run on. + Narrowing supported Ruby is why this is a minor release rather than a patch. + RubyGems resolves Ruby 3.1 users to 0.5.3, so they keep a working install. + +## [0.5.3] - 2026-04-13 + +### Added + +- Nix packaging: a `bundlerApp` derivation with a `gemConfig` patch that links the + `gum` binary into the path the `gum` gem expects. + +### Fixed + +- Replaced an implicit `it` block parameter with an explicit one, which Ruby 3.4 + otherwise reinterprets. + +## [0.5.2] - 2026-04-13 + +### Fixed + +- Embedded the Espanso schema JSON under `lib/` so `check` resolves it from an + installed gem rather than only from a source checkout. + +## [0.5.1] - 2026-04-13 + +### Fixed + +- Gemspec packaging correction for files missing from the published gem. + +## [0.5.0] - 2026-04-13 + +### Changed + +- Restricted `spec.files` to an explicit allowlist, so the gem ships only `lib/`, + `exe/`, and the top-level README, CHANGELOG, and LICENSE. + +[0.6.0]: https://github.com/ajmarkow/snippet_cli/compare/v0.5.3...v0.6.0 +[0.5.3]: https://github.com/ajmarkow/snippet_cli/compare/v0.5.2...v0.5.3 +[0.5.2]: https://github.com/ajmarkow/snippet_cli/compare/v0.5.1...v0.5.2 +[0.5.1]: https://github.com/ajmarkow/snippet_cli/compare/v0.5.0...v0.5.1 +[0.5.0]: https://github.com/ajmarkow/snippet_cli/releases/tag/v0.5.0 diff --git a/README.md b/README.md index ad5656f..fa84b88 100644 --- a/README.md +++ b/README.md @@ -89,16 +89,22 @@ Add the flake as an input: } ``` -Then add the package where you need it β€” Home Manager: +Simplest: apply the overlay, then refer to the package by name everywhere `pkgs` +is in scope β€” no need to thread `system` through: ```nix -home.packages = [ inputs.snippet_cli.packages.${pkgs.system}.default ]; +nixpkgs.overlays = [ inputs.snippet_cli.overlays.default ]; ``` -…or NixOS: +```nix +home.packages = [ pkgs.snippet_cli ]; # Home Manager +environment.systemPackages = [ pkgs.snippet_cli ]; # NixOS +``` + +Without the overlay, reach the package directly instead: ```nix -environment.systemPackages = [ inputs.snippet_cli.packages.${pkgs.system}.default ]; +home.packages = [ inputs.snippet_cli.packages.${pkgs.system}.default ]; ``` diff --git a/docs/updating-version.md b/docs/updating-version.md index bdf084b..6c06327 100644 --- a/docs/updating-version.md +++ b/docs/updating-version.md @@ -30,11 +30,18 @@ bump them by hand, the build breaks. ## Choose the number -Follow [semantic versioning](https://semver.org). One case is easy to get wrong: - -**Raising `required_ruby_version` is a minor bump, not a patch.** It stops users on -the dropped Ruby from installing at all. Treat any narrowing of supported Ruby, -Espanso schema, or platform the same way. +Follow [semantic versioning](https://semver.org), with one caveat: the spec exempts +`0.x` releases, where "anything MAY change at any time". While this gem is pre-1.0, +the rule below is convention rather than a requirement β€” but follow it anyway. + +**Raising `required_ruby_version` is a minor bump, not a patch.** Treat any narrowing +of supported Ruby, Espanso schema, or platform the same way. + +Nobody breaks when you do this. RubyGems enforces `required_ruby_version` while +resolving, so users on the dropped Ruby stay on the last version that supported them +and keep a working install. What they lose is future updates, silently. The minor +bump is what makes that visible, and it is what lets someone pinned at `~> 0.5.3` opt +in deliberately instead of being held back without knowing why. ## Steps diff --git a/lib/snippet_cli/version.rb b/lib/snippet_cli/version.rb index 8935fb2..2ebe888 100644 --- a/lib/snippet_cli/version.rb +++ b/lib/snippet_cli/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module SnippetCli - VERSION = '0.5.3' + VERSION = '0.6.0' end