makiri 0.1.0-aarch64-linux → 0.2.0-aarch64-linux
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 +4 -4
- data/.github/workflows/release.yml +11 -5
- data/CHANGELOG.md +65 -1
- data/lib/makiri/3.2/makiri.so +0 -0
- data/lib/makiri/3.3/makiri.so +0 -0
- data/lib/makiri/3.4/makiri.so +0 -0
- data/lib/makiri/4.0/makiri.so +0 -0
- data/lib/makiri/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 98834843b01646be14385e918a5bee9f7c7d86caa4807142b4f4b341bdb9ce1f
|
|
4
|
+
data.tar.gz: a249f288b3de1c130ed255ae0c4449267489f3eae7d08a74eff92c0d75c9116b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a87555ee4721bf1d09cf29598961d7098b82147d1ac1cf9a22db13f34de8ddc7646c233a1ace508aad7840dab289b46ffb60379aed21ef953a15e89e06db15cf
|
|
7
|
+
data.tar.gz: a331f795706d65d12ceb08c3bb9d121c60b3e737ee91f6f7a14789dfa3c364409f85d0ef31a0d60a47f7e1686b4107baebefd15328509677d08605b102b0f0bb
|
|
@@ -18,7 +18,7 @@ on:
|
|
|
18
18
|
workflow_dispatch:
|
|
19
19
|
inputs:
|
|
20
20
|
publish_to_rubygems:
|
|
21
|
-
description: "Push the built gems to RubyGems (
|
|
21
|
+
description: "Push the built gems to RubyGems (via Trusted Publishing / OIDC)"
|
|
22
22
|
type: boolean
|
|
23
23
|
default: false
|
|
24
24
|
|
|
@@ -197,12 +197,19 @@ jobs:
|
|
|
197
197
|
gh release upload "${GITHUB_REF_NAME}" dist/*.gem --repo "${GITHUB_REPOSITORY}" --clobber
|
|
198
198
|
|
|
199
199
|
# --- optional: publish to RubyGems (manual, opt-in, never on a tag push) ----
|
|
200
|
+
# Auth is RubyGems Trusted Publishing (OIDC): no stored API key, short-lived
|
|
201
|
+
# token, MFA-compatible. Configure a matching Trusted Publisher on RubyGems.org
|
|
202
|
+
# for this gem: owner=takahashim, repo=makiri, workflow=release.yml, and set its
|
|
203
|
+
# Environment to "rubygems" (matching `environment:` below).
|
|
200
204
|
publish:
|
|
201
205
|
name: Publish to RubyGems
|
|
202
206
|
needs: [source-gem, native-gem]
|
|
203
207
|
if: github.event_name == 'workflow_dispatch' && inputs.publish_to_rubygems
|
|
204
208
|
runs-on: ubuntu-latest
|
|
205
|
-
environment: rubygems # add a protection rule
|
|
209
|
+
environment: rubygems # add a Required-reviewers protection rule for an approval gate
|
|
210
|
+
permissions:
|
|
211
|
+
contents: read
|
|
212
|
+
id-token: write # OIDC identity token for Trusted Publishing
|
|
206
213
|
steps:
|
|
207
214
|
- uses: ruby/setup-ruby@v1
|
|
208
215
|
with:
|
|
@@ -212,11 +219,10 @@ jobs:
|
|
|
212
219
|
pattern: gem-*
|
|
213
220
|
merge-multiple: true
|
|
214
221
|
path: dist
|
|
222
|
+
- name: Configure RubyGems credentials (OIDC trusted publishing)
|
|
223
|
+
uses: rubygems/configure-rubygems-credentials@762a4b77c3300434bb57c7ce80b20e36231927aa # v2.0.0
|
|
215
224
|
- name: gem push
|
|
216
|
-
env:
|
|
217
|
-
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
|
|
218
225
|
run: |
|
|
219
|
-
test -n "$GEM_HOST_API_KEY" || { echo "RUBYGEMS_API_KEY secret is not set"; exit 1; }
|
|
220
226
|
for g in dist/*.gem; do
|
|
221
227
|
echo "Pushing $g"
|
|
222
228
|
gem push "$g"
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,69 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.0] - 2026-06-04
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
* `Element#tag_name` (DOM `tagName`) — the qualified name uppercased for an
|
|
15
|
+
HTML element in an HTML document (`"DIV"`), keeping the original case for
|
|
16
|
+
SVG/MathML; `nil` for non-elements. Complements `#name`, which stays the
|
|
17
|
+
lowercase qualified name.
|
|
18
|
+
* `ProcessingInstruction#target` (DOM `target`) — a PI's target name; `nil` for
|
|
19
|
+
other node kinds. Its data is read via `#content`/`#text`.
|
|
20
|
+
* `Document#create_processing_instruction(target, data)` (DOM
|
|
21
|
+
`createProcessingInstruction`) and `Document#create_document_fragment` (DOM
|
|
22
|
+
`createDocumentFragment`, an empty fragment to build up programmatically —
|
|
23
|
+
unlike `#fragment` / `DocumentFragment.parse`, which parse HTML). Both produce
|
|
24
|
+
a detached node owned by the document; PI creation fails closed when the data
|
|
25
|
+
contains the `?>` terminator (matching the DOM constraint). (DOM
|
|
26
|
+
`createCDATASection` is intentionally not provided: per WHATWG DOM it throws on
|
|
27
|
+
an HTML document, which is the only kind Makiri produces.)
|
|
28
|
+
* `Node#{namespace_uri, prefix, local_name}` — the WHATWG DOM per-node
|
|
29
|
+
namespace accessors on `Element` and `Attribute` (`nil` on other node kinds).
|
|
30
|
+
`namespace_uri` resolves an element's namespace from its node (so an HTML
|
|
31
|
+
element is the XHTML namespace `http://www.w3.org/1999/xhtml`, not `nil` — the
|
|
32
|
+
DOM-faithful value browsers and `namespace-uri()` return; SVG/MathML get their
|
|
33
|
+
own URI), and agrees byte-for-byte with the `namespace-uri()` XPath function.
|
|
34
|
+
For attributes it is `nil` unless prefixed, where it returns the parser-assigned
|
|
35
|
+
foreign-content namespace (`xlink`/`xml`/`xmlns`). `prefix` is the prefix
|
|
36
|
+
segment of the qualified name (`nil` for the usual unprefixed HTML5 case), and
|
|
37
|
+
`local_name` is the name without that prefix. Previously a node's namespace was
|
|
38
|
+
reachable only through XPath (`namespace-uri()`/`local-name()`).
|
|
39
|
+
* `Node#clone_node(deep = false)` — a copy of the node, owned by the same
|
|
40
|
+
document and detached from any parent (the DOM `cloneNode`, whose `deep`
|
|
41
|
+
defaults to `false` — a missing/`nil`/`false` argument is a shallow clone; a
|
|
42
|
+
truthy one copies the subtree). Built on the same `import_node` +
|
|
43
|
+
`<template>`-content fixup the fragment parser uses, so a deep-cloned
|
|
44
|
+
`<template>` keeps its contents. Fails closed: a failed import raises rather
|
|
45
|
+
than returning a partial node.
|
|
46
|
+
* `Document#import_node(node, deep = false)` — a copy of `node` owned by the
|
|
47
|
+
receiver document (the DOM `importNode`, whose `deep` likewise defaults to
|
|
48
|
+
`false`). Unlike `Node#clone_node`, the copy is owned by the target rather
|
|
49
|
+
than the node's own document, so it is the way to bring a node across
|
|
50
|
+
documents (Makiri never moves a node between arenas); the source is left
|
|
51
|
+
untouched. Same import + `<template>`-content fixup as `clone_node`, and fails
|
|
52
|
+
closed on a failed import.
|
|
53
|
+
* `Node#pointer_id` — the underlying `lxb_dom_node_t` pointer as an Integer,
|
|
54
|
+
matching `Nokogiri::XML::Node#pointer_id`. Shares the value `#hash`/`#eql?`
|
|
55
|
+
are built on, so it is a stable, Nokogiri-compatible identity key for
|
|
56
|
+
consumers (e.g. wrapper caches) that key nodes by pointer. Stable for a
|
|
57
|
+
node's lifetime; an address may be reused after a node is freed (same caveat
|
|
58
|
+
as Nokogiri).
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
|
|
62
|
+
* Source gem: drop the Lexbor trees the build never compiles
|
|
63
|
+
(`test`/`utils`/`examples`/`benchmarks`/`wasm`/`packaging`; each is behind an
|
|
64
|
+
`IF(LEXBOR_BUILD_*)` guard and we build with them OFF), roughly halving the
|
|
65
|
+
packaged file count (~1115 → ~566). Precompiled gems are unaffected.
|
|
66
|
+
|
|
67
|
+
### Internal
|
|
68
|
+
|
|
69
|
+
* XPath: build the per-context compiled-AST cache key with `mkr_strndup`
|
|
70
|
+
(the expression is a `verified_text`, so its length is known) instead of
|
|
71
|
+
`mkr_strdup`, avoiding a `strlen` over already-length-bounded bytes.
|
|
72
|
+
|
|
10
73
|
## [0.1.0] - 2026-06-02
|
|
11
74
|
|
|
12
75
|
First public release. An HTML5 parser, a native XPath 1.0 query engine, and CSS
|
|
@@ -98,5 +161,6 @@ libxml2 / libxslt dependency at any layer**.
|
|
|
98
161
|
domxpath, CSS differential vs `Nokogiri::HTML5`). GitHub Actions CI across
|
|
99
162
|
Ruby 3.2–4.0 × Ubuntu/macOS plus a sanitizer job.
|
|
100
163
|
|
|
101
|
-
[Unreleased]: https://github.com/takahashim/makiri/compare/v0.
|
|
164
|
+
[Unreleased]: https://github.com/takahashim/makiri/compare/v0.2.0...HEAD
|
|
165
|
+
[0.2.0]: https://github.com/takahashim/makiri/compare/v0.1.0...v0.2.0
|
|
102
166
|
[0.1.0]: https://github.com/takahashim/makiri/releases/tag/v0.1.0
|
data/lib/makiri/3.2/makiri.so
CHANGED
|
Binary file
|
data/lib/makiri/3.3/makiri.so
CHANGED
|
Binary file
|
data/lib/makiri/3.4/makiri.so
CHANGED
|
Binary file
|
data/lib/makiri/4.0/makiri.so
CHANGED
|
Binary file
|
data/lib/makiri/version.rb
CHANGED