Bump version to 0.11.0 (#125)

* Accept unquoted release dates in the framework manifest

The manifest is generated upstream and quotes its dates today. If that
ever changes, safe_load raises on the Date class and trmnlp falls back to
the bundled copy without saying so, which reads as the published list
never updating.

* Bump version to 0.11.0

Releases reading the framework version list from the published manifest,
and the refreshed bundled copy at 3.2.0. The release workflow tags and
publishes when lib/trmnlp/version.rb changes on main, so this bump ships
the gem and Docker image.
This commit is contained in:
Ikraam Ghoor
2026-08-05 00:48:00 +01:00
committed by GitHub
parent f5ce112e6a
commit f15838d303
5 changed files with 14 additions and 4 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
# Changelog
## Unreleased
## 0.11.0
- `framework_version:` now resolves against the release manifest published by the design system, not only the version list shipped inside the gem, so a framework version released after your trmnlp install can be pinned without upgrading. The manifest is read once per run with a 2 second timeout. If the request fails, or the response is not a version list, the copy bundled in the gem is used and rendering continues. That bundled copy is refreshed here too: `latest` moves from 3.1.1 to 3.2.0.
- `rake framework:sync` reads the published manifest by default. Pass a local design-system checkout (`rake framework:sync[/path/to/repo]`) for the previous behaviour.
+1 -1
View File
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
trmnl_preview (0.10.0)
trmnl_preview (0.11.0)
activesupport (~> 8.0)
cgi (~> 0.5)
faraday (~> 2.1)
+4 -1
View File
@@ -1,5 +1,6 @@
# frozen_string_literal: true
require 'date'
require 'faraday'
require 'yaml'
@@ -29,7 +30,9 @@ module TRMNLP
end
return unless response.success?
manifest = YAML.safe_load(response.body)
# Release dates are quoted today, but the manifest is generated
# upstream and an unquoted date would otherwise be rejected here.
manifest = YAML.safe_load(response.body, permitted_classes: [Date])
manifest if manifest.is_a?(Hash) && manifest.key?('latest') && manifest.key?('versions')
rescue StandardError
nil
+1 -1
View File
@@ -1,5 +1,5 @@
# frozen_string_literal: true
module TRMNLP
VERSION = '0.10.0'
VERSION = '0.11.0'
end
@@ -24,6 +24,13 @@ RSpec.describe TRMNLP::FrameworkVersion do
expect(described_class.config).to eq(published)
end
it 'answers a manifest with unquoted release dates' do
body = "latest: 99.1.0\nversions:\n- number: 99.1.0\n released_at: 2026-08-03\n"
stub_request(:get, described_class::MANIFEST_URL).to_return(body:)
expect(described_class.version_numbers).to eq(['99.1.0'])
end
it 'answers the bundled copy when the manifest is unreachable' do
stub_request(:get, described_class::MANIFEST_URL).to_timeout