yard-fence 0.8.2 → 0.9.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: 90ced668922aea260b30e6505493afb8bd6b457ad67e598edf5c0a3ca8fec331
4
- data.tar.gz: 3f177b2d225ca2a737e257b445449206f5d71ca6d307eb90506928bae8e1c0e2
3
+ metadata.gz: 9d5f096b0f24b04537ca7eedf32025ac2ff3f4fbcd2ffd3f8a61858cb22dd987
4
+ data.tar.gz: d69fd384aee0052908e6a182d46f148f924d4427c983a4aef53b612b6230edb6
5
5
  SHA512:
6
- metadata.gz: eb125c673df6de4eac631cb1678a09a084ec082229dfbd1045975636191823ad2c2ecfb68302ac339885db25294b54e7503ed4ffe980266b222283ca6f836145
7
- data.tar.gz: cbc8e3b9db77e6267db67b8bb4d266c322382f09667260c0e1cba71fb4ffb39bb309f9ac96ee61d61d1f41d9fed53bae9adbd7ef49cab4343d9a2a2d13016112
6
+ metadata.gz: ff41883cf435550001b5a76279770622613fac37492e87649c6cc740e21e7e43d7f9d99a80e844fd0d117e07f6ba4b8fd40d8603aa21bdbf381f6966236202c0
7
+ data.tar.gz: '0960b5f3d1cd6373cd71f86c681e577406a0ffe6c2cdc36d3251e137c009795ea4ffc448e11545740bdc56e75d9c731e33e068c691812c4b8c7e06ce5f50f734'
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,8 +28,35 @@ Please file a bug if you notice a violation of semantic versioning.
28
28
 
29
29
  ### Fixed
30
30
 
31
+ - Fixed CI workflow setup for appraisal-based style and coverage jobs, locked-deps, and TruffleRuby 23.1.
32
+
31
33
  ### Security
32
34
 
35
+ ## [0.9.0] - 2026-05-23
36
+
37
+ - TAG: [v0.9.0][0.9.0t]
38
+ - COVERAGE: 97.71% -- 171/175 lines in 5 files
39
+ - BRANCH COVERAGE: 90.74% -- 49/54 branches in 5 files
40
+ - 47.37% documented
41
+
42
+ ### Added
43
+
44
+ - `Yard::Fence.install_rake_tasks!` for explicit integration with a chosen documentation rake task
45
+ - Rake task integration now wires `yard:fence:prepare` before the selected YARD task and runs HTML post-processing after that task completes
46
+
47
+ ### Changed
48
+
49
+ - Documentation processing is now Rake-driven. Projects should call `Yard::Fence.install_rake_tasks!` after defining their `:yard` task so prepare and post-processing hooks run only for documentation builds.
50
+ - Project maintenance files, workflows, modular Gemfiles, and local development wiring were refreshed with the current kettle-jem template.
51
+
52
+ ### Removed
53
+
54
+ - Removed global `at_exit` post-processing. Raw `yard` / `bin/yard` no longer runs `yard-fence` post-processing unless the caller invokes the Rake-integrated documentation task.
55
+
56
+ ### Fixed
57
+
58
+ - Loading YARD during unrelated rake tasks no longer clears or rewrites `docs/`.
59
+
33
60
  ## [0.8.2] - 2025-12-30
34
61
 
35
62
  - TAG: [v0.8.2][0.8.2t]
@@ -182,7 +209,9 @@ Please file a bug if you notice a violation of semantic versioning.
182
209
 
183
210
  - Initial release
184
211
 
185
- [Unreleased]: https://github.com/galtzo-floss/yard-fence/compare/v0.8.2...HEAD
212
+ [Unreleased]: https://github.com/galtzo-floss/yard-fence/compare/v0.9.0...HEAD
213
+ [0.9.0]: https://github.com/galtzo-floss/yard-fence/compare/v0.8.2...v0.9.0
214
+ [0.9.0t]: https://github.com/galtzo-floss/yard-fence/releases/tag/v0.9.0
186
215
  [0.8.2]: https://github.com/galtzo-floss/yard-fence/compare/v0.8.1...v0.8.2
