ratatui_ruby-devtools 0.1.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.
Files changed (90) hide show
  1. checksums.yaml +7 -0
  2. data/.builds/ruby-4.0.yml +38 -0
  3. data/.pre-commit-config.yaml +16 -0
  4. data/.rubocop.yml +8 -0
  5. data/AGENTS.md +72 -0
  6. data/CHANGELOG.md +23 -0
  7. data/LICENSE +661 -0
  8. data/LICENSES/AGPL-3.0-or-later.txt +661 -0
  9. data/LICENSES/CC-BY-SA-4.0.txt +427 -0
  10. data/LICENSES/CC0-1.0.txt +121 -0
  11. data/LICENSES/MIT-0.txt +16 -0
  12. data/LICENSES/MIT.txt +18 -0
  13. data/README.md +199 -0
  14. data/REUSE.toml +18 -0
  15. data/Rakefile +13 -0
  16. data/bin/agent_rake +13 -0
  17. data/bin/announce +13 -0
  18. data/bin/console +14 -0
  19. data/bin/consolidate_md +13 -0
  20. data/bin/hbs +13 -0
  21. data/bin/setup +17 -0
  22. data/doc/contributors/documentation_style.md +121 -0
  23. data/doc/custom.css +22 -0
  24. data/exe/agent_rake +96 -0
  25. data/exe/announce +1120 -0
  26. data/exe/consolidate_md +246 -0
  27. data/exe/hbs +670 -0
  28. data/exe/scaffold +662 -0
  29. data/lib/ratatui_ruby/devtools/tasks/autodoc/examples.rb +133 -0
  30. data/lib/ratatui_ruby/devtools/tasks/autodoc/member.rb +116 -0
  31. data/lib/ratatui_ruby/devtools/tasks/autodoc/name.rb +33 -0
  32. data/lib/ratatui_ruby/devtools/tasks/autodoc.rake +21 -0
  33. data/lib/ratatui_ruby/devtools/tasks/bump/cargo_lockfile.rb +38 -0
  34. data/lib/ratatui_ruby/devtools/tasks/bump/changelog.rb +67 -0
  35. data/lib/ratatui_ruby/devtools/tasks/bump/header.rb +43 -0
  36. data/lib/ratatui_ruby/devtools/tasks/bump/history.rb +50 -0
  37. data/lib/ratatui_ruby/devtools/tasks/bump/links.rb +78 -0
  38. data/lib/ratatui_ruby/devtools/tasks/bump/manifest.rb +63 -0
  39. data/lib/ratatui_ruby/devtools/tasks/bump/ruby_gem.rb +77 -0
  40. data/lib/ratatui_ruby/devtools/tasks/bump/sem_ver.rb +63 -0
  41. data/lib/ratatui_ruby/devtools/tasks/bump/unreleased_section.rb +75 -0
  42. data/lib/ratatui_ruby/devtools/tasks/bump.rake +80 -0
  43. data/lib/ratatui_ruby/devtools/tasks/cargo.rake +47 -0
  44. data/lib/ratatui_ruby/devtools/tasks/doc.rake +887 -0
  45. data/lib/ratatui_ruby/devtools/tasks/example_viewer.html.erb +172 -0
  46. data/lib/ratatui_ruby/devtools/tasks/license/headers_md.rb +276 -0
  47. data/lib/ratatui_ruby/devtools/tasks/license/headers_rb.rb +236 -0
  48. data/lib/ratatui_ruby/devtools/tasks/license/license_utils.rb +143 -0
  49. data/lib/ratatui_ruby/devtools/tasks/license/snippets_md.rb +353 -0
  50. data/lib/ratatui_ruby/devtools/tasks/license/snippets_rdoc.rb +186 -0
  51. data/lib/ratatui_ruby/devtools/tasks/license.rake +91 -0
  52. data/lib/ratatui_ruby/devtools/tasks/lint.rake +84 -0
  53. data/lib/ratatui_ruby/devtools/tasks/rdoc_config.rb +45 -0
  54. data/lib/ratatui_ruby/devtools/tasks/resources/build.yml.erb +54 -0
  55. data/lib/ratatui_ruby/devtools/tasks/resources/rubies.yml +7 -0
  56. data/lib/ratatui_ruby/devtools/tasks/reuse.rake +104 -0
  57. data/lib/ratatui_ruby/devtools/tasks/sourcehut.rake +94 -0
  58. data/lib/ratatui_ruby/devtools/tasks/test.rake +18 -0
  59. data/lib/ratatui_ruby/devtools/templates/.builds/ruby.yml.erb +47 -0
  60. data/lib/ratatui_ruby/devtools/templates/.gitignore.erb +18 -0
  61. data/lib/ratatui_ruby/devtools/templates/.pre-commit-config.yaml.erb +16 -0
  62. data/lib/ratatui_ruby/devtools/templates/.rubocop.yml.erb +8 -0
  63. data/lib/ratatui_ruby/devtools/templates/AGENTS.md.erb +65 -0
  64. data/lib/ratatui_ruby/devtools/templates/CHANGELOG.md.erb +18 -0
  65. data/lib/ratatui_ruby/devtools/templates/Gemfile.erb +32 -0
  66. data/lib/ratatui_ruby/devtools/templates/README.md.erb +127 -0
  67. data/lib/ratatui_ruby/devtools/templates/REUSE.toml.erb +33 -0
  68. data/lib/ratatui_ruby/devtools/templates/Rakefile.erb +29 -0
  69. data/lib/ratatui_ruby/devtools/templates/bin/console.erb +18 -0
  70. data/lib/ratatui_ruby/devtools/templates/bin/setup.erb +24 -0
  71. data/lib/ratatui_ruby/devtools/templates/doc/concepts/application_architecture.md.erb +16 -0
  72. data/lib/ratatui_ruby/devtools/templates/doc/concepts/application_testing.md.erb +49 -0
  73. data/lib/ratatui_ruby/devtools/templates/doc/custom.css.erb +24 -0
  74. data/lib/ratatui_ruby/devtools/templates/doc/getting_started/quickstart.md.erb +56 -0
  75. data/lib/ratatui_ruby/devtools/templates/doc/images/.gitkeep +0 -0
  76. data/lib/ratatui_ruby/devtools/templates/doc/index.md.erb +25 -0
  77. data/lib/ratatui_ruby/devtools/templates/exe/.gitkeep +0 -0
  78. data/lib/ratatui_ruby/devtools/templates/gemspec.erb +58 -0
  79. data/lib/ratatui_ruby/devtools/templates/mise.toml.erb +12 -0
  80. data/lib/ratatui_ruby/devtools/templates/tasks/example_viewer.html.erb +174 -0
  81. data/lib/ratatui_ruby/devtools/templates/tasks/resources/build.yml.erb +62 -0
  82. data/lib/ratatui_ruby/devtools/templates/tasks/resources/index.html.erb +46 -0
  83. data/lib/ratatui_ruby/devtools/templates/tasks/resources/rubies.yml.erb +9 -0
  84. data/lib/ratatui_ruby/devtools/templates/vendor/goodcop/base.yml +1047 -0
  85. data/lib/ratatui_ruby/devtools/version.rb +13 -0
  86. data/lib/ratatui_ruby/devtools.rb +137 -0
  87. data/mise.toml +7 -0
  88. data/sig/ratatui_ruby/devtools.rbs +15 -0
  89. data/vendor/goodcop/base.yml +1047 -0
  90. metadata +252 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c53c42478cc7f26dd91cca19b18ae8335e36b4a9fd2ed2a3c3a023023f6643ff
