gemvault 0.1.5 → 0.2.2
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/.containerignore +10 -0
- data/.rubocop.yml +9 -1
- data/CHANGELOG.md +61 -0
- data/CLAUDE.md +70 -11
- data/Dockerfile.test +65 -10
- data/README.md +3 -11
- data/Rakefile +26 -2
- data/_claude/archives/issue-13-root-cause.md +197 -0
- data/docs/Rakefile.vault_example +76 -0
- data/issues.rec +614 -15
- data/lib/bundler/plugin/vault_source.rb +48 -73
- data/lib/bundler/plugin/vaulted_gem.rb +66 -0
- data/lib/gemvault/archive_entry.rb +6 -0
- data/lib/gemvault/cli/command.rb +9 -5
- data/lib/gemvault/cli/commands/extract.rb +11 -11
- data/lib/gemvault/cli/commands/new.rb +3 -2
- data/lib/gemvault/cli/commands/remove.rb +15 -5
- data/lib/gemvault/cli/commands/upgrade.rb +37 -13
- data/lib/gemvault/dbvault.rb +12 -9
- data/lib/gemvault/deprecation.rb +26 -24
- data/lib/gemvault/gem_entry.rb +20 -24
- data/lib/gemvault/gem_extraction.rb +19 -23
- data/lib/gemvault/gem_reference/any_version.rb +6 -2
- data/lib/gemvault/gem_reference/parser.rb +44 -0
- data/lib/gemvault/gem_reference/specific_version.rb +9 -25
- data/lib/gemvault/gem_reference.rb +13 -45
- data/lib/gemvault/manifest.rb +44 -42
- data/lib/gemvault/tarball.rb +53 -0
- data/lib/gemvault/tarvault.rb +47 -56
- data/lib/gemvault/vault.rb +17 -13
- data/lib/gemvault/vault_path.rb +33 -0
- data/lib/gemvault/vault_upgrade.rb +31 -24
- data/lib/gemvault/version.rb +1 -1
- data/lib/gemvault.rb +1 -0
- data/lib/rubygems/resolver/vault_set.rb +5 -7
- data/lib/rubygems/source/vault.rb +28 -32
- data/lib/rubygems_plugin.rb +8 -6
- metadata +23 -17
- data/LICENSE +0 -21
- data/lib/gemvault/tar_archive.rb +0 -66
- /data/{ASSESSMENT.md → _claude/archives/ASSESSMENT.md} +0 -0
- /data/{MACROPLAN.md → _claude/archives/MACROPLAN.md} +0 -0
- /data/{docs/superpowers → _claude/archives}/plans/2026-04-16-container-integration-tests.md +0 -0
- /data/{docs → _claude/archives}/tarvault-findings.md +0 -0
- /data/{docs → _claude/archives}/tarvault.md +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
require "rake/clean"
|
|
2
|
+
require "bundler/gem_tasks"
|
|
3
|
+
require "rspec/core/rake_task"
|
|
4
|
+
require "rubocop/rake_task"
|
|
5
|
+
require "open3"
|
|
6
|
+
|
|
7
|
+
def gemvault_contains?(gemvault_file, gem)
|
|
8
|
+
response, status = Open3.capture2e("gemvault", "list", gemvault_file)
|
|
9
|
+
unless status.success?
|
|
10
|
+
warn "Failed to list gems in vault:"
|
|
11
|
+
warn response
|
|
12
|
+
exit 1
|
|
13
|
+
end
|
|
14
|
+
gems = response.lines(chomp: true)
|
|
15
|
+
gemname_and_version = Pathname(gem).basename.sub_ext("").to_s
|
|
16
|
+
gems.include?(gemname_and_version)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def in_root_dir(&)
|
|
20
|
+
chdir(Bundler.root, &)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def gemvault(*, **)
|
|
24
|
+
sh "gemvault", *, **
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
|
28
|
+
spec.pattern = FileList["spec/**/*_spec.rb"]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
RuboCop::RakeTask.new
|
|
32
|
+
CLOBBER.include "dist"
|
|
33
|
+
|
|
34
|
+
desc "Generate a new cop with a template"
|
|
35
|
+
task :new_cop, [:cop] do |_task, args|
|
|
36
|
+
require "rubocop"
|
|
37
|
+
|
|
38
|
+
cop_name = args.fetch(:cop) do
|
|
39
|
+
warn "usage: bundle exec rake new_cop[Department/Name]"
|
|
40
|
+
exit!
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
generator = RuboCop::Cop::Generator.new(cop_name)
|
|
44
|
+
generator.write_source
|
|
45
|
+
generator.write_spec
|
|
46
|
+
generator.inject_require(root_file_path: "lib/rubocop/cop/kaizo_cops.rb")
|
|
47
|
+
generator.inject_config(config_file_path: "config/default.yml")
|
|
48
|
+
|
|
49
|
+
puts generator.todo
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
directory "dist" do
|
|
53
|
+
mkdir "dist"
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
file "dist/vault.gemv" => "dist" do
|
|
57
|
+
in_root_dir do
|
|
58
|
+
gemvault "new", "dist/vault.gemv"
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
ENV["gem_push"] = "0"
|
|
63
|
+
namespace :release do
|
|
64
|
+
desc "release to a vault"
|
|
65
|
+
task vault: ["dist/vault.gemv", :build] do
|
|
66
|
+
FileList["pkg/*.gem"].each do |v|
|
|
67
|
+
in_root_dir do
|
|
68
|
+
gemvault "add", "dist/vault.gemv", v unless gemvault_contains? "dist/vault.gemv", v
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
Rake::Task[:release].enhance ["release:vault"]
|
|
75
|
+
|
|
76
|
+
task default: [:spec, :rubocop]
|