leptris 1.9.8 → 1.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f306f9bc45d304b82c3db1ac2936dcc0d708b21d2caf595e4a9484da5c6b48a
4
- data.tar.gz: ce9b04f6f1e91e6dffd1ff68ce70967b8b2bcff8351132db2f3312e4b534e803
3
+ metadata.gz: b2e2451251a0c5aec3567f67ed11c48f1b48d1a9f3622bc8c3fe62f03192c185
4
+ data.tar.gz: 6be47e0deac36287f736e5b6b7b9755ce4b1e2e4e3986959caa750c5072bcada
5
5
  SHA512:
6
- metadata.gz: 40618f16214157768b018c774816f738a8cbce00e757286822a69f22f71413605c165448a22644b1ff5cc66a387ce63d6e2c496167b8049f2e80ab7cdf124582
7
- data.tar.gz: f3c5d00e54f051510d76db44582806252ccf84091c9c9eb11915fc43675282721f4224fada0331f45616250be411362f981d545fb5de47bfcaadfaf09a4954bb
6
+ metadata.gz: a352efddd7e68f48e17d7126bf1d003d8da0c2eb5cdf09be1c7c7d42b739a761208792e4b45033cd7dfd928123ff7db80c8d629a0f625554d778c7c6b822e4df
7
+ data.tar.gz: 71c3504e8592fab25b026c68d25300c2420c22e932546257dd6d5cc819c47b9cf3ff82cbd80136d55e8250efe1c6b835a82d336b341d3cdbbcde8177ff16933d
data/CHANGELOG.md CHANGED
@@ -5,6 +5,31 @@ All notable changes to Leptris will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.9.9] - 2026-08-26
9
+
10
+ ### Changed
11
+
12
+ - **CI gates the symbol audit**: the build workflow runs
13
+ `rake compile audit:symbols` before the suite — upstream surface
14
+ drift now fails CI on the PR that first sees it instead of
15
+ relying on someone remembering to run it. The task skips
16
+ gracefully where nm is unavailable (Windows).
17
+ - **benchmark/leptris_vs_nokogiri.rb prints live provenance**
18
+ (library, gem, nokogiri, ruby versions) instead of a frozen
19
+ footer claiming "v0.12.0 / 176 specs".
20
+ - README: the `#search` dispatch description now matches the
21
+ heuristic the code implements (path-prefix → xpath; everything
22
+ else translates as CSS, commas included).
23
+
24
+ ### Meta
25
+
26
+ - **ADR 0006** records the ruby-variant packaging policy as
27
+ practiced since 1.9.0: the `ruby` platform gem ships as the
28
+ fallback/source variant without a vendored library, safe under
29
+ the eager-load failure mode (issue #49) — clarifying the 1.9.0
30
+ changelog's "platform variants only" phrasing without rewriting
31
+ history.
32
+
8
33
  ## [1.9.8] - 2026-08-26
9
34
 
10
35
  ### Added
data/README.adoc CHANGED
@@ -177,7 +177,7 @@ against a readonly document is legal; mutating the frozen one is not.
177
177
  `#at_xpath(*exprs)` :: first match (or scalar), like `xpath(*exprs).first`.
178
178
  `#css(*selectors)` :: minimal CSS-to-XPath translation, then `xpath`. Receiver-relative (Nokogiri semantics): scoped to the element or fragment, document-wide from a Document.
179
179
  `#at_css(*selectors)` :: first match of `css`.
180
- `#search(*exprs)` :: dispatches on syntax — `/`-prefixed or `,`-separated `xpath`, otherwise `css`.
180
+ `#search(*exprs)` :: dispatches on syntax — path-prefixed expressions (`/`, `.`, `..`) go to `xpath`; everything else translates as CSS (comma unions included).
181
181
  `#at(*exprs)` :: first match of `search`.
182
182
 
183
183
  [source,ruby]
data/Rakefile CHANGED
@@ -56,8 +56,12 @@ namespace :audit do
56
56
  desc "Fail when ffi.rb attachments and library exports drift"
57
57
  task :symbols do
58
58
  lib = Dir.glob("lib/libleptris.{dylib,so,dll}").first
59
- unless lib && system("which nm > /dev/null 2>&1")
60
- abort "audit:symbols: vendored library or nm not found run rake compile"
59
+ unless system("which nm > /dev/null 2>&1")
60
+ puts "audit:symbols: skipped (nm unavailable on this platform)"
61
+ next
62
+ end
63
+ unless lib
64
+ abort "audit:symbols: vendored library not found — run rake compile"
61
65
  end
62
66
  exported = `nm -gU #{lib}`
63
67
  .lines.map { |l| l.split[2] }.compact
@@ -0,0 +1,25 @@
1
+ # ADR 0006: the ruby-platform variant ships as the fallback, unvendored
2
+
3
+ ## Context
4
+ The 1.9.0-era CHANGELOG said "never publishes ruby-platform releases
5
+ without the vendored library — platform variants only", and an early
6
+ fix removed the `gem:native:any` task. The 1.9.0 lockstep restored
7
+ the `ruby` matrix entry deliberately, and every release since has
8
+ published the variant — practice contradicting the recorded policy.
9
+
10
+ ## Decision
11
+ The `ruby`-platform gem ships as the fallback/source variant WITHOUT
12
+ a vendored library, by design. It is safe because library resolution
13
+ is eager (issue #49): on a machine without a usable libleptris the
14
+ gem fails at `require` with the actionable remedy (install the
15
+ platform-specific variant or set LEPTRIS_LIB_PATH) instead of deep
16
+ inside Document.parse. Bundler prefers platform-specific gems
17
+ wherever they exist (9 of 10 published variants are precompiled);
18
+ the ruby variant serves source installs and exotic platforms that
19
+ accept providing their own library.
20
+
21
+ ## Consequences
22
+ Do not re-propose removing the `platform: any` release leg without
23
+ new evidence that bundler misresolves it in practice. A future
24
+ change to the eager-load behavior (ADR 0005 ordering aside) must
25
+ keep the ruby variant failing loudly at require time.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.8"
4
+ VERSION = "1.9.9"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leptris
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.8
4
+ version: 1.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
@@ -74,6 +74,7 @@ files:
74
74
  - docs/adr/0003-readonly-memoization-pattern.md
75
75
  - docs/adr/0004-lifetime-guard.md
76
76
  - docs/adr/0005-autoload-manifest-ordering.md
77
+ - docs/adr/0006-ruby-variant-policy.md
77
78
  - leptris.gemspec
78
79
  - lib/leptris.rb
79
80
  - lib/leptris/version.rb