mahjong-render 0.1.0 → 0.2.1
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/CHANGELOG.md +11 -0
- data/CODE_OF_CONDUCT.md +5 -0
- data/README.ja.md +18 -7
- data/README.md +18 -7
- data/SECURITY.md +1 -1
- data/SUPPORT.md +7 -0
- data/THIRD_PARTY_NOTICES.md +1 -0
- data/docs/adr/0002-license.md +1 -1
- data/docs/api.md +22 -0
- data/docs/release.md +11 -24
- data/lib/mahjong_render/asciidoctor.rb +1 -1
- data/lib/mahjong_render/parser.rb +1 -1
- data/lib/mahjong_render/renderer.rb +1 -1
- data/lib/mahjong_render/version.rb +2 -2
- data/lib/mahjong_render.rb +1 -1
- metadata +25 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9b8def8b9aad27b78db9af644359d270c88f095c2d48e6e459fd3023c4ca39ee
|
|
4
|
+
data.tar.gz: 8de5e8246e9cc2c8236c231d6a2cfa79e5ddd03bd90352d221f88454f8477f21
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9340c3a83a8d69025b9be5dff44d808e6cda0832c67ebdca6023ad43c573658e605c926d588dbb93e52db988880b5ab1eb6da457f54b5c4f355960c892003840
|
|
7
|
+
data.tar.gz: 33b9aa0251fbdd0d8eeec5b1d16e2a2fd4c25458aad3785f7c20494409ae9a2281ff845ceb7bcb4d376bd29e6e20299ee615c168715ff72c9a71eec91bf60268
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes will be recorded here. Versions follow Semantic Versioning.
|
|
4
4
|
|
|
5
|
+
## 0.2.1 — 2026-09-25
|
|
6
|
+
|
|
7
|
+
- Use the GitHub account name `kjun1` in copyright notices and RubyGems author metadata.
|
|
8
|
+
|
|
9
|
+
## 0.2.0 — 2026-09-24
|
|
10
|
+
|
|
11
|
+
- Require MRI Ruby 3.3 or newer and test 3.3, 3.4, and 4.0; Ruby 3.2 is no longer supported.
|
|
12
|
+
- Document the supported Asciidoctor 2.x HTML5 adapter, public API, and maintenance policy; declare its `logger` dependency for Ruby 4.0 Bundler users.
|
|
13
|
+
- Publish from version tags with reproducible Gem builds, artifact attestation, and matching GitHub Releases.
|
|
14
|
+
- Pin released Gem metadata to its version tag and add support and community guidance.
|
|
15
|
+
|
|
5
16
|
## 0.1.0 — 2026-09-24
|
|
6
17
|
|
|
7
18
|
- Render compact manzu, pinzu, souzu, honor, and red-five notation to self-contained SVG.
|
data/CODE_OF_CONDUCT.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Code of conduct
|
|
2
|
+
|
|
3
|
+
Be respectful and constructive in this repository's issues, pull requests, reviews, and other GitHub discussions. Discuss the work and its effects; avoid harassment, personal attacks, discriminatory language, and disclosure of another person's private information.
|
|
4
|
+
|
|
5
|
+
The maintainer may edit, hide, lock, or remove inappropriate contributions and restrict participation when needed. Use GitHub's **Report content** option to report abusive GitHub content. Security vulnerabilities have a separate [private reporting process](SECURITY.md). This policy covers interactions in this repository on GitHub.
|
data/README.ja.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# mahjong-render
|
|
2
2
|
|
|
3
|
+
[](https://rubygems.org/gems/mahjong-render)
|
|
4
|
+
[](https://github.com/kjun1/mahjong-render/actions/workflows/ci.yml)
|
|
5
|
+
|
|
3
6
|
[English README](README.md)
|
|
4
7
|
|
|
5
8
|
`mahjong-render` は、麻雀牌の compact notation から自己完結した SVG を作る Ruby ライブラリです。Ruby 版 Asciidoctor 向けの block macro も使えます。描画時に Node.js、ブラウザ、フォント、ネットワーク接続は不要です。
|
|
@@ -14,7 +17,7 @@
|
|
|
14
17
|
|
|
15
18
|
## インストールと描画
|
|
16
19
|
|
|
17
|
-
Ruby 3.
|
|
20
|
+
MRI Ruby 3.3 以上が必要です。検証対象のバージョンは[互換性とサポート](#互換性とサポート)を参照してください。RubyGems からインストールします。
|
|
18
21
|
|
|
19
22
|
```sh
|
|
20
23
|
gem install mahjong-render
|
|
@@ -24,7 +27,7 @@ gem install mahjong-render
|
|
|
24
27
|
|
|
25
28
|
```sh
|
|
26
29
|
gem build mahjong-render.gemspec
|
|
27
|
-
gem install --local ./mahjong-render-0.1.
|
|
30
|
+
gem install --local ./mahjong-render-0.2.1.gem
|
|
28
31
|
```
|
|
29
32
|
|
|
30
33
|
インストール後、次のコマンドで `hand.svg` を作成できます。
|
|
@@ -54,7 +57,7 @@ printf '= Mahjong hand\n\nmahjong::405m456p789s12344z[]\n' > hand.adoc
|
|
|
54
57
|
asciidoctor -r mahjong_render/asciidoctor hand.adoc
|
|
55
58
|
```
|
|
56
59
|
|
|
57
|
-
間隔の違う牌列を含む [AsciiDoc の例](examples/basic.adoc)
|
|
60
|
+
間隔の違う牌列を含む [AsciiDoc の例](examples/basic.adoc) もあります。拡張は HTML5 の block macro に対応します。macro 属性、inline macro、PDF 出力には対応しません。
|
|
58
61
|
|
|
59
62
|
牌のまとまりを少し離して見せるには、完成したグループの間に `|` を入れます。たとえば `mahjong::123m|456p|789s[]` と書きます。`|` は牌幅の4分の1の空白を追加し、`|(0.25)` と同じ幅です。幅を変える場合は `mahjong::123m|(0.5)456p[]` のように書けます。
|
|
60
63
|
|
|
@@ -73,18 +76,26 @@ asciidoctor -r mahjong_render/asciidoctor hand.adoc
|
|
|
73
76
|
|
|
74
77
|
不正な記法は `MahjongRender::NotationError` になります。`token`、先頭から0起算の文字位置 `position`、理由 `reason` を参照できます。たとえば `8z` は無効です。
|
|
75
78
|
|
|
79
|
+
メソッドと例外の詳細は [公開 API リファレンス](docs/api.md) を参照してください。
|
|
80
|
+
|
|
81
|
+
## 互換性とサポート
|
|
82
|
+
|
|
83
|
+
v0.2.x の保証対象は MRI Ruby 3.3、3.4、4.0 です。任意の Asciidoctor 拡張は Ruby Asciidoctor 2.x の HTML5 backend で検証します。他の Ruby 実装、Asciidoctor のバージョン、backend は保証対象外です。Ruby 3.2 は上流のサポート終了に伴い、保証対象から外しました。
|
|
84
|
+
|
|
85
|
+
0.x 系では破壊的変更を minor release で告知します。修正とセキュリティ対応は最新の minor 系列のみを対象とし、v0.2.x は v0.1.x に代わる保守系列です。[サポート案内](SUPPORT.md)、[セキュリティポリシー](SECURITY.md)、[行動規範](CODE_OF_CONDUCT.md)も参照してください。
|
|
86
|
+
|
|
76
87
|
## 開発とライセンス
|
|
77
88
|
|
|
78
|
-
devcontainer
|
|
89
|
+
devcontainer、または保証対象の MRI Ruby・Bundler・`rsvg-convert` を用意して検証します。
|
|
79
90
|
|
|
80
91
|
```sh
|
|
81
92
|
bundle install
|
|
82
93
|
bundle exec rake lint test assets:check licenses:check example:build
|
|
83
94
|
gem build mahjong-render.gemspec
|
|
84
|
-
ruby script/check_package.rb mahjong-render-0.1.
|
|
95
|
+
ruby script/check_package.rb mahjong-render-0.2.1.gem
|
|
85
96
|
```
|
|
86
97
|
|
|
87
98
|
設計の経緯は [既存ライブラリの調査](docs/research/existing-renderers.md) と [ADR](docs/adr/) に記録しています。
|
|
88
|
-
[公開手順](docs/release.md)
|
|
99
|
+
[公開手順](docs/release.md) には、タグから起動する Trusted Publishing の手順を記載しています。
|
|
89
100
|
|
|
90
|
-
Copyright 2026
|
|
101
|
+
Copyright 2026 kjun1。Ruby コードとテキスト文書には [Apache-2.0](LICENSE) を適用します。同梱の牌画像と [README のプレビュー](examples/hand.png) は CC0-1.0 です。牌画像は [FluffyStuff/riichi-mahjong-tiles](https://github.com/FluffyStuff/riichi-mahjong-tiles) から採用しました。詳細は [第三者素材の告知](THIRD_PARTY_NOTICES.md)、[素材マニフェスト](assets/manifest.json)、[CC0 のライセンス本文](LICENSES/CC0-1.0.txt) を参照してください。
|
data/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# mahjong-render
|
|
2
2
|
|
|
3
|
+
[](https://rubygems.org/gems/mahjong-render)
|
|
4
|
+
[](https://github.com/kjun1/mahjong-render/actions/workflows/ci.yml)
|
|
5
|
+
|
|
3
6
|
[日本語版 README](README.ja.md)
|
|
4
7
|
|
|
5
8
|
`mahjong-render` is a Ruby library that turns compact riichi mahjong notation into a self-contained SVG. It also provides an optional block macro for Ruby Asciidoctor. Rendering works offline and does not require Node.js, a browser, a font, or a network service.
|
|
@@ -14,7 +17,7 @@ The `0m` in `405m` is a red five. The preview is generated from the library's SV
|
|
|
14
17
|
|
|
15
18
|
## Install and render
|
|
16
19
|
|
|
17
|
-
Requirements: Ruby 3.
|
|
20
|
+
Requirements: MRI Ruby 3.3 or newer. See [Compatibility and support](#compatibility-and-support) for the tested versions.
|
|
18
21
|
|
|
19
22
|
Install the published gem from RubyGems:
|
|
20
23
|
|
|
@@ -26,7 +29,7 @@ To install a build from a local checkout:
|
|
|
26
29
|
|
|
27
30
|
```sh
|
|
28
31
|
gem build mahjong-render.gemspec
|
|
29
|
-
gem install --local ./mahjong-render-0.1.
|
|
32
|
+
gem install --local ./mahjong-render-0.2.1.gem
|
|
30
33
|
```
|
|
31
34
|
|
|
32
35
|
Render a hand from the command line or from Ruby:
|
|
@@ -58,7 +61,7 @@ See [the complete AsciiDoc example](examples/basic.adoc) for hands with and with
|
|
|
58
61
|
|
|
59
62
|
To show separate groups, insert `|` between complete tile groups: `mahjong::123m|456p|789s[]`. Each `|` adds a quarter tile width of empty space, the same as `|(0.25)`. Use `|(0.5)` for half a tile width or `|(1)` for a full tile width, for example `mahjong::123m|(0.5)456p[]`.
|
|
60
63
|
|
|
61
|
-
The adapter supports the HTML5 backend. Macro attributes, inline macros, and PDF output are
|
|
64
|
+
The adapter supports the HTML5 backend. Macro attributes, inline macros, and PDF output are unsupported. The Ruby rendering API does not load Asciidoctor.
|
|
62
65
|
|
|
63
66
|
## Supported notation
|
|
64
67
|
|
|
@@ -75,6 +78,14 @@ Digits can share a suit suffix: `123m` means `1m 2m 3m`, and `405m` means `4m 0m
|
|
|
75
78
|
|
|
76
79
|
Invalid notation raises `MahjongRender::NotationError`, with `token`, zero-based character `position`, and `reason` readers. Examples include `8z`, `123x`, `1m!`, a missing suit, and empty input. For example, `MahjongRender.render("8z")` raises an error with `token == "8z"` and `position == 0`.
|
|
77
80
|
|
|
81
|
+
See the [public API reference](docs/api.md) for method and error details.
|
|
82
|
+
|
|
83
|
+
## Compatibility and support
|
|
84
|
+
|
|
85
|
+
The supported runtimes for v0.2.x are MRI Ruby 3.3, 3.4, and 4.0. The optional Asciidoctor adapter is tested with Ruby Asciidoctor 2.x and its HTML5 backend. Other Ruby implementations, Asciidoctor versions, and backends are outside the supported set. Ruby 3.2 is no longer supported because it has reached upstream end of life.
|
|
86
|
+
|
|
87
|
+
During the 0.x series, breaking changes are announced in a minor release. Fixes and security updates are provided only for the latest minor release line; v0.2.x supersedes v0.1.x. See [support information](SUPPORT.md), the [security policy](SECURITY.md), and the [code of conduct](CODE_OF_CONDUCT.md).
|
|
88
|
+
|
|
78
89
|
## Architecture
|
|
79
90
|
|
|
80
91
|
```text
|
|
@@ -89,17 +100,17 @@ The parser and SVG composer are intentionally small. Existing renderers were eva
|
|
|
89
100
|
|
|
90
101
|
## Development
|
|
91
102
|
|
|
92
|
-
Open this repository in a devcontainer, or use
|
|
103
|
+
Open this repository in a devcontainer, or use a supported MRI Ruby with Bundler and `rsvg-convert` installed:
|
|
93
104
|
|
|
94
105
|
```sh
|
|
95
106
|
bundle install
|
|
96
107
|
bundle exec rake lint test assets:check licenses:check example:build
|
|
97
108
|
gem build mahjong-render.gemspec
|
|
98
|
-
ruby script/check_package.rb mahjong-render-0.1.
|
|
109
|
+
ruby script/check_package.rb mahjong-render-0.2.1.gem
|
|
99
110
|
```
|
|
100
111
|
|
|
101
112
|
The example HTML is written to `tmp/basic.html`. The test suite rasterizes a sample SVG to confirm the embedded vector artwork renders.
|
|
102
|
-
The [release guide](docs/release.md) describes the
|
|
113
|
+
The [release guide](docs/release.md) describes the tag-triggered Trusted Publishing workflow.
|
|
103
114
|
|
|
104
115
|
To regenerate the README preview with `rsvg-convert`:
|
|
105
116
|
|
|
@@ -109,4 +120,4 @@ ruby -Ilib -rmahjong_render -e 'print MahjongRender.render("405m456p789s12344z")
|
|
|
109
120
|
|
|
110
121
|
## Third-party components and license
|
|
111
122
|
|
|
112
|
-
Copyright 2026
|
|
123
|
+
Copyright 2026 kjun1. The project Ruby code and text documentation are licensed under [Apache-2.0](LICENSE). The bundled tile artwork and the [README preview](examples/hand.png) are CC0-1.0. The artwork comes from [FluffyStuff/riichi-mahjong-tiles](https://github.com/FluffyStuff/riichi-mahjong-tiles); see [third-party notices](THIRD_PARTY_NOTICES.md), [the asset manifest](assets/manifest.json), and [the CC0 legal text](LICENSES/CC0-1.0.txt). The gem metadata lists both licenses; each applies to the components described here.
|
data/SECURITY.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Security policy
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Only the latest 0.x minor release line receives security fixes. The supported line is currently v0.2.x; v0.1.x is no longer maintained. Report vulnerabilities privately through GitHub's **Report a vulnerability** feature. Do not post exploit details in a public issue. No response-time guarantee is offered.
|
|
4
4
|
|
|
5
5
|
The renderer accepts only compact tile notation. SVG asset files are pinned and checked for active content and external references. Please include a minimal input and affected version when reporting a security issue.
|
data/SUPPORT.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Support
|
|
2
|
+
|
|
3
|
+
The supported runtimes for v0.2.x are MRI Ruby 3.3, 3.4, and 4.0. The optional block macro supports Ruby Asciidoctor 2.x with the HTML5 backend. Fixes and security updates are provided only for the latest 0.x minor release line. Breaking changes during 0.x are announced in a minor release.
|
|
4
|
+
|
|
5
|
+
Open a [GitHub issue](https://github.com/kjun1/mahjong-render/issues) for a reproducible bug, documentation defect, or feature proposal. Include the Gem and Ruby versions, a minimal input, and the expected and actual results. For security issues, follow [the private reporting process](SECURITY.md) instead.
|
|
6
|
+
|
|
7
|
+
Mahjong rules consultation, custom document authoring, unsupported Asciidoctor backends, and application-specific integration troubleshooting are outside the support scope. There is no response-time guarantee.
|
data/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
The original file names and SHA-256 hashes are recorded in [the asset manifest](assets/manifest.json). The files are copied without modification.
|
|
12
12
|
|
|
13
13
|
The README preview at `examples/hand.png` is generated from these CC0 tile images and is also distributed under CC0-1.0. The project Ruby code and text documentation are Apache-2.0; neither license changes the terms of the other component.
|
|
14
|
+
The repository social preview at `.github/social-preview.png` uses the same CC0 tile images. Its layout and text are Apache-2.0.
|
|
14
15
|
|
|
15
16
|
## Optional integration and development dependencies
|
|
16
17
|
|
data/docs/adr/0002-license.md
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Status: accepted for v0.1.0.
|
|
4
4
|
|
|
5
|
-
Use Apache-2.0 (`SPDX-License-Identifier: Apache-2.0`) for project code and documentation, attributed to
|
|
5
|
+
Use Apache-2.0 (`SPDX-License-Identifier: Apache-2.0`) for project code and documentation, attributed to kjun1. The bundled tile SVGs and `examples/hand.png`, which is generated from those SVGs, remain independently CC0-1.0. Gem metadata lists both identifiers; `THIRD_PARTY_NOTICES.md` explains which files each covers because a license list alone cannot express component boundaries. Preserve the upstream declaration, full CC0 legal text, attribution, source revision, and file hashes. Keep optional and development dependency licenses separate from bundled content. CI fails when the Apache license copy changes or a locked dependency has no approved license metadata.
|
data/docs/api.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Public API
|
|
2
|
+
|
|
3
|
+
## Ruby rendering
|
|
4
|
+
|
|
5
|
+
```ruby
|
|
6
|
+
require "mahjong_render"
|
|
7
|
+
svg = MahjongRender.render("405m456p789s12344z")
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
`MahjongRender.render(notation)` accepts a String of [supported notation](../README.md#supported-notation) and returns a self-contained SVG String. The SVG embeds its tile artwork and can be saved directly or inserted into HTML. A non-String argument raises `TypeError`.
|
|
11
|
+
|
|
12
|
+
Invalid notation raises `MahjongRender::NotationError`. Its `token` reader identifies the invalid input, `position` is a zero-based character offset, and `reason` describes the problem. Tile count and legal mahjong hand shape are not validated.
|
|
13
|
+
|
|
14
|
+
## Asciidoctor block macro
|
|
15
|
+
|
|
16
|
+
Install Ruby Asciidoctor 2.x separately and load `mahjong_render/asciidoctor` to register the `mahjong` block macro:
|
|
17
|
+
|
|
18
|
+
```asciidoc
|
|
19
|
+
mahjong::405m456p789s12344z[]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The adapter supports the HTML5 backend. It raises `MahjongRender::UnsupportedBackendError` for other backends and `MahjongRender::UnsupportedAttributeError` for macro attributes. Invalid notation raises `MahjongRender::NotationError`. Inline macros and PDF output are unsupported. Loading `mahjong_render` alone does not load Asciidoctor.
|
data/docs/release.md
CHANGED
|
@@ -1,32 +1,19 @@
|
|
|
1
1
|
# Release process
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
2. In the devcontainer, run `bundle exec rake lint test assets:check licenses:check example:build`, `gem build mahjong-render.gemspec`, and `ruby script/check_package.rb mahjong-render-0.1.0.gem`. Confirm the build has no warnings.
|
|
5
|
-
3. Install the built gem locally and reproduce the Ruby and AsciiDoc commands in both READMEs without network access. Inspect the gem contents and confirm the Apache-2.0 license, CC0 legal text, artwork, notices, preview image, examples, and linked documentation are present.
|
|
6
|
-
4. For the first release, create the public `kjun1/mahjong-render` GitHub repository. Confirm the homepage and gem metadata URLs resolve, verify CI on the default branch, and enable GitHub private vulnerability reporting.
|
|
7
|
-
5. Review and date the 0.1.0 changelog entry. Configure Trusted Publishing as described below, then choose one of the release triggers.
|
|
8
|
-
6. After publication, confirm the RubyGems version and ownership, install the gem from RubyGems, and check that the pending publisher became a trusted publisher.
|
|
3
|
+
Releases are triggered only by a `vX.Y.Z` tag on a commit in `main`. The tag version must match `lib/mahjong_render/version.rb`. Do not publish a Gem manually: the tag workflow builds the Gem, checks reproducibility, publishes through RubyGems Trusted Publishing, attests the exact Gem, and creates the matching GitHub Release with that Gem attached.
|
|
9
4
|
|
|
10
|
-
##
|
|
5
|
+
## Prepare
|
|
11
6
|
|
|
12
|
-
1.
|
|
13
|
-
2.
|
|
14
|
-
3.
|
|
7
|
+
1. Update the version in `lib/mahjong_render/version.rb` and `Gemfile.lock`, the support line in `SECURITY.md`, and a dated entry in `CHANGELOG.md`. Update user-facing version examples in both READMEs.
|
|
8
|
+
2. Run `bundle exec rake lint test assets:check licenses:check example:build`. Build the Gem and run `ruby script/check_package.rb` on it. Confirm the version-specific metadata URLs and packaged documentation.
|
|
9
|
+
3. Merge the release commit to `main` and confirm all CI jobs pass. Create an annotated tag on that commit, for example `git tag -a v0.2.0 -m 'Release v0.2.0'`, then push the tag with `git push origin v0.2.0`.
|
|
15
10
|
|
|
16
|
-
|
|
17
|
-
| --- | --- |
|
|
18
|
-
| Gem name | `mahjong-render` |
|
|
19
|
-
| Repository owner | `kjun1` |
|
|
20
|
-
| Repository name | `mahjong-render` |
|
|
21
|
-
| Workflow filename | `release.yml` |
|
|
22
|
-
| Environment | `release` |
|
|
23
|
-
| Workflow repository owner/name | Leave blank |
|
|
11
|
+
The `release` GitHub environment must allow `v*` tags. Configure the RubyGems trusted publisher for repository `kjun1/mahjong-render`, workflow `release.yml`, and environment `release`. Keep MFA enabled for the RubyGems account. The workflow does not use a RubyGems API key or GitHub secret.
|
|
24
12
|
|
|
25
|
-
|
|
13
|
+
## Verify
|
|
26
14
|
|
|
27
|
-
|
|
15
|
+
1. Confirm the `Publish gem` workflow succeeded for the tag, including the MRI Ruby 3.3, 3.4, and 4.0 checks.
|
|
16
|
+
2. Confirm the version exists on RubyGems and the matching GitHub Release has the `.gem` asset. Download the asset and the RubyGems Gem, and compare their SHA-256 hashes.
|
|
17
|
+
3. Verify the downloaded Gem's attestation with `gh attestation verify mahjong-render-X.Y.Z.gem -R kjun1/mahjong-render`. Install the published Gem and run the Ruby and AsciiDoc examples from both READMEs.
|
|
28
18
|
|
|
29
|
-
|
|
30
|
-
- **Tag push:** Push a tag matching the gem version, for example `git tag v0.1.0` followed by `git push origin v0.1.0`. The tag push publishes that version automatically.
|
|
31
|
-
|
|
32
|
-
Both routes validate the version, run the release checks, build the gem, and use the `release` environment. If a version from this repository is already on RubyGems, a later run checks its source metadata and skips the duplicate push. The RubyGems version cannot be overwritten; bump the gem version for any subsequent release.
|
|
19
|
+
If the workflow fails after RubyGems publication, rerun the workflow for the same tag. It will rebuild the Gem with `SOURCE_DATE_EPOCH` set to the tagged commit time, compare its SHA-256 with RubyGems, and complete the attestation and GitHub Release. A mismatch stops the workflow; published Gem versions cannot be overwritten. RubyGems 0.1.0 predates this process and retains its original metadata.
|
data/lib/mahjong_render.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mahjong-render
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- kjun1
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
-
dependencies:
|
|
10
|
+
date: 2026-09-24 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: logger
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.7'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.7'
|
|
12
26
|
description: A Ruby library for rendering compact mahjong notation to SVG, with an
|
|
13
27
|
optional Asciidoctor block macro.
|
|
14
28
|
executables: []
|
|
@@ -16,12 +30,14 @@ extensions: []
|
|
|
16
30
|
extra_rdoc_files: []
|
|
17
31
|
files:
|
|
18
32
|
- CHANGELOG.md
|
|
33
|
+
- CODE_OF_CONDUCT.md
|
|
19
34
|
- CONTRIBUTING.md
|
|
20
35
|
- LICENSE
|
|
21
36
|
- LICENSES/CC0-1.0.txt
|
|
22
37
|
- README.ja.md
|
|
23
38
|
- README.md
|
|
24
39
|
- SECURITY.md
|
|
40
|
+
- SUPPORT.md
|
|
25
41
|
- THIRD_PARTY_NOTICES.md
|
|
26
42
|
- assets/manifest.json
|
|
27
43
|
- assets/tiles/Chun.svg
|
|
@@ -67,6 +83,7 @@ files:
|
|
|
67
83
|
- docs/adr/0003-notation.md
|
|
68
84
|
- docs/adr/0004-assets.md
|
|
69
85
|
- docs/adr/0005-package.md
|
|
86
|
+
- docs/api.md
|
|
70
87
|
- docs/release.md
|
|
71
88
|
- docs/research/existing-renderers.md
|
|
72
89
|
- examples/basic.adoc
|
|
@@ -81,10 +98,10 @@ licenses:
|
|
|
81
98
|
- Apache-2.0
|
|
82
99
|
- CC0-1.0
|
|
83
100
|
metadata:
|
|
84
|
-
source_code_uri: https://github.com/kjun1/mahjong-render
|
|
85
|
-
changelog_uri: https://github.com/kjun1/mahjong-render/blob/
|
|
101
|
+
source_code_uri: https://github.com/kjun1/mahjong-render/tree/v0.2.1
|
|
102
|
+
changelog_uri: https://github.com/kjun1/mahjong-render/blob/v0.2.1/CHANGELOG.md
|
|
86
103
|
bug_tracker_uri: https://github.com/kjun1/mahjong-render/issues
|
|
87
|
-
documentation_uri: https://github.com/kjun1/mahjong-render/blob/
|
|
104
|
+
documentation_uri: https://github.com/kjun1/mahjong-render/blob/v0.2.1/docs/api.md
|
|
88
105
|
rubygems_mfa_required: 'true'
|
|
89
106
|
rdoc_options: []
|
|
90
107
|
require_paths:
|
|
@@ -93,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
93
110
|
requirements:
|
|
94
111
|
- - ">="
|
|
95
112
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '3.
|
|
113
|
+
version: '3.3'
|
|
97
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
115
|
requirements:
|
|
99
116
|
- - ">="
|