yaml-converter 0.1.0 → 0.2.0

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: 3ff31ff07fb94cdc9e6127b439d6e19a01dff31439c5124cea4273c5e4c757a4
4
- data.tar.gz: c759d32179e582f320a7bc29f29c1d760a7994594eea91658796ff54b0c07ed1
3
+ metadata.gz: 057b98aebdc138d2d4c0b2da5568126bb4219180645cb9377b845dbc95909e53
4
+ data.tar.gz: af896024b3cf0575bdc6975c1cee24a239f613c736eebfc619f53ad6478c3cc5
5
5
  SHA512:
6
- metadata.gz: 4f3cb06263fb7832b186ab2cbbd091245a67d24057748a0af1980f681c24ac6376e7f4fbb06734e7ef31b5151ff9d6fd17cc2d9adc1c55808eacc9f84f4a3a66
7
- data.tar.gz: b7905e8e8e1669b9eb53a6f62cf082425415d02a1166526a13fbf5063d2214aea3fd8320d2d5fd1822ec6298b4409ee5a9d769f126fa8b0317180057dcc5da1b
6
+ metadata.gz: ba166f2c550876cffe8f1b1bcd455faaf7f3caa466d8bc7df011df886925541b5a525735f765690293948262d49fa76d0a32a18ce5d915d6556f365c7ee591f6
7
+ data.tar.gz: 9d230b75e60c248a61584a502fa3ee7ba044c2ed3ea5bc051c3f585cf7400e01febc940ef3cf69e7b3169718aa5f166051cfa97c6b8d4875784dcec4430e9760
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,33 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [0.2.0] - 2026-06-03
34
+
35
+ - TAG: [v0.2.0][0.2.0t]
36
+ - COVERAGE: 92.51% -- 432/467 lines in 10 files
37
+ - BRANCH COVERAGE: 68.42% -- 117/171 branches in 10 files
38
+ - 65.82% documented
39
+
40
+ ### Added
41
+
42
+ - Added the current `kettle-jem` template harness, including StructuredMerge
43
+ config, local setup scripts, generated CI workflows, and Ruby 4.0.5 `mise`
44
+ tooling.
45
+
46
+ ### Changed
47
+
48
+ - (BREAKING) Switched native PDF rendering from Prawn to HexaPDF.
49
+ - Rebuilt the README with the current `kettle-jem` layout while preserving the
50
+ project synopsis and alternatives.
51
+ - Updated generated development, test, documentation, and style dependencies
52
+ through the current template stack.
53
+ - Updated README alternatives to mention the Python `yaml2rst` and `yaml2doc`
54
+ tools.
55
+
56
+ ### Removed
57
+
58
+ - Removed obsolete generated binstubs and legacy Ruby 2.x/3.1 modular Gemfiles.
59
+
33
60
  ## [0.1.0] - 2025-11-09
34
61
 
35
62
  - TAG: [v0.1.0][0.1.0t]
@@ -43,6 +70,8 @@ Please file a bug if you notice a violation of semantic versioning.
43
70
 
44
71
  ### Security
45
72
 
46
- [Unreleased]: https://github.com/galtzo-floss/yaml-converter/compare/v0.1.0...HEAD
73
+ [Unreleased]: https://github.com/galtzo-floss/yaml-converter/compare/v0.2.0...HEAD
74
+ [0.2.0]: https://github.com/galtzo-floss/yaml-converter/compare/v0.1.0...v0.2.0
75
+ [0.2.0t]: https://github.com/galtzo-floss/yaml-converter/releases/tag/v0.2.0
47
76
  [0.1.0]: https://github.com/galtzo-floss/yaml-converter/compare/232ad133b6259aabb39993b476f727d91d0a5f0c...v0.1.0
48
77
  [0.1.0t]: https://github.com/galtzo-floss/yaml-converter/releases/tag/v0.1.0
data/CITATION.cff CHANGED
@@ -1,19 +1,19 @@
1
1
  cff-version: 1.2.0
2
- title: yaml-converter
2
+ title: "yaml-converter"
3
3
  message: >-
4
4
  If you use this work and you want to cite it,
5
5
  then you can use the metadata from this file.
6
6
  type: software
7
7
  authors:
8
- - given-names: Peter Hurn
9
- family-names: Boling
10
- email: peter@railsbling.com
11
- affiliation: railsbling.com
8
+ - given-names: "Peter H."
9
+ family-names: "Boling"
10
+ email: "floss@galtzo.com"
11
+ affiliation: "galtzo.com"
12
12
  orcid: 'https://orcid.org/0009-0008-8519-441X'
