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.
- checksums.yaml +7 -0
- data/.builds/ruby-4.0.yml +38 -0
- data/.pre-commit-config.yaml +16 -0
- data/.rubocop.yml +8 -0
- data/AGENTS.md +72 -0
- data/CHANGELOG.md +23 -0
- data/LICENSE +661 -0
- data/LICENSES/AGPL-3.0-or-later.txt +661 -0
- data/LICENSES/CC-BY-SA-4.0.txt +427 -0
- data/LICENSES/CC0-1.0.txt +121 -0
- data/LICENSES/MIT-0.txt +16 -0
- data/LICENSES/MIT.txt +18 -0
- data/README.md +199 -0
- data/REUSE.toml +18 -0
- data/Rakefile +13 -0
- data/bin/agent_rake +13 -0
- data/bin/announce +13 -0
- data/bin/console +14 -0
- data/bin/consolidate_md +13 -0
- data/bin/hbs +13 -0
- data/bin/setup +17 -0
- data/doc/contributors/documentation_style.md +121 -0
- data/doc/custom.css +22 -0
- data/exe/agent_rake +96 -0
- data/exe/announce +1120 -0
- data/exe/consolidate_md +246 -0
- data/exe/hbs +670 -0
- data/exe/scaffold +662 -0
- data/lib/ratatui_ruby/devtools/tasks/autodoc/examples.rb +133 -0
- data/lib/ratatui_ruby/devtools/tasks/autodoc/member.rb +116 -0
- data/lib/ratatui_ruby/devtools/tasks/autodoc/name.rb +33 -0
- data/lib/ratatui_ruby/devtools/tasks/autodoc.rake +21 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/cargo_lockfile.rb +38 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/changelog.rb +67 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/header.rb +43 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/history.rb +50 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/links.rb +78 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/manifest.rb +63 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/ruby_gem.rb +77 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/sem_ver.rb +63 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/unreleased_section.rb +75 -0
- data/lib/ratatui_ruby/devtools/tasks/bump.rake +80 -0
- data/lib/ratatui_ruby/devtools/tasks/cargo.rake +47 -0
- data/lib/ratatui_ruby/devtools/tasks/doc.rake +887 -0
- data/lib/ratatui_ruby/devtools/tasks/example_viewer.html.erb +172 -0
- data/lib/ratatui_ruby/devtools/tasks/license/headers_md.rb +276 -0
- data/lib/ratatui_ruby/devtools/tasks/license/headers_rb.rb +236 -0
- data/lib/ratatui_ruby/devtools/tasks/license/license_utils.rb +143 -0
- data/lib/ratatui_ruby/devtools/tasks/license/snippets_md.rb +353 -0
- data/lib/ratatui_ruby/devtools/tasks/license/snippets_rdoc.rb +186 -0
- data/lib/ratatui_ruby/devtools/tasks/license.rake +91 -0
- data/lib/ratatui_ruby/devtools/tasks/lint.rake +84 -0
- data/lib/ratatui_ruby/devtools/tasks/rdoc_config.rb +45 -0
- data/lib/ratatui_ruby/devtools/tasks/resources/build.yml.erb +54 -0
- data/lib/ratatui_ruby/devtools/tasks/resources/rubies.yml +7 -0
- data/lib/ratatui_ruby/devtools/tasks/reuse.rake +104 -0
- data/lib/ratatui_ruby/devtools/tasks/sourcehut.rake +94 -0
- data/lib/ratatui_ruby/devtools/tasks/test.rake +18 -0
- data/lib/ratatui_ruby/devtools/templates/.builds/ruby.yml.erb +47 -0
- data/lib/ratatui_ruby/devtools/templates/.gitignore.erb +18 -0
- data/lib/ratatui_ruby/devtools/templates/.pre-commit-config.yaml.erb +16 -0
- data/lib/ratatui_ruby/devtools/templates/.rubocop.yml.erb +8 -0
- data/lib/ratatui_ruby/devtools/templates/AGENTS.md.erb +65 -0
- data/lib/ratatui_ruby/devtools/templates/CHANGELOG.md.erb +18 -0
- data/lib/ratatui_ruby/devtools/templates/Gemfile.erb +32 -0
- data/lib/ratatui_ruby/devtools/templates/README.md.erb +127 -0
- data/lib/ratatui_ruby/devtools/templates/REUSE.toml.erb +33 -0
- data/lib/ratatui_ruby/devtools/templates/Rakefile.erb +29 -0
- data/lib/ratatui_ruby/devtools/templates/bin/console.erb +18 -0
- data/lib/ratatui_ruby/devtools/templates/bin/setup.erb +24 -0
- data/lib/ratatui_ruby/devtools/templates/doc/concepts/application_architecture.md.erb +16 -0
- data/lib/ratatui_ruby/devtools/templates/doc/concepts/application_testing.md.erb +49 -0
- data/lib/ratatui_ruby/devtools/templates/doc/custom.css.erb +24 -0
- data/lib/ratatui_ruby/devtools/templates/doc/getting_started/quickstart.md.erb +56 -0
- data/lib/ratatui_ruby/devtools/templates/doc/images/.gitkeep +0 -0
- data/lib/ratatui_ruby/devtools/templates/doc/index.md.erb +25 -0
- data/lib/ratatui_ruby/devtools/templates/exe/.gitkeep +0 -0
- data/lib/ratatui_ruby/devtools/templates/gemspec.erb +58 -0
- data/lib/ratatui_ruby/devtools/templates/mise.toml.erb +12 -0
- data/lib/ratatui_ruby/devtools/templates/tasks/example_viewer.html.erb +174 -0
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/build.yml.erb +62 -0
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/index.html.erb +46 -0
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/rubies.yml.erb +9 -0
- data/lib/ratatui_ruby/devtools/templates/vendor/goodcop/base.yml +1047 -0
- data/lib/ratatui_ruby/devtools/version.rb +13 -0
- data/lib/ratatui_ruby/devtools.rb +137 -0
- data/mise.toml +7 -0
- data/sig/ratatui_ruby/devtools.rbs +15 -0
- data/vendor/goodcop/base.yml +1047 -0
- 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
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
|