bard 0.8.20 → 0.8.21

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.
@@ -1,3 +1,3 @@
1
1
  [submodule "fixtures/repo"]
2
2
  path = fixtures/repo
3
- url = staging@staging.botandrose.com:bard/fixtures/repo
3
+ url = git@git.botandrose.com:bard_fixtures_repo.git
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.20
1
+ 0.8.21
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{bard}
8
- s.version = "0.8.20"
8
+ s.version = "0.8.21"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Micah Geisel", "Nick Hogle"]
12
- s.date = %q{2010-02-28}
12
+ s.date = %q{2010-03-02}
13
13
  s.default_executable = %q{bard}
14
14
  s.description = %q{This immaculate work of engineering genius allows mere mortals to collaborate with beings of transcendent intelligence like Micah, Michael, and Nick.}
15
15
  s.email = %q{info@botandrose.com}
@@ -65,8 +65,8 @@ Gem::Specification.new do |s|
65
65
  s.rubygems_version = %q{1.3.5}
66
66
  s.summary = %q{Tools for collaborating with Bot and Rose Design.}
67
67
  s.test_files = [
68
- "spec/bard_spec.rb",
69
- "spec/spec_helper.rb"
68
+ "spec/spec_helper.rb",
69
+ "spec/bard_spec.rb"
70
70
  ]
71
71
 
72
72
  if s.respond_to? :specification_version then
@@ -53,7 +53,7 @@ Feature: Bard can check its environment for missing dependencies and potential p
53
53
 
54
54
  Scenario: Bard check detects master branch checked out
55
55
  Given a shared rails project
56
- And I am on the master branch
56
+ And I am on the "master" branch
57
57
  When I type "bard check"
58
58
  Then I should see the fatal error "master branch"
59
59
 
@@ -2,7 +2,7 @@ Feature: Bard deploy should fold the integration branch into master and perform
2
2
 
3
3
  Scenario: Bard deploy detects non-fast-forward merge from integration to master
4
4
  Given a shared rails project
5
- And on development_b, a commit to the master branch
5
+ And on development_b, a commit on the "master" branch
6
6
  And on development_b, I type "git push origin master"
7
7
  And a commit
8
8
  When I type "bard deploy"
@@ -52,6 +52,14 @@ Feature: bard pull
52
52
  Then I should see the warning "Someone has pushed some changes"
53
53
  And the "integration" branch should be a fast-forward from the "development_b:integration" branch
54
54
 
55
+ Scenario: Bard pull from a topic branch
56
+ Given on development_b, a commit on the "topic" branch
57
+ And on development_b, I am on the "topic" branch
58
+ And on development_b, I type "bard push"
59
+ And I am on the "topic" branch
60
+ When I type "bard pull"
61
+ Then the "topic" branch should match the "development_b:topic" branch
62
+
55
63
  Scenario: Trying to bard pull when not in the project root
56
64
  Given I am in a subdirectory
57
65
  When I type "bard pull"
@@ -65,13 +73,14 @@ Feature: bard pull
65
73
  Then I should see the fatal error "You have uncommitted changes!"
66
74
  And the "integration" branch should not match the "development_b:integration" branch
67
75
 
68
- Scenario: Trying to bard pull when not on the integration branch
69
- Given on development_b, a commit
70
- And on development_b, I type "bard push"
71
- And I am on a non-integration branch
76
+ Scenario: Trying to bard pull when on the "master" branch
77
+ Given on development_b, a commit on the "master" branch
78
+ And on development_b, I am on the "master" branch
79
+ And on development_b, I type "git push origin master"
80
+ And I am on the "master" branch
72
81
  When I type "bard pull"
73
- Then I should see the fatal error "not on the integration branch"
74
- And the "integration" branch should not match the "development_b:integration" branch
82
+ Then I should see the fatal error "on the master branch"
83
+ And the "master" branch should not match the "development_b:master" branch
75
84
 
76
85
  Scenario: Pulling in a change that includes a migration on a dev machine
77
86
  Given on development_b, a commit with a new migration
@@ -8,6 +8,12 @@ Feature: bard push
8
8
  And on staging, I type "bard stage"
9
9
  Then the "integration" branch should match the "staging:integration" branch
10
10
 
11
+ Scenario: Uploading local changes onto a remote topic branch
12
+ Given a commit on the "topic" branch
13
+ And I am on the "topic" branch
14
+ When I type "bard push"
15
+ Then the "topic" branch should match the "origin/topic" branch
16
+
11
17
  Scenario: Pushing a change that includes a migration
12
18
  Given on staging, a staging database
13
19
  And a commit with a new migration
@@ -68,11 +74,11 @@ Feature: bard push
68
74
  Then I should see the fatal error "root directory"
69
75
 
70
76
  Scenario: Trying to bard push when not on the integration branch
71
- Given a commit
72
- And I am on a non-integration branch
77
+ Given a commit on the "master" branch
78
+ And I am on the "master" branch
73
79
  When I type "bard push"
