ratatui_ruby-devtools 0.2.0 → 0.3.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 +4 -4
- data/.rubocop.yml +1 -1
- data/AGENTS.md +1 -1
- data/CHANGELOG.md +63 -6
- data/README.md +49 -21
- data/Rakefile +1 -1
- data/bin/setup +20 -6
- data/bin/setup.ps1 +74 -0
- data/doc/contributors/documentation_style.md +3 -4
- data/exe/scaffold +8 -342
- data/lib/ratatui_ruby/devtools/scaffold/scaffold_config.rb +67 -0
- data/lib/ratatui_ruby/devtools/scaffold/template_renderer.rb +282 -0
- data/lib/ratatui_ruby/devtools/site_tasks/build.rake +10 -15
- data/lib/ratatui_ruby/devtools/task_scope.rb +24 -0
- data/lib/ratatui_ruby/devtools/tasks/autodoc_tasks.rb +31 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/bump_workflow.rb +71 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/changelog.rb +60 -3
- data/lib/ratatui_ruby/devtools/tasks/bump/github_project.rb +26 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/history.rb +3 -3
- data/lib/ratatui_ruby/devtools/tasks/bump/links.rb +39 -24
- data/lib/ratatui_ruby/devtools/tasks/bump/manifest.rb +9 -17
- data/lib/ratatui_ruby/devtools/tasks/bump/no_crate.rb +19 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/no_links.rb +22 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/patch_release.rb +25 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/release_branch.rb +17 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/release_from_trunk.rb +48 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/repository.rb +143 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/ruby_gem.rb +65 -59
- data/lib/ratatui_ruby/devtools/tasks/bump/rust_crate.rb +42 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/sem_ver.rb +127 -10
- data/lib/ratatui_ruby/devtools/tasks/bump/source_hut_project.rb +26 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/unbranched_release.rb +20 -0
- data/lib/ratatui_ruby/devtools/tasks/bump/unreleased_section.rb +19 -1
- data/lib/ratatui_ruby/devtools/tasks/bump_tasks.rb +47 -0
- data/lib/ratatui_ruby/devtools/tasks/cargo_tasks.rb +57 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/documentation.rb +59 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/link/file_url.rb +30 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/link/relative_path.rb +61 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/link/web_url.rb +55 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/link.rb +52 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/link_audit.rb +116 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/problem.rb +40 -0
- data/lib/ratatui_ruby/devtools/tasks/doc/source_file.rb +93 -0
- data/lib/ratatui_ruby/devtools/tasks/doc_tasks.rb +937 -0
- data/lib/ratatui_ruby/devtools/tasks/license/blame.rb +72 -0
- data/lib/ratatui_ruby/devtools/tasks/license/changed_files.rb +34 -0
- data/lib/ratatui_ruby/devtools/tasks/license/contribution.rb +12 -0
- data/lib/ratatui_ruby/devtools/tasks/license/copyright.rb +47 -0
- data/lib/ratatui_ruby/devtools/tasks/license/directory_licensing.rb +42 -0
- data/lib/ratatui_ruby/devtools/tasks/license/existing_header.rb +21 -0
- data/lib/ratatui_ruby/devtools/tasks/license/header_revision.rb +45 -0
- data/lib/ratatui_ruby/devtools/tasks/license/licensed_file.rb +39 -0
- data/lib/ratatui_ruby/devtools/tasks/license/licensing.rb +35 -0
- data/lib/ratatui_ruby/devtools/tasks/license/markdown_document.rb +23 -0
- data/lib/ratatui_ruby/devtools/tasks/license/markdown_files.rb +31 -0
- data/lib/ratatui_ruby/devtools/tasks/license/markdown_header_syntax.rb +104 -0
- data/lib/ratatui_ruby/devtools/tasks/license/markdown_snippet_syntax.rb +159 -0
- data/lib/ratatui_ruby/devtools/tasks/license/missing_header.rb +18 -0
- data/lib/ratatui_ruby/devtools/tasks/license/rbs_files.rb +27 -0
- data/lib/ratatui_ruby/devtools/tasks/license/rbs_header_syntax.rb +31 -0
- data/lib/ratatui_ruby/devtools/tasks/license/rdoc_comment.rb +51 -0
- data/lib/ratatui_ruby/devtools/tasks/license/rdoc_examples.rb +41 -0
- data/lib/ratatui_ruby/devtools/tasks/license/rdoc_snippet_syntax.rb +119 -0
- data/lib/ratatui_ruby/devtools/tasks/license/renewal.rb +17 -0
- data/lib/ratatui_ruby/devtools/tasks/license/reuse_annotated_file.rb +12 -0
- data/lib/ratatui_ruby/devtools/tasks/license/reuse_tool.rb +34 -0
- data/lib/ratatui_ruby/devtools/tasks/license/ruby_comment_header.rb +49 -0
- data/lib/ratatui_ruby/devtools/tasks/license/ruby_files.rb +36 -0
- data/lib/ratatui_ruby/devtools/tasks/license/ruby_header_syntax.rb +39 -0
- data/lib/ratatui_ruby/devtools/tasks/license/rust_files.rb +27 -0
- data/lib/ratatui_ruby/devtools/tasks/license/rust_header_syntax.rb +59 -0
- data/lib/ratatui_ruby/devtools/tasks/license/snippet.rb +44 -0
- data/lib/ratatui_ruby/devtools/tasks/license/snippet_file.rb +29 -0
- data/lib/ratatui_ruby/devtools/tasks/license/snippet_opening.rb +39 -0
- data/lib/ratatui_ruby/devtools/tasks/license/snippet_revision.rb +75 -0
- data/lib/ratatui_ruby/devtools/tasks/license/spdx_header.rb +42 -0
- data/lib/ratatui_ruby/devtools/tasks/license/unknown_file.rb +12 -0
- data/lib/ratatui_ruby/devtools/tasks/license/unlicensed_files.rb +69 -0
- data/lib/ratatui_ruby/devtools/tasks/license/wrapped_snippet.rb +30 -0
- data/lib/ratatui_ruby/devtools/tasks/license_tasks.rb +71 -0
- data/lib/ratatui_ruby/devtools/tasks/lint/gem_lockfile.rb +29 -0
- data/lib/ratatui_ruby/devtools/tasks/lint/supported_rubies.rb +18 -0
- data/lib/ratatui_ruby/devtools/tasks/lint_tasks.rb +100 -0
- data/lib/ratatui_ruby/devtools/tasks/release/platform_gem.rb +21 -12
- data/lib/ratatui_ruby/devtools/tasks/release/versioned_binary.rb +1 -1
- data/lib/ratatui_ruby/devtools/tasks/release_tasks.rb +80 -0
- data/lib/ratatui_ruby/devtools/tasks/reuse_tasks.rb +39 -0
- data/lib/ratatui_ruby/devtools/tasks/{test.rake → test_tasks.rb} +13 -4
- data/lib/ratatui_ruby/devtools/tasks/website/hosted_source_tree.rb +24 -0
- data/lib/ratatui_ruby/devtools/tasks/website/index_page.rb +1 -4
- data/lib/ratatui_ruby/devtools/tasks/website/source_tree.rb +63 -0
- data/lib/ratatui_ruby/devtools/tasks/website/versioned_documentation.rb +14 -13
- data/lib/ratatui_ruby/devtools/tasks/website_tasks.rb +49 -0
- data/lib/ratatui_ruby/devtools/templates/.github/workflows/build-gems.yml.erb +7 -1
- data/lib/ratatui_ruby/devtools/templates/.github/workflows/ci.yml.erb +2 -2
- data/lib/ratatui_ruby/devtools/templates/.gitignore.erb +2 -1
- data/lib/ratatui_ruby/devtools/templates/.rubocop.yml.erb +1 -1
- data/lib/ratatui_ruby/devtools/templates/AGENTS.md.erb +1 -1
- data/lib/ratatui_ruby/devtools/templates/CHANGELOG.md.erb +3 -1
- data/lib/ratatui_ruby/devtools/templates/CONTRIBUTING.md.erb +3 -3
- data/lib/ratatui_ruby/devtools/templates/Gemfile.erb +2 -3
- data/lib/ratatui_ruby/devtools/templates/README.md.erb +7 -7
- data/lib/ratatui_ruby/devtools/templates/REUSE.toml.erb +1 -1
- data/lib/ratatui_ruby/devtools/templates/bin/setup.erb +5 -1
- data/lib/ratatui_ruby/devtools/templates/bin/setup.ps1.erb +5 -1
- data/lib/ratatui_ruby/devtools/templates/doc/concepts/application_architecture.md.erb +2 -2
- data/lib/ratatui_ruby/devtools/templates/doc/concepts/application_testing.md.erb +3 -3
- data/lib/ratatui_ruby/devtools/templates/doc/getting_started/quickstart.md.erb +4 -4
- data/lib/ratatui_ruby/devtools/templates/ext/Cargo.toml.erb +1 -1
- data/lib/ratatui_ruby/devtools/templates/gemspec.erb +1 -1
- data/lib/ratatui_ruby/devtools/templates/mise.toml.erb +3 -3
- data/lib/ratatui_ruby/devtools/version.rb +1 -1
- data/lib/ratatui_ruby/devtools.rb +54 -71
- data/mise.toml +2 -2
- data/sig/ratatui_ruby/devtools.rbs +16 -1
- metadata +93 -34
- data/.builds/ruby-4.0.yml +0 -38
- data/lib/ratatui_ruby/devtools/tasks/autodoc.rake +0 -21
- data/lib/ratatui_ruby/devtools/tasks/bump.rake +0 -80
- data/lib/ratatui_ruby/devtools/tasks/cargo.rake +0 -47
- data/lib/ratatui_ruby/devtools/tasks/doc.rake +0 -887
- data/lib/ratatui_ruby/devtools/tasks/license/headers_md.rb +0 -276
- data/lib/ratatui_ruby/devtools/tasks/license/headers_rb.rb +0 -236
- data/lib/ratatui_ruby/devtools/tasks/license/license_utils.rb +0 -143
- data/lib/ratatui_ruby/devtools/tasks/license/snippets_md.rb +0 -353
- data/lib/ratatui_ruby/devtools/tasks/license/snippets_rdoc.rb +0 -186
- data/lib/ratatui_ruby/devtools/tasks/license.rake +0 -91
- data/lib/ratatui_ruby/devtools/tasks/lint.rake +0 -80
- data/lib/ratatui_ruby/devtools/tasks/release.rake +0 -87
- data/lib/ratatui_ruby/devtools/tasks/resources/rubies.yml +0 -7
- data/lib/ratatui_ruby/devtools/tasks/reuse.rake +0 -104
- data/lib/ratatui_ruby/devtools/tasks/website.rake +0 -37
- data/lib/ratatui_ruby/devtools/templates/.builds/ruby.yml.erb +0 -47
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/index.html.erb +0 -45
- data/lib/ratatui_ruby/devtools/templates/tasks/resources/rubies.yml.erb +0 -8
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
#--
|
|
4
|
-
# SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
5
|
-
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
-
#++
|
|
7
|
-
|
|
8
|
-
require_relative "release/native_gem_version"
|
|
9
|
-
|
|
10
|
-
namespace :release do
|
|
11
|
-
desc "Update stable branch to match release and set as default"
|
|
12
|
-
task :update_stable do
|
|
13
|
-
# Read version to determine tag
|
|
14
|
-
version_file = RatatuiRuby::Devtools.version_file
|
|
15
|
-
version_content = File.read(version_file)
|
|
16
|
-
version = version_content.match(/VERSION = "(.+?)"/)[1]
|
|
17
|
-
tag_name = "v#{version}"
|
|
18
|
-
|
|
19
|
-
# Verify that the version file matches the actual git tag
|
|
20
|
-
# This prevents updating stable to the wrong version if the release failed
|
|
21
|
-
latest_tag = `git describe --tags --abbrev=0`.strip
|
|
22
|
-
if latest_tag != tag_name
|
|
23
|
-
abort "Fatal: Version mismatch! '#{version_file}' says #{tag_name}, but the latest git tag is #{latest_tag}."
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# Get current stable version (if stable branch exists)
|
|
27
|
-
stable_version_str = `git show stable:#{version_file} 2>/dev/null`.match(/VERSION = "(.+?)"/)&.[](1)
|
|
28
|
-
if stable_version_str
|
|
29
|
-
stable_version = Gem::Version.new(stable_version_str)
|
|
30
|
-
new_version = Gem::Version.new(version)
|
|
31
|
-
|
|
32
|
-
if new_version <= stable_version
|
|
33
|
-
puts "Skipping stable update: #{version} is not newer than current stable #{stable_version_str}"
|
|
34
|
-
next
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
puts "Updating stable branch to point to #{tag_name}..."
|
|
39
|
-
# Resolve the tag to a commit hash (peel annotated tags)
|
|
40
|
-
# This renders a commit SHA that can be pushed to a branch head
|
|
41
|
-
commit_sha = `git rev-parse #{tag_name}^{}`.strip
|
|
42
|
-
|
|
43
|
-
# Update local stable branch to match
|
|
44
|
-
sh "git branch -f stable #{commit_sha}"
|
|
45
|
-
|
|
46
|
-
# Push the commit to remote stable branch
|
|
47
|
-
# Force-push because stable is reset to each release, not fast-forwarded.
|
|
48
|
-
sh "git push --force origin #{commit_sha}:stable"
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
if Rake::Task.task_defined?("release")
|
|
53
|
-
Rake::Task["release"].enhance do
|
|
54
|
-
# Replace Bundler's normalized tag with semver-style for prerelease versions.
|
|
55
|
-
# Bundler creates tags using normalized Gem::Version (e.g., v1.0.0.pre.beta.1).
|
|
56
|
-
# Semver uses hyphens (e.g., v1.0.0-beta.1). We want only the semver tag.
|
|
57
|
-
version_file = RatatuiRuby::Devtools.version_file
|
|
58
|
-
version_content = File.read(version_file)
|
|
59
|
-
version = version_content.match(/VERSION = "(.+?)"/)[1]
|
|
60
|
-
|
|
61
|
-
if version.include?("-")
|
|
62
|
-
normalized_tag = "v#{Gem::Version.new(version)}"
|
|
63
|
-
semver_tag = "v#{version}"
|
|
64
|
-
|
|
65
|
-
if normalized_tag != semver_tag
|
|
66
|
-
puts "Replacing normalized tag #{normalized_tag} with semver tag #{semver_tag}..."
|
|
67
|
-
# Delete the normalized tag locally and remotely
|
|
68
|
-
sh "git tag -d #{normalized_tag}"
|
|
69
|
-
sh "git push origin :refs/tags/#{normalized_tag}"
|
|
70
|
-
# Create the semver tag pointing to the same commit
|
|
71
|
-
sh "git tag #{semver_tag} HEAD"
|
|
72
|
-
sh "git push origin #{semver_tag}"
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
gem_name = RatatuiRuby::Devtools.gem_name
|
|
77
|
-
has_rust = File.exist?("ext/#{gem_name}/Cargo.toml") ||
|
|
78
|
-
File.exist?("ext/#{gem_name.tr('-', '_')}/Cargo.toml")
|
|
79
|
-
|
|
80
|
-
if has_rust
|
|
81
|
-
release_sha = `git rev-parse v#{version}^{}`.strip
|
|
82
|
-
NativeGemVersion.new(version:, sha: release_sha).release
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
Rake::Task["release:update_stable"].invoke
|
|
86
|
-
end
|
|
87
|
-
end
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
#--
|
|
4
|
-
# SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
5
|
-
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
-
#++
|
|
7
|
-
|
|
8
|
-
namespace :reuse do
|
|
9
|
-
desc "Run the REUSE Tool to confirm REUSE compliance"
|
|
10
|
-
task :lint do
|
|
11
|
-
sh "reuse lint"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
desc "Add SPDX headers to files missing them (per AGENTS.md standards)"
|
|
15
|
-
task :fix do
|
|
16
|
-
copyright = ENV.fetch("REUSE_COPYRIGHT", "Kerrick Long <me@kerricklong.com>")
|
|
17
|
-
|
|
18
|
-
# Code files: AGPL-3.0-or-later
|
|
19
|
-
code_extensions = %w[rb rs rake gemspec rbs toml yml yaml json lock].freeze
|
|
20
|
-
code_license = ENV.fetch("REUSE_CODE_LICENSE", "AGPL-3.0-or-later")
|
|
21
|
-
|
|
22
|
-
# Documentation files: CC-BY-SA-4.0
|
|
23
|
-
doc_extensions = %w[md txt].freeze
|
|
24
|
-
doc_license = ENV.fetch("REUSE_DOC_LICENSE", "CC-BY-SA-4.0")
|
|
25
|
-
|
|
26
|
-
# Find files missing headers (listed after "no copyright and licensing" message)
|
|
27
|
-
puts "Checking for files missing REUSE headers..."
|
|
28
|
-
output = `reuse lint 2>&1`
|
|
29
|
-
in_missing_section = false
|
|
30
|
-
missing_files = output.lines.filter_map do |line|
|
|
31
|
-
in_missing_section = true if line.include?("no copyright and licensing")
|
|
32
|
-
in_missing_section = false if line.start_with?("# ") && !line.include?("copyright")
|
|
33
|
-
next unless in_missing_section
|
|
34
|
-
|
|
35
|
-
line.match(/^\* (.+)/)&.[](1)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
if missing_files.empty?
|
|
39
|
-
puts "All files have REUSE headers!"
|
|
40
|
-
else
|
|
41
|
-
missing_files.each do |file|
|
|
42
|
-
ext = File.extname(file).delete(".")
|
|
43
|
-
license = if code_extensions.include?(ext)
|
|
44
|
-
code_license
|
|
45
|
-
elsif doc_extensions.include?(ext)
|
|
46
|
-
doc_license
|
|
47
|
-
else
|
|
48
|
-
puts " Skipping #{file} (unknown extension: .#{ext})"
|
|
49
|
-
next
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
puts " Annotating #{file} with #{license}"
|
|
53
|
-
sh "reuse annotate --license #{license} --copyright '#{copyright}' --skip-existing '#{file}'", verbose: false
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
desc "Normalize Ruby files: frozen_string_literal at top, SPDX in #--/#++ block"
|
|
59
|
-
task :normalize_ruby do
|
|
60
|
-
ruby_extensions = %w[rb rake gemspec].freeze
|
|
61
|
-
ruby_files = Dir.glob("**/*.{#{ruby_extensions.join(',')}}")
|
|
62
|
-
.reject { |f| f.start_with?("vendor/", "tmp/", ".") }
|
|
63
|
-
|
|
64
|
-
fixed_count = 0
|
|
65
|
-
ruby_files.each do |file|
|
|
66
|
-
content = File.read(file)
|
|
67
|
-
original = content.dup
|
|
68
|
-
|
|
69
|
-
# Skip if no SPDX header
|
|
70
|
-
next unless content.match?(/# SPDX-/)
|
|
71
|
-
|
|
72
|
-
# Extract components
|
|
73
|
-
frozen = content.match?(/^# frozen_string_literal: true/)
|
|
74
|
-
spdx_match = content.match(/(# SPDX-FileCopyrightText:[^\n]+\n(?:#[^\n]*\n)*# SPDX-License-Identifier:[^\n]+\n)/m)
|
|
75
|
-
next unless spdx_match
|
|
76
|
-
|
|
77
|
-
spdx_block = spdx_match[1]
|
|
78
|
-
|
|
79
|
-
# Remove existing frozen_string_literal and SPDX block (and any #--/#++)
|
|
80
|
-
cleaned = content
|
|
81
|
-
.sub(/^# frozen_string_literal: true\n+/, "")
|
|
82
|
-
.sub(/^#--\s*\n/, "")
|
|
83
|
-
.sub(spdx_block, "")
|
|
84
|
-
.sub(/^#\+\+\s*\n/, "")
|
|
85
|
-
.sub(/\A\n+/, "") # Remove leading blank lines
|
|
86
|
-
|
|
87
|
-
# Rebuild file in correct order: frozen, blank, #--, SPDX, #++, rest
|
|
88
|
-
new_content = ""
|
|
89
|
-
new_content += "# frozen_string_literal: true\n\n" if frozen
|
|
90
|
-
new_content += "#--\n#{spdx_block}#++\n\n"
|
|
91
|
-
new_content += cleaned.sub(/\A\n+/, "") # Ensure no double blank lines
|
|
92
|
-
|
|
93
|
-
next unless new_content != original
|
|
94
|
-
|
|
95
|
-
File.write(file, new_content)
|
|
96
|
-
puts " Normalized #{file}"
|
|
97
|
-
fixed_count += 1
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
puts fixed_count.zero? ? "All Ruby files properly normalized!" : "Fixed #{fixed_count} files."
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
task(:reuse) { Rake::Task["reuse:lint"].invoke }
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
#--
|
|
4
|
-
# SPDX-FileCopyrightText: 2026 Kerrick Long <me@kerricklong.com>
|
|
5
|
-
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
6
|
-
#++
|
|
7
|
-
|
|
8
|
-
require "erb"
|
|
9
|
-
require "fileutils"
|
|
10
|
-
require "tmpdir"
|
|
11
|
-
require_relative "rdoc_config"
|
|
12
|
-
|
|
13
|
-
namespace :website do
|
|
14
|
-
desc "Build documentation for trunk (current dir) and all git tags"
|
|
15
|
-
task :build do
|
|
16
|
-
require_relative "website/website"
|
|
17
|
-
|
|
18
|
-
spec = Gem::Specification.load(Dir["*.gemspec"].first)
|
|
19
|
-
globs = RDocConfig::RDOC_FILES + ["*.gemspec", "doc/images/**/*", "examples/**/*"]
|
|
20
|
-
|
|
21
|
-
# Allow projects to customize via website_config.rb in their tasks/ directory
|
|
22
|
-
config = if File.exist?("tasks/website_config.rb")
|
|
23
|
-
load File.expand_path("tasks/website_config.rb", Dir.pwd)
|
|
24
|
-
WebsiteConfig::CONFIG
|
|
25
|
-
else
|
|
26
|
-
{}
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
Website.new(
|
|
30
|
-
at: config[:output_dir] || "www",
|
|
31
|
-
project_name: spec.name,
|
|
32
|
-
globs:,
|
|
33
|
-
assets: config[:assets] || ["doc/images"],
|
|
34
|
-
branding: config[:branding] || {}
|
|
35
|
-
).build
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# REUSE-IgnoreStart
|
|
2
|
-
# SPDX-FileCopyrightText: <%= Time.now.year %> <%= copyright_holder %>
|
|
3
|
-
# SPDX-License-Identifier: <%= license %>
|
|
4
|
-
# REUSE-IgnoreEnd
|
|
5
|
-
|
|
6
|
-
image: archlinux
|
|
7
|
-
packages:
|
|
8
|
-
- bash
|
|
9
|
-
- base-devel
|
|
10
|
-
- curl
|
|
11
|
-
- openssl
|
|
12
|
-
- libyaml
|
|
13
|
-
- zlib
|
|
14
|
-
- readline
|
|
15
|
-
- gdbm
|
|
16
|
-
- ncurses
|
|
17
|
-
- libffi
|
|
18
|
-
- git
|
|
19
|
-
sources:
|
|
20
|
-
- https://git.sr.ht/~kerrick/<%= gem_name %>
|
|
21
|
-
tasks:
|
|
22
|
-
- setup: |
|
|
23
|
-
curl https://mise.jdx.dev/install.sh | sh
|
|
24
|
-
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.buildenv
|
|
25
|
-
echo 'eval "$($HOME/.local/bin/mise activate bash)"' >> ~/.buildenv
|
|
26
|
-
echo 'export LANG="en_US.UTF-8"' >> ~/.buildenv
|
|
27
|
-
echo 'export LC_ALL="en_US.UTF-8"' >> ~/.buildenv
|
|
28
|
-
. ~/.buildenv
|
|
29
|
-
export CI="true"
|
|
30
|
-
cd <%= gem_name %>
|
|
31
|
-
sed -i 's/ruby = .*/ruby = "<%= ruby_version %>"/' mise.toml
|
|
32
|
-
mise install
|
|
33
|
-
mise x -- pip install reuse
|
|
34
|
-
mise x -- gem install bundler
|
|
35
|
-
mise reshim
|
|
36
|
-
mise x -- bundle config set --local frozen 'true'
|
|
37
|
-
mise x -- bundle install
|
|
38
|
-
- test: |
|
|
39
|
-
. ~/.buildenv
|
|
40
|
-
cd <%= gem_name %>
|
|
41
|
-
echo "Testing Ruby <%= ruby_version %>"
|
|
42
|
-
mise x -- bundle exec rake test
|
|
43
|
-
- lint: |
|
|
44
|
-
. ~/.buildenv
|
|
45
|
-
cd <%= gem_name %>
|
|
46
|
-
echo "Linting Ruby <%= ruby_version %>"
|
|
47
|
-
mise x -- bundle exec rake lint
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<%# REUSE-IgnoreStart -%>
|
|
2
|
-
<%= "<%#" %>
|
|
3
|
-
SPDX-FileCopyrightText: <%= Time.now.year %> <%= copyright_holder %>
|
|
4
|
-
SPDX-License-Identifier: <%= license %>
|
|
5
|
-
%>
|
|
6
|
-
<%# REUSE-IgnoreEnd -%>
|
|
7
|
-
|
|
8
|
-
<!DOCTYPE html>
|
|
9
|
-
<html>
|
|
10
|
-
<head>
|
|
11
|
-
<title><%%= project_name %> documentation</title>
|
|
12
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
13
|
-
<style>
|
|
14
|
-
:root { color-scheme: light dark; }
|
|
15
|
-
body { font-family: system-ui, sans-serif; max-width: 800px; margin: 0 auto; padding: 2rem; line-height: 1.5; color: light-dark(#111, #eee); background: light-dark(#fff, #111); }
|
|
16
|
-
h1 { border-bottom: 2px solid light-dark(#eee, #333); padding-bottom: 0.5rem; }
|
|
17
|
-
ul { list-style: none; padding: 0; }
|
|
18
|
-
li { margin: 0.5rem 0; border: 1px solid light-dark(#ddd, #444); border-radius: 4px; }
|
|
19
|
-
a { display: block; padding: 1rem; text-decoration: none; color: light-dark(#0055aa, #44aaff); font-weight: bold; }
|
|
20
|
-
a:hover { background: light-dark(#f5f5f5, #222); }
|
|
21
|
-
.meta { font-weight: normal; color: light-dark(#666, #aaa); font-size: 0.9em; float: right; }
|
|
22
|
-
</style>
|
|
23
|
-
</head>
|
|
24
|
-
<body>
|
|
25
|
-
<h1><%%= project_name %> documentation</h1>
|
|
26
|
-
<ul>
|
|
27
|
-
<%% versions.each do |version| %>
|
|
28
|
-
<li>
|
|
29
|
-
<a href="<%%= version.slug %>/index.html">
|
|
30
|
-
<%%= version.name %>
|
|
31
|
-
<span class="meta">
|
|
32
|
-
<%% if version.latest? %>
|
|
33
|
-
Latest
|
|
34
|
-
<%% elsif version.edge? %>
|
|
35
|
-
Edge
|
|
36
|
-
<%% else %>
|
|
37
|
-
Historical
|
|
38
|
-
<%% end %>
|
|
39
|
-
</span>
|
|
40
|
-
</a>
|
|
41
|
-
</li>
|
|
42
|
-
<%% end %>
|
|
43
|
-
</ul>
|
|
44
|
-
</body>
|
|
45
|
-
</html>
|