187
216
  [0.8.2t]: https://github.com/galtzo-floss/yard-fence/releases/tag/v0.8.2
188
217
  [0.8.1]: https://github.com/galtzo-floss/yard-fence/compare/v0.8.0...v0.8.1
data/CITATION.cff CHANGED
@@ -1,19 +1,19 @@
1
1
  cff-version: 1.2.0
2
- title: yard-fence
2
+ title: "yard-fence"
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/yard-fence'
16
- description: yard-fence
16
+ description: "yard-fence"
17
17
  repository-code: 'https://github.com/galtzo-floss/yard-fence'
18
18
  abstract: >-
19
19
  yard-fence
data/CONTRIBUTING.md CHANGED
@@ -8,29 +8,37 @@ 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
 
27
- Executables shipped by dependencies, such as yard-fence, and stone_checksums, are available
35
+ Executables shipped by dependencies, such as kettle-dev, and stone_checksums, are available
28
36
  after running `bin/setup`. These include:
29
37
 
30
38
  - gem_checksums
31
39
  - kettle-changelog
32
40
  - kettle-commit-msg
33
- - yard-fence-setup
41
+ - kettle-dev-setup
34
42
  - kettle-dvcs
35
43
  - kettle-pre-release
36
44
  - kettle-readme-backers
@@ -52,7 +60,7 @@ General/runtime
52
60
  - CI: When set to true, adjusts default rake tasks toward CI behavior
53
61
 
54
62
  Coverage (kettle-soup-cover / SimpleCov)
55
- - K_SOUP_COV_DO: Enable coverage collection (default: true in .envrc)
63
+ - K_SOUP_COV_DO: Enable coverage collection (default: true in `mise.toml`)
56
64
  - K_SOUP_COV_FORMATTERS: Comma-separated list of formatters (html, xml, rcov, lcov, json, tty)
57
65
  - K_SOUP_COV_MIN_LINE: Minimum line coverage threshold (integer, e.g., 100)
58
66
  - K_SOUP_COV_MIN_BRANCH: Minimum branch coverage threshold (integer, e.g., 100)
@@ -68,7 +76,9 @@ GitHub API and CI helpers
68
76
  Releasing and signing
69
77
  - SKIP_GEM_SIGNING: If set, skip gem signing during build/release
70
78
  - GEM_CERT_USER: Username for selecting your public cert in `certs/<USER>.pem` (defaults to $USER)
71
- - SOURCE_DATE_EPOCH: Reproducible build timestamp. `kettle-release` will set this automatically for the session.
79
+ - SOURCE_DATE_EPOCH: Reproducible build timestamp.
80
+ - `kettle-release` will set this automatically for the session.
81
+ - Not needed on bundler >= 2.7.0, as reproducible builds have become the default.
72
82
 
73
83
  Git hooks and commit message helpers (exe/kettle-commit-msg)
74
84
  - GIT_HOOK_BRANCH_VALIDATE: Branch name validation mode (e.g., `jira`) or `false` to disable
@@ -76,7 +86,7 @@ Git hooks and commit message helpers (exe/kettle-commit-msg)
76
86
  - GIT_HOOK_FOOTER_SENTINEL: Required when footer append is enabled — a unique first-line sentinel to prevent duplicates
77
87
  - GIT_HOOK_FOOTER_APPEND_DEBUG: Extra debug output in the footer template (true/false)
78
88
 
79
- For a quick starting point, this repository’s `.envrc` shows sane defaults, and `.env.local` can override them locally.
89
+ 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 -- ...`.
80
90
 
81
91
  ## Appraisals
82
92
 
@@ -87,24 +97,28 @@ They are created and updated with the commands:
87
97
  bin/rake appraisal:update
88
98
  ```
89
99
 