74
- Then I should see the fatal error "not on the integration branch"
75
- And the "integration" branch should not match the "origin/integration" branch
80
+ Then I should see the fatal error "on the master branch"
81
+ And the "master" branch should not match the "origin/master" branch
76
82
 
77
83
  Scenario: Trying to bard push with a dirty working directory
78
84
  Given a commit
@@ -1,9 +1,9 @@
1
- Given /^I am on a non\-integration branch$/ do
2
- type "git checkout -b bad_bad_bad"
3
- end
4
-
5
- Given /^I am on the master branch$/ do
6
- type "git checkout master"
1
+ Given /^I am on the "([^\"]+)" branch$/ do |branch|
2
+ if `git branch` =~ / #{branch}$/
3
+ type "git checkout #{branch}"
4
+ else
5
+ type "git checkout -b #{branch}"
6
+ end
7
7
  end
8
8
 
9
9
  Given /^there is no integration branch$/ do
@@ -28,12 +28,12 @@ Given /^a commit$/ do
28
28
  type "git commit -am'test commit'"
29
29
  end
30
30
 
31
- Given /^a commit to the master branch$/ do
31
+ Given /^a commit on the "([^\"]+)" branch$/ do |branch|
32
+ Given %(I am on the "#{branch}" branch)
32
33
  text = (rand * 100000000).round
33
- type "git checkout master"
34
- type "echo '#{text}' > master_#{text}_file"
34
+ type "echo '#{text}' > #{branch}_#{text}_file"
35
35
  type "git add ."
36
- type "git commit -am 'testing master change'"
36
+ type "git commit -am 'testing #{branch} change'"
37
37
  type "git checkout integration"
38
38
  end
39
39
 
@@ -33,7 +33,12 @@ Dir.chdir 'tmp' do
33
33
  `git clone --recursive origin.git #{env}`
34
34
  Dir.chdir env do
35
35
  FileUtils.cp "config/database.sample.yml", "config/database.yml"
36
- `git checkout -b integration origin/integration` unless env == "production"
36
+ `grb track master`
37
+ `git checkout master`
38
+ unless env == "production"
39
+ `grb track integration`
40
+ `git checkout integration`
41
+ end
37
42
  end
38
43
  end
39
44
  FileUtils.mkdir "fixtures"
@@ -50,7 +50,7 @@ class Bard < Thor
50
50
 
51
51
  warn NonFastForwardError unless fast_forward_merge?
52
52
 
53
- run_crucial "git pull --rebase origin integration"
53
+ run_crucial "git pull --rebase origin #{current_branch}"
54
54
  run_crucial "rake bootstrap:test"
55
55
  end
56
56
 
@@ -62,7 +62,7 @@ class Bard < Thor
62
62
  raise SubmoduleUnpushedError if submodule_unpushed?
63
63
  raise NonFastForwardError unless fast_forward_merge?
64
64
 
65
- run_crucial "git push origin integration", true
65
+ run_crucial "git push origin #{current_branch}", true
66
66
 
67
67
  run_crucial_via_bard "bard stage"
68
68
  end
@@ -113,7 +113,7 @@ class Bard < Thor
113
113
  auto_update!
114
114
  check_dependencies
115
115
  raise NotInProjectRootError unless File.directory? ".git"
116
- raise NotOnIntegrationError unless current_branch == "integration"
116
+ raise OnMasterBranchError if current_branch == "master"
117
117
  raise WorkingTreeDirtyError unless `git status`.include? "working directory clean"
118
118
  end
119
119
  end
@@ -5,7 +5,7 @@ class Bard < Thor
5
5
  "NonFastForwardError" => "Someone has pushed some changes since you last pulled.\n Kindly run bard pull, ensure that your your changes still work, and try again",
6
6
  "MasterNonFastForwardError" => "The master branch has advanced since last deploy, probably due to a bugfix.\n Rebase your integration branch on top of it, and check for breakage.",
7
7
  "NotInProjectRootError" => "You are not in the project's root directory!",
8
- "NotOnIntegrationError" => "You are not on the integration branch!\n Type `git checkout integration` to switch to it. If you have made changes to your current branch, please see Micah for assistance.",
8
+ "OnMasterBranchError" => "You are on the master branch!\n This is almost always a bad idea. Please work on a topic branch. If you have made changes on this branch, please see Micah for assistance.",
9
9
  "WorkingTreeDirtyError" => "You have uncommitted changes!\n Please run git commit before attempting to push or pull.",
10
10
  "StagingDetachedHeadError" => "The staging server is on a detached HEAD!\n Please see Micah for assistance.",
11
11
  "TestsFailedError" => "Automated tests failed!\n See http://integrity.botandrose.com/ for more info."
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.20
4
+ version: 0.8.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-02-28 00:00:00 -08:00
13
+ date: 2010-03-02 00:00:00 -08:00
14
14
  default_executable: bard
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -181,5 +181,5 @@ signing_key:
181
181
  specification_version: 3
182
182
  summary: Tools for collaborating with Bot and Rose Design.
183
183
  test_files:
184
- - spec/bard_spec.rb
185
184
  - spec/spec_helper.rb
185
+ - spec/bard_spec.rb