4
+ data.tar.gz: 66c09dcf4036b8188fd848d1cee92a2ff9da3e2b385511956af6ec58e09cb657
5
+ SHA512:
6
+ metadata.gz: 9f731aac290da1c200cd116d846d2b019dfa2bd496abb79ce90f3a826d49a57536b70db930249967eeacf7e94a5c824b955022d0b85ad585087a0d6e0af51585
7
+ data.tar.gz: 665b96fdaa99996adb47b9d95af710472cf364159d3b3268c3e76f2260f398cba61ba974143b18b1ad61ce82f36343e629ce6c35f5dcbfa9da8ddd183f292e80
@@ -0,0 +1,38 @@
1
+ # SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
2
+ # SPDX-License-Identifier: AGPL-3.0-or-later
3
+
4
+ image: archlinux
5
+ packages:
6
+ - bash
7
+ - base-devel
8
+ - curl
9
+ - openssl
10
+ - libyaml
11
+ - zlib
12
+ - readline
13
+ - gdbm
14
+ - ncurses
15
+ - libffi
16
+ - git
17
+ sources:
18
+ - https://git.sr.ht/~kerrick/ratatui_ruby-devtools
19
+ tasks:
20
+ - setup: |
21
+ curl https://mise.jdx.dev/install.sh | sh
22
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.buildenv
23
+ echo 'eval "$($HOME/.local/bin/mise activate bash)"' >> ~/.buildenv
24
+ echo 'export LANG="en_US.UTF-8"' >> ~/.buildenv
25
+ echo 'export LC_ALL="en_US.UTF-8"' >> ~/.buildenv
26
+ . ~/.buildenv
27
+ export CI="true"
28
+ cd ratatui_ruby-devtools
29
+ mise install
30
+ mise x -- pip install reuse
31
+ mise x -- gem install bundler:4.0.3
32
+ mise reshim
33
+ mise x -- bundle config set --local frozen 'true'
34
+ mise x -- bundle install
35
+ - lint: |
36
+ . ~/.buildenv
37
+ cd ratatui_ruby-devtools
38
+ mise x -- bundle exec rake
@@ -0,0 +1,16 @@
1
+ # SPDX-FileCopyrightText: 2020 Free Software Foundation Europe e.V.
2
+ # SPDX-License-Identifier: CC0-1.0
3
+ repos:
4
+ - repo: local
5
+ hooks:
6
+ - id: bundle-check
7
+ name: Check Gemfile.lock
8
+ entry: bundle check
9
+ language: system
10
+ files: (Gemfile|Gemfile\.lock|.*\.gemspec)
11
+ pass_filenames: false
12
+ - id: rake
13
+ name: rake
14
+ entry: bundle exec rake
15
+ language: system
16
+ pass_filenames: false
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ # SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
2
+ # SPDX-License-Identifier: AGPL-3.0-or-later
3
+
4
+ inherit_from:
5
+ - ./vendor/goodcop/base.yml
6
+
7
+ AllCops:
8
+ TargetRubyVersion: "3.2"
data/AGENTS.md ADDED
@@ -0,0 +1,72 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
3
+ SPDX-License-Identifier: CC-BY-SA-4.0
4
+ -->
5
+
6
+ # AGENTS.md
7
+
8
+ ## Project Identity
9
+
10
+ Project Name: ratatui_ruby-devtools
11
+
12
+ Description: Shared development tooling for the RatatuiRuby ecosystem.
13
+
14
+ This gem provides Rake tasks, linters, license enforcement, version bumping, and build tooling used across all RatatuiRuby ecosystem gems.
15
+
16
+ ## 1. Standards
17
+
18
+ ### STRICT REQUIREMENTS
19
+
20
+ - Every file MUST begin with an SPDX-compliant header. Use `AGPL-3.0-or-later` for code; `CC-BY-SA-4.0` for documentation. `reuse annotate` can help you generate the header. **For Ruby files**, wrap SPDX comments in `#--` / `#++` to hide them from RDoc output.
21
+ - Every line of Ruby MUST be covered by tests that would stand up to mutation testing.
22
+ - Tests must be meaningful and verify specific behavior or rendering output; simply verifying that code "doesn't crash" is insufficient and unacceptable.
23
+ - **Pre-commit:** Use `bin/agent_rake` to ensure commit-readiness. See Tools for detailed instructions.
24
+ - **Git Pager:** ALWAYS set `PAGER=cat` for ALL `git` commands (e.g., `PAGER=cat git diff`). This is mandatory.
25
+
26
+ ### Tools
27
+
28
+ - **NEVER** run `bundle exec rake` directly. **NEVER** run `bundle exec ruby -Ilib:test ...` directly.
29
+ - **ALWAYS use `bin/agent_rake`** for running tests, linting, or checking compilation.
30
+ - **Usage:**
31
+ - Runs default task (compile + test + lint): `bin/agent_rake`
32
+ - Runs specific task: `bin/agent_rake test:ruby` (for example)
33
+ - **Setup:** `bin/setup` must handle Bundler dependencies.
34
+ - **Git:** ALWAYS set `PAGER=cat` with `git`. **THIS IS CRITICAL!**
35
+
36
+ ### Ruby Standards
37
+
38
+ - Use `Data.define` for all value objects (Ruby 3.2+).
39
+ - Define types in `.rbs` files. Don't use `untyped` just because it's easy; be comprehensive and accurate.
40
+ - Every public Ruby class/method must be documented for humans in RDoc.
41
+
42
+ ## 2. Committing
43
+
44
+ - Who commits: DON'T stage (DON'T `git add`) unless explicitly instructed. DON'T commit unless explicitly instructed. DO suggest a commit message when you finish.
45
+ - **Format:**
46
+ - Format: Use [Conventional Commits](https://www.conventionalcommits.org/).
47
+ - Body: Explanation if necessary (wrap at 72 chars).
48
+ - **DON'T list the files changed or the edits made in the body.**
49
+ - **DON'T use markdown syntax** (no backticks, no bolding, no lists, no links).
50
+
51
+ ## 3. Changelog
52
+
53
+ - Follow [Semantic Versioning](https://semver.org/)
54
+ - Follow the [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) specification.
55
+ - **What belongs in CHANGELOG:** Changes that affect gem consumers:
56
+ - New rake tasks or executables
57
+ - New templates
58
+ - Breaking changes to task interfaces
59
+ - Bug fixes in tasks
60
+ - **What does NOT belong in CHANGELOG:** Internal changes:
61
+ - Test additions or improvements
62
+ - Documentation updates
63
+ - Internal refactors
64
+
65
+ ## 4. Definition of Done (DoD)
66
+
67
+ Before considering a task complete:
68
+
69
+ 1. **Default Rake Task Passes:** Run `bin/agent_rake` (no args). Confirm it passes with ZERO errors.
70
+ 2. **Documentation Updated:** If public APIs changed, update relevant docs.
71
+ 3. **Changelog Updated:** If public APIs changed, update CHANGELOG.md's **Unreleased** section.
72
+ 4. **Commit Message Suggested:** Include a suggested commit message block.
data/CHANGELOG.md ADDED
@@ -0,0 +1,23 @@
1
+ <!--
2
+ SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
3
+ SPDX-License-Identifier: CC-BY-SA-4.0
4
+ -->
5
+
6
+ # Changelog
7
+
8
+ All notable changes to this project will be documented in this file.
9
+
10
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
11
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
12
+
13
+
14
+ ## [Unreleased]
15
+
16
+ ### Added
17
+
18
+ - Initial release of `ratatui_ruby-devtools`
19
+ - Rake tasks: `lint`, `lint:fix`, `reuse`, `license`, `bump`
20
+ - Executables: `agent_rake`, `consolidate_md`, `hbs`, `announce`
21
+ - Templates for scaffolding new ecosystem gems
22
+ - Auto-discovery of gem configuration from `*.gemspec`
23
+ - Conditional Cargo/Rust task support for gems with native extensions