90
- When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
100
+ If you need to reset all gemfiles/*.gemfile.lock files:
101
+
102
+ ```console
103
+ bin/rake appraisal:reset
104
+ ```
91
105
 
92
- ## The Reek List
106
+ When adding an appraisal to CI, check the [runner tool cache][🏃‍♂️runner-tool-cache] to see which runner to use.
93
107
 
94
- Take a look at the `reek` list which is the file called `REEK` and find something to improve.
108
+ ## Run Tests
95
109
 
96
- To refresh the `reek` list:
110
+ Run tests via `kettle-test` (provided by `kettle-test`). It runs RSpec, writes the full log to
111
+ `tmp/kettle-test/rspec-TIMESTAMP.log`, and prints a compact highlight block with timing, seed,
112
+ pass/fail count, failing example list, and SimpleCov coverage percentages.
97
113
 
98
114
  ```console
99
- bundle exec reek > REEK
115
+ bundle exec kettle-test
100
116
  ```
101
117
 
102
- ## Run Tests
103
-
104
- To run all tests
118
+ For targeted runs, disable the hard coverage threshold to avoid false failures:
105
119
 
106
120
  ```console
107
- bundle exec rake test
121
+ K_SOUP_COV_MIN_HARD=false bundle exec kettle-test spec/path/to/spec.rb
108
122
  ```
109
123
 
110
124
  ### Spec organization (required)
@@ -168,39 +182,41 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
168
182
  1. Update version.rb to contain the correct version-to-be-released.
169
183
  2. Run `bundle exec kettle-changelog`.
170
184
  3. Run `bundle exec kettle-release`.
185
+ 4. Stay awake and monitor the release process for any errors, and answer any prompts.
171
186
 
172
187
  #### Manual process
173
188
 
174
189
  1. Run `bin/setup && bin/rake` as a "test, coverage, & linting" sanity check
175
190
  2. Update the version number in `version.rb`, and ensure `CHANGELOG.md` reflects changes
176
191
  3. Run `bin/setup && bin/rake` again as a secondary check, and to update `Gemfile.lock`
177
- 4. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
178
- 5. Run `git push` to trigger the final CI pipeline before release, and merge PRs
192
+ 4. Run `bin/rake yard` to regenerate the docs site using the canonical docs task
193
+ 5. Run `git commit -am "🔖 Prepare release v<VERSION>"` to commit the changes
194
+ 6. Run `git push` to trigger the final CI pipeline before release, and merge PRs
179
195
  - NOTE: Remember to [check the build][🧪build].
180
- 6. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
181
- 7. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
182
- 8. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
183
- 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
196
+ 7. Run `export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME`
197
+ 8. Run `git checkout $GIT_TRUNK_BRANCH_NAME`
198
+ 9. Run `git pull origin $GIT_TRUNK_BRANCH_NAME` to ensure latest trunk code
199
+ 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
184
200
  - If your Bundler is >= 2.7.0, you can skip this; builds are reproducible by default.
185
201
  - Run `export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH`
186
202
  - If the echo above has no output, then it didn't work.
187
203
  - Note: `zsh/datetime` module is needed, if running `zsh`.
188
204
  - In older versions of `bash` you can use `date +%s` instead, i.e. `export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH`
189
- 10. Run `bundle exec rake build`
190
- 11. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
205
+ 11. Run `bundle exec rake build`
206
+ 12. Run `bin/gem_checksums` (more context [1][🔒️rubygems-checksums-pr], [2][🔒️rubygems-guides-pr])
191
207
  to create SHA-256 and SHA-512 checksums. This functionality is provided by the `stone_checksums`
192
208
  [gem][💎stone_checksums].
193
209
  - The script automatically commits but does not push the checksums
194
- 12. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
210
+ 13. Sanity check the SHA256, comparing with the output from the `bin/gem_checksums` command:
195
211
  - `sha256sum pkg/<gem name>-<version>.gem`
196
- 13. Run `bundle exec rake release` which will create a git tag for the version,
212
+ 14. Run `bundle exec rake release` which will create a git tag for the version,
197
213
  push git commits and tags, and push the `.gem` file to the gem host configured in the gemspec.
198
214
 
199
- [📜src-gl]: https://gitlab.com/galtzo-floss/yard-fence/
215
+ [📜src-gl]: https://gitlab.com/galtzo-floss/yard-fence
200
216
  [📜src-cb]: https://codeberg.org/galtzo-floss/yard-fence
201
217
  [📜src-gh]: https://github.com/galtzo-floss/yard-fence
202
218
  [🧪build]: https://github.com/galtzo-floss/yard-fence/actions
203
- [🤝conduct]: https://gitlab.com/galtzo-floss/yard-fence/-/blob/main/CODE_OF_CONDUCT.md
219
+ [🤝conduct]: https://github.com/galtzo-floss/yard-fence/blob/main/CODE_OF_CONDUCT.md
204
220
  [🖐contrib-rocks]: https://contrib.rocks
205
221
  [🖐contributors]: https://github.com/galtzo-floss/yard-fence/graphs/contributors
206
222
  [🚎contributors-gl]: https://gitlab.com/galtzo-floss/yard-fence/-/graphs/main
@@ -216,3 +232,4 @@ NOTE: To build without signing the gem set `SKIP_GEM_SIGNING` to any value in th
216
232
  [📌major-versions-not-sacred]: https://tom.preston-werner.com/2022/05/23/major-version-numbers-are-not-sacred.html
217
233
  [🚎appraisal2]: https://github.com/appraisal-rb/appraisal2
218
234
  [🏃‍♂️runner-tool-cache]: https://github.com/ruby/ruby-builder/releases/tag/toolcache
235
+ [✉️discord-invite]: https://discord.gg/3qme4XHNKN
data/FUNDING.md CHANGED
@@ -19,7 +19,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
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
@@ -31,11 +31,11 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
31
31
 
32
32
  <!-- RELEASE-NOTES-FOOTER-END -->
33
33
 
34
- # 🤑 Request for Help
34
+ # 🤑 A request for help
35
35
 
36
36
  Maintainers have teeth and need to pay their dentists.
37
- After getting laid off in an RIF in March and filled with many dozens of rejections,
38
- I'm now spending ~60+ hours a week building open source tools.
37
+ After getting laid off in an RIF in March, and encountering difficulty finding a new one,
38
+ I began spending most of my time building open source tools.
39
39
  I'm hoping to be able to pay for my kids' health insurance this month,
40
40
  so if you value the work I am doing, I need your support.
41
41
  Please consider sponsoring me or the project.
@@ -44,16 +44,13 @@ To join the community or get help 👇️ Join the Discord.
44
44
 
45
45
  [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite]
46
46
 
47
- To say "thanks for maintaining such a great tool" ☝️ Join the Discord or 👇️ send money.
47
+ To say "thanks!" ☝️ Join the Discord or 👇️ send money.
48
48
 
49
49
  [![Sponsor galtzo-floss/yard-fence on Open Source Collective][🖇osc-all-bottom-img]][🖇osc] 💌 [![Sponsor me on GitHub Sponsors][🖇sponsor-bottom-img]][🖇sponsor] 💌 [![Sponsor me on Liberapay][⛳liberapay-bottom-img]][⛳liberapay] 💌 [![Donate on PayPal][🖇paypal-bottom-img]][🖇paypal]
50
50
 
51
51
  # Another Way to Support Open Source Software
52
52
 
53
- > How wonderful it is that nobody need wait a single moment before starting to improve the world.<br/>
54
- >—Anne Frank
55
-
56
- I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions — totaling 79 hours of FLOSS coding over just the past seven days, a pretty regular week for me. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
53
+ I’m driven by a passion to foster a thriving open-source community – a space where people can tackle complex problems, no matter how small. Revitalizing libraries that have fallen into disrepair, and building new libraries focused on solving real-world challenges, are my passions. I was recently affected by layoffs, and the tech jobs market is unwelcoming. I’m reaching out here because your support would significantly aid my efforts to provide for my family, and my farm (11 🐔 chickens, 2 🐶 dogs, 3 🐰 rabbits, 8 🐈‍ cats).
57
54
 
58
55
  If you work at a company that uses my work, please encourage them to support me as a corporate sponsor. My work on gems you use might show up in `bundle fund`.
59
56
 
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