13
13
  identifiers:
14
14
  - type: url
15
15
  value: 'https://github.com/galtzo-floss/yaml-converter'
16
- description: yaml-converter
16
+ description: "yaml-converter"
17
17
  repository-code: 'https://github.com/galtzo-floss/yaml-converter'
18
18
  abstract: >-
19
19
  yaml-converter
data/CONTRIBUTING.md CHANGED
@@ -8,19 +8,27 @@ To submit a patch, please fork the project, create a patch with tests, and send
8
8
 
9
9
  Remember to [![Keep A Changelog][📗keep-changelog-img]][📗keep-changelog] if you make changes.
10
10
 
11
+ ## Developer Certificate of Origin
12
+
13
+ In order to protect users of this project, we require all contributors to comply with the
14
+ [Developer Certificate of Origin](https://developercertificate.org/).
15
+ This ensures that all contributions are properly licensed and attributed.
16
+
11
17
  ## Help out!
12
18
 
13
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
19
+ Take a look at the open issues and pull requests, or use the gem and find something to improve.
14
20
 
15
21
  Follow these instructions:
16
22
 
17
- 1. Fork the repository
18
- 2. Create a feature branch (`git checkout -b my-new-feature`)
19
- 3. Make some fixes.
20
- 4. Commit changes (`git commit -am 'Added some feature'`)
21
- 5. Push to the branch (`git push origin my-new-feature`)
22
- 6. Make sure to add tests for it. This is important, so it doesn't break in a future release.
23
- 7. Create new Pull Request.
23
+ 1. Join the Discord: [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]
24
+ 2. Fork the repository
25
+ 3. Create your feature branch (`git checkout -b my-new-feature`)
26
+ 4. Make some fixes.
27
+ 5. Commit your changes (`git commit -am 'Added some feature'`)
28
+ 6. Push to the branch (`git push origin my-new-feature`)
29
+ 7. Make sure to add tests for it. This is important, so it doesn't break in a future release.
30
+ 8. Create new Pull Request.
31
+ 9. Announce it in the channel for this org in the [Discord][✉️discord-invite]!
24
32
 
25
33
  ## Executables vs Rake tasks
26
34
 
@@ -42,6 +50,22 @@ There are many Rake tasks available as well. You can see them by running:
42
50
  bin/rake -T
43
51
  ```
44
52
 
53
+ ## Code quality checks
54
+
55
+ Run the Reek task when you want a smell check that fails on current findings:
56
+
57
+ ```shell
58
+ bin/rake reek
59
+ ```
60
+
61
+ Refresh the checked-in `REEK` backlog through the rake task, not by redirecting
62
+ the raw `reek` executable output. The rake task uses the project bundle and
63
+ avoids stale generated binstubs shadowing the Reek gem executable:
64
+
65
+ ```shell
66
+ bin/rake reek:update
67
+ ```
68
+
45
69
  ## Environment Variables for Local Development
46
70
 
47
71
  Below are the primary environment variables recognized by stone_checksums (and its integrated tools). Unless otherwise noted, set boolean values to the string "true" to enable.
@@ -52,7 +76,7 @@ General/runtime
52
76
  - CI: When set to true, adjusts default rake tasks toward CI behavior
53
77
 
54
78
  Coverage (kettle-soup-cover / SimpleCov)
55
- - K_SOUP_COV_DO: Enable coverage collection (default: true in .envrc)
79
+ - K_SOUP_COV_DO: Enable coverage collection (default: true in `mise.toml`)
56
80
  - K_SOUP_COV_FORMATTERS: Comma-separated list of formatters (html, xml, rcov, lcov, json, tty)
57
81
  - K_SOUP_COV_MIN_LINE: Minimum line coverage threshold (integer, e.g., 100)
58
82
  - K_SOUP_COV_MIN_BRANCH: Minimum branch coverage threshold (integer, e.g., 100)
@@ -78,35 +102,60 @@ Git hooks and commit message helpers (exe/kettle-commit-msg)
78
102
  - GIT_HOOK_FOOTER_SENTINEL: Required when footer append is enabled — a unique first-line sentinel to prevent duplicates
79
103
  - GIT_HOOK_FOOTER_APPEND_DEBUG: Extra debug output in the footer template (true/false)
80
104
 
81
- For a quick starting point, this repository’s `.envrc` shows sane defaults, and `.env.local` can override them locally.
105
+ Git diff driver setup
106
+ - Local setup writes repository `.gitattributes` entries and local Git `diff.smorg-*` command config so this checkout uses StructuredMerge semantic diffs.
107
+ - Global setup registers `diff.smorg-*` commands once in the user Git config; use it when you work across several StructuredMerge-enabled repositories.
108
+ - Include-file setup writes `.git/smorg/config` and includes it from local Git config, keeping command registrations out of the repository files.
109
+ - Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local `git diff` uses semantic drivers.
110
+
111
+ ```console
112
+ K_JEM_TEMPLATING=true bundle exec kettle-jem install
113
+ ```
114
+
115
+ Troubleshooting Git diffs
116
+ - Use `git diff --no-ext-diff` to compare against Git's built-in diff output.
117
+ - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect.
118
+ - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --local --get-regexp '^diff\.smorg-'`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true bundle exec kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
120
+
121
+ For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
82
122
 
83
123
  ## Appraisals
84
124
 
85
125
  From time to time the [appraisal2][🚎appraisal2] gemfiles in `gemfiles/` will need to be updated.
126
+ Generated appraisal and CI workflow floors are controlled by `ruby.test_minimum`
127
+ in `.structuredmerge/kettle-jem.yml`; this project was templated with `ruby.test_minimum: 3.2.0`.
128
+ That value describes the lowest Ruby version expected to run the test/development
129
+ toolchain, and it may be higher than the gemspec runtime floor.
130
+
86
131
  They are created and updated with the commands:
87
132
 
88
133
  ```console
89
134
  bin/rake appraisal:update
90
135
  ```
91
136
 
92
- When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
137
+ If you need to reset all gemfiles/*.gemfile.lock files:
138
+
139
+ ```console
140
+ bin/rake appraisal:reset
141
+ ```
93
142
 
94
- ## The Reek List
143
+ When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
95
144
 
96
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
145
+ ## Run Tests
97
146
 
98
- To refresh the `reek` list:
147
+ Run tests via `kettle-test` (provided by `kettle-test`). It runs RSpec, writes the full log to
148
+ `tmp/kettle-test/rspec-TIMESTAMP.log`, and prints a compact highlight block with timing, seed,
149
+ pass/fail count, failing example list, and SimpleCov coverage percentages.
99
150
 
100
151
  ```console
101
- bundle exec reek > REEK
152
+ bundle exec kettle-test
102
153
  ```
103
154
 
104
- ## Run Tests
105
-
106
- To run all tests
155
+ For targeted runs, disable the hard coverage threshold to avoid false failures:
107
156
 
108
157
  ```console
109
- bundle exec rake test
158
+ K_SOUP_COV_MIN_HARD=false bundle exec kettle-test spec/path/to/spec.rb
110
159
  ```
111
160
 
112
161
  ### Spec organization (required)
@@ -177,33 +226,34 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
177
226
  1. Run `bin/setup && bin/rake` as a "test, coverage, & linting" sanity check
178
227
  2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
179
228
  3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
180
- 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
181
- 5. Run `git push` to trigger the final CI pipeline before release, and merge PRs
229
+ 4. Run `bin/rake yard` to regenerate the docs site using the canonical docs task
230
+ 5. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
231
+ 6. Run `git push` to trigger the final CI pipeline before release, and merge PRs
182
232
  - NOTE: Remember to [check the build][🧪build].
183
- 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
184
- 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
185
- 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
186
- 9. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
233
+ 7. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
234
+ 8. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
235
+ 9. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
236
+ 10. Optional for older Bundler (< 2.7.0): Set `SOURCE_DATE_EPOCH` so `rake build` and `rake release` use the same timestamp and generate the same checksums
187
237
  - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
188
238
  - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
189
239
  - If the echo above has no output, then it didn't work.
190
240
  - Note: `zsh/datetime` module is needed, if running `zsh`.
191
241
  - In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
192
- 10. Run `bundle exec rake build`
193
- 11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
242
+ 11. Run `bundle exec rake build`
243
+ 12. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
194
244
  to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
195
245
  [gem][💎stone_checksums].
196
246
  - The script automatically commits but does not push the checksums
197
- 12. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
247
+ 13. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
198
248
  - `sha256sum pkg/<gem name>-<version>.gem`
199
- 13. Run `bundle exec rake release` which will create a git tag for the version,
249
+ 14. Run `bundle exec rake release` which will create a git tag for the version,
200
250
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
201
251
 
202
- [📜src-gl]: https://gitlab.com/galtzo-floss/yaml-converter/
252
+ [📜src-gl]: https://gitlab.com/galtzo-floss/yaml-converter
203
253
  [📜src-cb]: https://codeberg.org/galtzo-floss/yaml-converter
204
254
  [📜src-gh]: https://github.com/galtzo-floss/yaml-converter
205
255
  [🧪build]: https://github.com/galtzo-floss/yaml-converter/actions
206
- [🤝conduct]: https://gitlab.com/galtzo-floss/yaml-converter/-/blob/main/CODE_OF_CONDUCT.md
256
+ [🤝conduct]: https://github.com/galtzo-floss/yaml-converter/blob/main/CODE_OF_CONDUCT.md
207
257
  [🖐contrib-rocks]: https://contrib.rocks
208
258
  [🖐contributors]: https://github.com/galtzo-floss/yaml-converter/graphs/contributors
209
259
  [🚎contributors-gl]: https://gitlab.com/galtzo-floss/yaml-converter/-/graphs/main
@@ -219,3 +269,4 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
219
269
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
220
270
  [🚎appraisal2]: https://github.com/appraisal-rb/appraisal2
221
271
  [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache
272
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
data/FUNDING.md CHANGED
@@ -10,16 +10,16 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
13
- [🖇osc-backers]: https://opencollective.com/galtzo-floss#backer
14
- [🖇osc-backers-i]: https://opencollective.com/galtzo-floss/backers/badge.svg?style=flat
15
- [🖇osc-sponsors]: https://opencollective.com/galtzo-floss#sponsor
16
- [🖇osc-sponsors-i]: https://opencollective.com/galtzo-floss/sponsors/badge.svg?style=flat
13
+ [🖇osc-backers]: https://opencollective.com/#backer
14
+ [🖇osc-backers-i]: https://opencollective.com//backers/badge.svg?style=flat
15
+ [🖇osc-sponsors]: https://opencollective.com/#sponsor
16
+ [🖇osc-sponsors-i]: https://opencollective.com//sponsors/badge.svg?style=flat
17
17
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
19
  [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
20
  [🖇polar]: https://polar.sh/pboling
21
21
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
- [🖇kofi]: https://ko-fi.com/O5O86SNP4
22
+ [🖇kofi]: https://ko-fi.com/pboling
23
23
  [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
24
  [🖇patreon]: https://patreon.com/galtzo
25
25
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
@@ -59,13 +59,13 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
59
59
  **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
60
60
 
61
61
  [⛳liberapay-bottom-img]: https://img.shields.io/liberapay/goal/pboling.svg?style=for-the-badge&logo=liberapay&color=a51611
62
- [🖇osc-all-img]: https://img.shields.io/opencollective/all/galtzo-floss
63
- [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss
64
- [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/galtzo-floss
65
- [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/galtzo-floss?style=for-the-badge
66
- [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/galtzo-floss?style=for-the-badge
67
- [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/galtzo-floss?style=for-the-badge
68
- [🖇osc]: https://opencollective.com/galtzo-floss
62
+ [🖇osc-all-img]: https://img.shields.io/opencollective/all/
63
+ [🖇osc-sponsors-img]: https://img.shields.io/opencollective/sponsors/
64
+ [🖇osc-backers-img]: https://img.shields.io/opencollective/backers/
65
+ [🖇osc-all-bottom-img]: https://img.shields.io/opencollective/all/?style=for-the-badge
66
+ [🖇osc-sponsors-bottom-img]: https://img.shields.io/opencollective/sponsors/?style=for-the-badge
67
+ [🖇osc-backers-bottom-img]: https://img.shields.io/opencollective/backers/?style=for-the-badge
68
+ [🖇osc]: https://opencollective.com/
69
69
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
70
70
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
71
71
  [🖇paypal-bottom-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=for-the-badge&logo=paypal&color=0A0A0A
data/LICENSE.md ADDED
@@ -0,0 +1,10 @@
1
+ # License
2
+
3
+ This project is made available under the following license.
4
+ Choose the option that best fits your use case:
5
+
6
+ - [MIT](MIT.md)
7
+
8
+ ## Copyright Notice
9
+
10
+ Copyright (c) 2025-2026 Peter H. Boling