tetra 0.49.0 → 0.50.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.
- data/.rubocop.yml +2 -2
- data/SPECIAL_CASES.md +20 -8
- data/integration-tests/build-commons.sh +5 -10
- data/lib/template/kit.spec +1 -1
- data/lib/template/package.spec +7 -1
- data/lib/tetra.rb +1 -2
- data/lib/tetra/facades/git.rb +39 -18
- data/lib/tetra/facades/process_runner.rb +13 -4
- data/lib/tetra/main.rb +6 -0
- data/lib/tetra/packages/kit_package.rb +0 -6
- data/lib/tetra/packages/package.rb +4 -6
- data/lib/tetra/pom.rb +2 -5
- data/lib/tetra/project.rb +85 -30
- data/lib/tetra/ui/ant_subcommand.rb +1 -1
- data/lib/tetra/ui/dry_run_subcommand.rb +36 -22
- data/lib/tetra/ui/generate_all_subcommand.rb +1 -1
- data/lib/tetra/ui/generate_archive_subcommand.rb +2 -2
- data/lib/tetra/ui/generate_kit_subcommand.rb +2 -2
- data/lib/tetra/ui/generate_script_subcommand.rb +1 -1
- data/lib/tetra/ui/generate_spec_subcommand.rb +10 -3
- data/lib/tetra/ui/get_pom_subcommand.rb +18 -16
- data/lib/tetra/ui/move_jars_to_kit_subcommand.rb +1 -1
- data/lib/tetra/ui/mvn_subcommand.rb +1 -1
- data/lib/tetra/ui/patch_subcommand.rb +18 -0
- data/lib/tetra/ui/subcommand.rb +14 -5
- data/lib/tetra/version.rb +1 -1
- data/spec/lib/git_spec.rb +69 -30
- data/spec/lib/kit_package_spec.rb +0 -16
- data/spec/lib/{built_package_spec.rb → package_spec.rb} +2 -15
- data/spec/lib/project_spec.rb +56 -13
- data/spec/lib/{speccable.rb → speccable_spec.rb} +5 -5
- metadata +5 -9
- data/integration-tests/apache-maven-3.1.1-bin.zip +0 -0
- data/integration-tests/build-obs.sh +0 -19
- data/lib/tetra/facades/tar.rb +0 -20
- data/lib/tetra/packages/archivable.rb +0 -18
- data/spec/lib/archivable_spec.rb +0 -36
data/spec/lib/project_spec.rb
CHANGED
@@ -83,7 +83,20 @@ describe Tetra::Project do
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
-
describe "#
|
86
|
+
describe "#src_patched?" do
|
87
|
+
it "checks whether src is dirty" do
|
88
|
+
@project.from_directory do
|
89
|
+
@project.dry_run
|
90
|
+
@project.finish
|
91
|
+
expect(@project.src_patched?).to be_falsey
|
92
|
+
|
93
|
+
FileUtils.touch(File.join("src", "test"))
|
94
|
+
expect(@project.src_patched?).to be_truthy
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "#commit_whole_directory" do
|
87
100
|
it "commits the project contents to git for later use" do
|
88
101
|
@project.from_directory do
|
89
102
|
FileUtils.touch(File.join("kit", "test"))
|
@@ -93,7 +106,7 @@ describe Tetra::Project do
|
|
93
106
|
file.write "file"
|
94
107
|
end
|
95
108
|
|
96
|
-
@project.
|
109
|
+
@project.commit_whole_directory(".", "test")
|
97
110
|
|
98
111
|
files = `git ls-tree --name-only -r HEAD`.split("\n")
|
99
112
|
expect(files).to include("src/.gitignore_disabled_by_tetra")
|
@@ -109,9 +122,6 @@ describe Tetra::Project do
|
|
109
122
|
File.open(File.join("src", "test"), "w") { |f| f.write("A") }
|
110
123
|
end
|
111
124
|
|
112
|
-
expect(@project.abort).to be_falsey
|
113
|
-
expect(@project.finish).to be_falsey
|
114
|
-
|
115
125
|
expect(@project.dry_run).to be_truthy
|
116
126
|
|
117
127
|
@project.from_directory do
|
@@ -123,11 +133,13 @@ describe Tetra::Project do
|
|
123
133
|
expect(@project.dry_running?).to be_falsey
|
124
134
|
|
125
135
|
@project.from_directory do
|
126
|
-
expect(`git rev-list --all`.split("\n").length).to eq
|
136
|
+
expect(`git rev-list --all`.split("\n").length).to eq 3
|
127
137
|
expect(File.read("src/test")).to eq "A"
|
128
138
|
|
129
|
-
expect(`git diff-tree --no-commit-id --name-only -r HEAD~`.split("\n")).to include("src/
|
139
|
+
expect(`git diff-tree --no-commit-id --name-only -r HEAD~`.split("\n")).to include("src/test")
|
130
140
|
expect(File.exist?("src/test2")).to be_falsey
|
141
|
+
|
142
|
+
expect(`git show HEAD`.split("\n").map(&:strip)).to include("tetra: file-changed: src/test")
|
131
143
|
end
|
132
144
|
end
|
133
145
|
it "ends the current dry-run phase after a failed build" do
|
@@ -136,9 +148,6 @@ describe Tetra::Project do
|
|
136
148
|
File.open(File.join("kit", "test"), "w") { |f| f.write("A") }
|
137
149
|
end
|
138
150
|
|
139
|
-
expect(@project.abort).to be_falsey
|
140
|
-
expect(@project.finish).to be_falsey
|
141
|
-
|
142
151
|
expect(@project.dry_run).to be_truthy
|
143
152
|
|
144
153
|
@project.from_directory do
|
@@ -164,8 +173,6 @@ describe Tetra::Project do
|
|
164
173
|
|
165
174
|
describe "#dry_run" do
|
166
175
|
it "starts a dry running phase" do
|
167
|
-
expect(@project.finish).to be_falsey
|
168
|
-
|
169
176
|
@project.from_directory do
|
170
177
|
FileUtils.touch(File.join("src", "test"))
|
171
178
|
end
|
@@ -210,12 +217,48 @@ describe Tetra::Project do
|
|
210
217
|
end
|
211
218
|
end
|
212
219
|
|
220
|
+
describe "#archive_source" do
|
221
|
+
it "archives the latest source version" do
|
222
|
+
@project.from_directory do
|
223
|
+
FileUtils.touch(File.join("src", "Included.java"))
|
224
|
+
@project.commit_sources("first version", true)
|
225
|
+
|
226
|
+
FileUtils.touch(File.join("src", "Excluded.java"))
|
227
|
+
@project.commit_sources("patched version")
|
228
|
+
|
229
|
+
@project.archive_sources
|
230
|
+
|
231
|
+
file_list = `tar --list -f packages/test-project/test-project.tar.xz`.split
|
232
|
+
expect(file_list).to include("src/Included.java")
|
233
|
+
expect(file_list).not_to include("src/Excluded.java")
|
234
|
+
end
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
describe "#write_source_patches" do
|
239
|
+
it "writes patches from the tarball generated by archive_source" do
|
240
|
+
@project.from_directory do
|
241
|
+
test_file = File.join("src", "Test.java")
|
242
|
+
FileUtils.touch(test_file)
|
243
|
+
@project.commit_sources("first version", true)
|
244
|
+
|
245
|
+
File.open(test_file, "w") { |f| f.write("A") }
|
246
|
+
@project.commit_sources("patched version")
|
247
|
+
|
248
|
+
patches = @project.write_source_patches.map { |f| File.basename(f) }
|
249
|
+
expect(patches).to include("0001-patched-version.patch")
|
250
|
+
|
251
|
+
patch_contents = File.readlines(File.join("packages", "test-project", "0001-patched-version.patch"))
|
252
|
+
expect(patch_contents).to include("--- a/#{test_file}\n")
|
253
|
+
end
|
254
|
+
end
|
255
|
+
end
|
256
|
+
|
213
257
|
describe "#purge_jars" do
|
214
258
|
it "moves jars in kit/jars" do
|
215
259
|
@project.from_directory do
|
216
260
|
File.open(File.join("src", "test.jar"), "w") { |f| f.write("jarring") }
|
217
261
|
end
|
218
|
-
expect(@project.finish).to be_falsey
|
219
262
|
|
220
263
|
@project.purge_jars
|
221
264
|
|
@@ -34,7 +34,7 @@ describe Tetra::Speccable do
|
|
34
34
|
|
35
35
|
describe "#to_spec" do
|
36
36
|
it "generates a first version" do
|
37
|
-
expect(instance._to_spec(@project, "test-package", "
|
37
|
+
expect(instance._to_spec(@project, "test-package", "test.spec", "output")).to be_truthy
|
38
38
|
|
39
39
|
@project.from_directory do
|
40
40
|
spec_lines = File.readlines(@destination_path)
|
@@ -43,7 +43,7 @@ describe Tetra::Speccable do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
it "generates a second version" do
|
46
|
-
expect(instance._to_spec(@project, "test-package", "
|
46
|
+
expect(instance._to_spec(@project, "test-package", "test.spec", "output")).to be_truthy
|
47
47
|
|
48
48
|
@project.from_directory do
|
49
49
|
File.open(@destination_path, "a") do |io|
|
@@ -53,7 +53,7 @@ describe Tetra::Speccable do
|
|
53
53
|
|
54
54
|
instance.world_property = "Mario!"
|
55
55
|
|
56
|
-
expect(instance._to_spec(@project, "test-package", "
|
56
|
+
expect(instance._to_spec(@project, "test-package", "test.spec", "output")).to be_truthy
|
57
57
|
|
58
58
|
@project.from_directory do
|
59
59
|
spec_lines = File.readlines(@destination_path)
|
@@ -64,7 +64,7 @@ describe Tetra::Speccable do
|
|
64
64
|
end
|
65
65
|
|
66
66
|
it "generates a conflicting version" do
|
67
|
-
expect(instance._to_spec(@project, "test-package", "
|
67
|
+
expect(instance._to_spec(@project, "test-package", "test.spec", "output")).to be_truthy
|
68
68
|
|
69
69
|
@project.from_directory do
|
70
70
|
spec_contents = File.read(@destination_path)
|
@@ -77,7 +77,7 @@ describe Tetra::Speccable do
|
|
77
77
|
|
78
78
|
instance.world_property = "Mario!"
|
79
79
|
|
80
|
-
expect(instance._to_spec(@project, "test-package", "
|
80
|
+
expect(instance._to_spec(@project, "test-package", "test.spec", "output")).to be_truthy
|
81
81
|
|
82
82
|
@project.from_directory do
|
83
83
|
spec_lines = File.readlines(@destination_path)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tetra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.50.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-02-
|
12
|
+
date: 2015-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -174,9 +174,7 @@ files:
|
|
174
174
|
- Rakefile
|
175
175
|
- SPECIAL_CASES.md
|
176
176
|
- bin/tetra
|
177
|
-
- integration-tests/apache-maven-3.1.1-bin.zip
|
178
177
|
- integration-tests/build-commons.sh
|
179
|
-
- integration-tests/build-obs.sh
|
180
178
|
- integration-tests/commons-collections-3.2.1-src.zip
|
181
179
|
- lib/template/bundled/apache-ant-1.9.4/INSTALL
|
182
180
|
- lib/template/bundled/apache-ant-1.9.4/KEYS
|
@@ -357,12 +355,10 @@ files:
|
|
357
355
|
- lib/tetra/facades/git.rb
|
358
356
|
- lib/tetra/facades/mvn.rb
|
359
357
|
- lib/tetra/facades/process_runner.rb
|
360
|
-
- lib/tetra/facades/tar.rb
|
361
358
|
- lib/tetra/kit.rb
|
362
359
|
- lib/tetra/logger.rb
|
363
360
|
- lib/tetra/main.rb
|
364
361
|
- lib/tetra/maven_website.rb
|
365
|
-
- lib/tetra/packages/archivable.rb
|
366
362
|
- lib/tetra/packages/kit_package.rb
|
367
363
|
- lib/tetra/packages/package.rb
|
368
364
|
- lib/tetra/packages/scriptable.rb
|
@@ -381,6 +377,7 @@ files:
|
|
381
377
|
- lib/tetra/ui/init_subcommand.rb
|
382
378
|
- lib/tetra/ui/move_jars_to_kit_subcommand.rb
|
383
379
|
- lib/tetra/ui/mvn_subcommand.rb
|
380
|
+
- lib/tetra/ui/patch_subcommand.rb
|
384
381
|
- lib/tetra/ui/subcommand.rb
|
385
382
|
- lib/tetra/version.rb
|
386
383
|
- lib/tetra/version_matcher.rb
|
@@ -401,18 +398,17 @@ files:
|
|
401
398
|
- spec/data/struts-apps/pom.xml
|
402
399
|
- spec/data/tomcat/pom.xml
|
403
400
|
- spec/lib/ant_spec.rb
|
404
|
-
- spec/lib/archivable_spec.rb
|
405
|
-
- spec/lib/built_package_spec.rb
|
406
401
|
- spec/lib/git_spec.rb
|
407
402
|
- spec/lib/kit_package_spec.rb
|
408
403
|
- spec/lib/kit_spec.rb
|
409
404
|
- spec/lib/maven_website_spec.rb
|
410
405
|
- spec/lib/mvn_spec.rb
|
406
|
+
- spec/lib/package_spec.rb
|
411
407
|
- spec/lib/pom_getter_spec.rb
|
412
408
|
- spec/lib/pom_spec.rb
|
413
409
|
- spec/lib/project_spec.rb
|
414
410
|
- spec/lib/scriptable_spec.rb
|
415
|
-
- spec/lib/
|
411
|
+
- spec/lib/speccable_spec.rb
|
416
412
|
- spec/lib/version_matcher_spec.rb
|
417
413
|
- spec/spec_helper.rb
|
418
414
|
- tetra.gemspec
|
Binary file
|
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
# A crude integration test that tries OBS building
|
4
|
-
# assumes an OpenSUSE host is set up with passwordless SSH access
|
5
|
-
# assumes this host has osc installed and properly configured in sudoers
|
6
|
-
# assumes that a project directory exists
|
7
|
-
|
8
|
-
set -e
|
9
|
-
|
10
|
-
OBS_HOST=obs-client
|
11
|
-
OBS_PROJECT_DIR=/home/silvio/obs/home\:SilvioMoioli\:tetra-test
|
12
|
-
|
13
|
-
scp -r commons-collections/packages/* $OBS_HOST:/$OBS_PROJECT_DIR
|
14
|
-
ssh -t $OBS_HOST <<EOF
|
15
|
-
cd $OBS_PROJECT_DIR/commons-collections-kit &&\
|
16
|
-
osc build -k../../rpms -p../../rpms &&\
|
17
|
-
cd $OBS_PROJECT_DIR/commons-collections &&\
|
18
|
-
osc build -k../../rpms -p../../rpms
|
19
|
-
EOF
|
data/lib/tetra/facades/tar.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module Tetra
|
4
|
-
# facade to tar
|
5
|
-
class Tar
|
6
|
-
include Logging
|
7
|
-
include ProcessRunner
|
8
|
-
|
9
|
-
def archive(name, source_dir, destination_dir)
|
10
|
-
log.debug("creating #{destination_dir}")
|
11
|
-
FileUtils.mkdir_p(destination_dir)
|
12
|
-
|
13
|
-
destination_path = File.join(destination_dir, "#{name}.tar.xz")
|
14
|
-
|
15
|
-
run("tar -cJf #{destination_path} -C #{source_dir} .")
|
16
|
-
|
17
|
-
destination_path
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module Tetra
|
4
|
-
# adds methods to generate a tarball from a package object
|
5
|
-
module Archivable
|
6
|
-
include Logging
|
7
|
-
|
8
|
-
# generates an archive and returns its name
|
9
|
-
# this will archive files in source_dir in
|
10
|
-
# destination_dir/name/name.tar.xz
|
11
|
-
def _to_archive(project, name, source_dir, destination_dir)
|
12
|
-
project.from_directory do
|
13
|
-
full_destination_dir = File.join(destination_dir, name)
|
14
|
-
Tetra::Tar.new.archive(name, source_dir, full_destination_dir)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/spec/lib/archivable_spec.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
require "spec_helper"
|
4
|
-
|
5
|
-
describe Tetra::Archivable do
|
6
|
-
include Tetra::Mockers
|
7
|
-
|
8
|
-
# mock
|
9
|
-
class TestArchivableClass
|
10
|
-
include Tetra::Archivable
|
11
|
-
end
|
12
|
-
|
13
|
-
before(:each) do
|
14
|
-
create_mock_project
|
15
|
-
end
|
16
|
-
|
17
|
-
let(:instance) { TestArchivableClass.new }
|
18
|
-
|
19
|
-
after(:each) do
|
20
|
-
delete_mock_project
|
21
|
-
end
|
22
|
-
|
23
|
-
describe "#to_archive" do
|
24
|
-
it "generates an archive" do
|
25
|
-
@project.from_directory("kit") do
|
26
|
-
FileUtils.touch("kit_test")
|
27
|
-
end
|
28
|
-
|
29
|
-
instance._to_archive(@project, "test-package", "kit", @project.packages_dir)
|
30
|
-
|
31
|
-
@project.from_directory do
|
32
|
-
expect(`tar -Jtf packages/test-package/test-package.tar.xz`.split).to include("./kit_test")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|