chemistrykit 2.0.0 → 2.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.
@@ -0,0 +1 @@
1
+ chemistrykit
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p429
@@ -1,7 +1,19 @@
1
+ #2.1.0 (2013-06-28)
2
+ - Updated documentation for #62 release process.
3
+ - Bumped version to 2.1.0 to prepare for release.
4
+ - Changed the oder of branch updates in rakefile #62
5
+ - #62 fixed another small issue with rakefile
6
+ - fixed small typo in Rakefile per #62
7
+ - updated a note to the change log and built out the rake tasks to close #62
8
+ - updated gemspec to remove the ext, cleaned up the base class.
9
+ - updated rvm version files and removed the ext directory
10
+ - moved the build dir deletion to the before so that post test inspection could be carried out, also added a rough implementation to close #63
11
+
1
12
  #2.0.0 (2013-06-27)
2
13
  - Updated to Selenium-Connect version to 2.0.0
3
14
  - Improved performance with driver hooks
4
15
  - Added the ability to specify config files on brew.
16
+ - NOTE: Updated default config file from `_config.yaml` to `config.yaml`
5
17
  - Added the "catalyst" concept for injecting data into formulas.
6
18
 
7
19
  #1.3.0 (2013-06-22)
data/README.md CHANGED
@@ -56,3 +56,14 @@ All issues and questions related to this project should be logged using the [git
56
56
  ### Run the local version of the executable:
57
57
 
58
58
  ckit
59
+
60
+ ##Releaseing
61
+ The release process is rather automated, just use one rake task with the new version number:
62
+
63
+ rake release_start['2.1.0']
64
+
65
+ And another to finish the release:
66
+
67
+ rake release_finish['A helpful tag message that will be included in the gemspec.']
68
+
69
+ This handles updating the change log, committing, and tagging the release.
data/Rakefile CHANGED
@@ -23,3 +23,97 @@ end
23
23
  RSpec::Core::RakeTask.new(:spec)
24
24
 
25
25
  Cucumber::Rake::Task.new(:cucumber)
26
+
27
+
28
+ #TODO This could probablly be more cleanly automated
29
+ desc 'Start a release (Requires Git Flow)'
30
+ task :release_start, :version do |t, args|
31
+ version = args['version']
32
+
33
+ #make sure we have the latest stuff
34
+ system "git fetch --all"
35
+
36
+ #first make sure master is checked out and up to date
37
+ system "git checkout master"
38
+ system "git pull --no-edit origin master"
39
+
40
+ #then make sure develop is up to date
41
+ system "git checkout develop"
42
+ system "git pull --no-edit origin develop"
43
+
44
+ #next assure all the tests run
45
+ task(:build).invoke
46
+
47
+ #start the release process
48
+ system "git flow release start #{version}"
49
+
50
+ #update the version number in the .gemspec file
51
+ gemspec = File.join(Dir.getwd, 'chemistrykit.gemspec')
52
+ updated = File.read(gemspec).gsub(/s.version(\s+)=(\s?["|']).+(["|'])/){
53
+ "s.version#{$1}=#{$2}#{version}#{$3}"
54
+ }
55
+ File.open(gemspec, 'w'){ |f| f.write(updated) }
56
+
57
+ #commit the version bump
58
+ system "git add chemistrykit.gemspec"
59
+ system "git commit -m 'Bumped version to #{version} to prepare for release.'"
60
+
61
+ puts "You've started release #{version}, make any last minute updates now.\n"
62
+ end
63
+
64
+ #TODO This could probablly be more cleanly automated
65
+ desc 'Finish a release (Requires Git Flow and Gem Deploy Permissions'
66
+ task :release_finish, :update_message do |t, args|
67
+ message = args['update_message']
68
+ gemspec = File.join(Dir.getwd, 'chemistrykit.gemspec')
69
+ changelog = File.join(Dir.getwd, 'CHANGELOG.md')
70
+ version = File.read(gemspec).match(/s.version\s+=\s?["|'](.+)["|']/)[1]
71
+
72
+ ###Changelog
73
+ #get the latest tag
74
+ last_tag = `git describe --abbrev=0`
75
+ #get the commit hash since the last that version was merged to develop
76
+ hash = `git log --grep="Merge branch 'release/#{last_tag.chomp}' into develop" --format="%H"`
77
+ #get all the commits since them less merges
78
+ log = `git log --format="- %s" --no-merges #{hash.chomp}..HEAD`
79
+
80
+ changelog_contents = File.read(changelog)
81
+ date = Time.new.strftime("%Y-%m-%d")
82
+ #create the new heading
83
+ updated_changelog = "##{version} (#{date})\n" + log + "\n" + changelog_contents
84
+ #update the contents
85
+ File.open(changelog, 'w'){ |f| f.write(updated_changelog) }
86
+ puts "Updated change log for version #{version}\n"
87
+
88
+ ###Update the gemspec with the message
89
+ updated_gemspec = File.read(gemspec).gsub(/s.description(\s+)=(\s?["|']).+(["|'])/){
90
+ "s.description#{$1}=#{$2}#{message}#{$3}"
91
+ }
92
+ File.open(gemspec, 'w'){ |f| f.write(updated_gemspec) }
93
+
94
+ #Commit the updated change log and gemspec
95
+ system "git commit -am 'Updated CHANGELOG.md and gemspec for #{version} release.'"
96
+
97
+ #build the gem
98
+ system "gem build chemistrykit.gemspec"
99
+
100
+ #push the gem
101
+ system "gem push chemistrykit-#{version}.gem"
102
+
103
+ #remove the gem file
104
+ system "rm chemistrykit-#{version}.gem"
105
+
106
+ #finish the release
107
+ system "git flow release finish -m '#{message}' #{version}"
108
+
109
+ #push develop
110
+ system "git push origin develop"
111
+
112
+ #push master
113
+ system "git push origin master"
114
+
115
+ #push tags
116
+ system "git push --tags"
117
+
118
+ puts "Rock and roll, you just released ChemistryKit #{version}!\n"
119
+ end
@@ -1,12 +1,12 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "chemistrykit"
3
- s.version = "2.0.0"
3
+ s.version = "2.1.0"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.authors = ["Dave Haeffner", "Jason Fox"]
6
6
  s.email = ["dave@arrgyle.com", "jason@arrgyle.com"]
7
7
  s.homepage = "https://github.com/arrgyle/chemistrykit"
8
8
  s.summary = "A simple and opinionated web testing framework for Selenium that follows convention over configuration."
9
- s.description = "Added catalyst data injection, multiple configuration usage, improved perfomrance."
9
+ s.description = "Automated build process"
10
10
  s.license = 'MIT'
11
11
 
12
12
  s.files = `git ls-files`.split($/)
@@ -28,6 +28,4 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency "aruba", "~> 0.5.1"
29
29
  s.add_development_dependency "cucumber", "~> 1.2.1"
30
30
  s.add_development_dependency "rake", "~> 10.0.3"
31
-
32
- s.extensions = 'ext/mkrf_conf.rb'
33
31
  end
@@ -58,3 +58,24 @@ Feature: Brewing a ChemistryKit project
58
58
  """
59
59
  When I run `ckit brew`
60
60
  Then the stdout should contain "1 example, 0 failures"
61
+
62
+ Scenario: Brew a single beaker
63
+ Given a file named "config.yaml" with:
64
+ """
65
+ jar: '../../../vendor/selenium-server-standalone-2.33.0.jar'
66
+ log: 'evidence'
67
+ host: 'localhost'
68
+ """
69
+ And a file named "beaker/other_beaker.rb" with:
70
+ """
71
+ describe "Other", :depth => 'shallow' do
72
+ let(:book) { Formulas::Bookie.new(@driver) }
73
+
74
+ it "loads an external web page" do
75
+ book.open "http://www.google.com"
76
+ end
77
+ end
78
+ """
79
+ When I run `ckit brew --beaker=beaker/other_beaker.rb`
80
+ Then the stdout should contain "1 example, 0 failures"
81
+
@@ -1,10 +1,7 @@
1
1
  require 'aruba/cucumber'
2
2
 
3
3
  Before do
4
+ FileUtils.rm_rf("build/tmp")
4
5
  @aruba_timeout_seconds = 90
5
6
  @dirs = ["build/tmp"]
6
7
  end
7
-
8
- After do
9
- FileUtils.rm_rf("build/tmp")
10
- end
@@ -29,6 +29,9 @@ module ChemistryKit
29
29
  method_option :params, :type => :hash
30
30
  method_option :tag, :default => ['depth:shallow'], :type => :array
31
31
  method_option :config, :default => 'config.yaml', :aliases => "-c", :desc => "Supply alternative config file."
32
+ #TODO there should be a facility to simply pass a path to this command
33
+ method_option :beaker, :type => :string
34
+
32
35
  def brew
33
36
  load_config
34
37
  require 'chemistrykit/shared_context'
@@ -38,7 +41,12 @@ module ChemistryKit
38
41
  load_page_objects
39
42
  setup_tags
40
43
  rspec_config
41
- run_rspec
44
+
45
+ if options['beaker']
46
+ run_rspec([options['beaker']])
47
+ else
48
+ run_rspec(Dir.glob(File.join(Dir.getwd)))
49
+ end
42
50
  end
43
51
 
44
52
  protected
@@ -95,8 +103,11 @@ module ChemistryKit
95
103
  end
96
104
  end
97
105
 
98
- def run_rspec
99
- RSpec::Core::Runner.run(Dir.glob(File.join(Dir.getwd)))
106
+ def run_rspec(beakers)
107
+
108
+ #puts single_beaker.inspect
109
+
110
+ RSpec::Core::Runner.run(beakers)
100
111
  end
101
112
 
102
113
  end
@@ -12,10 +12,6 @@ module ChemistryKit
12
12
  self.catalyst = ChemistryKit::Catalyst.new(path_to_file)
13
13
  end
14
14
 
15
- def catalyst
16
- @catalyst
17
- end
18
-
19
15
  end #Base
20
16
  end #Formula
21
17
  end #ChemistryKit
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chemistrykit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-06-27 00:00:00.000000000 Z
13
+ date: 2013-06-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
@@ -172,19 +172,19 @@ dependencies:
172
172
  - - ~>
173
173
  - !ruby/object:Gem::Version
174
174
  version: 10.0.3
175
- description: Added catalyst data injection, multiple configuration usage, improved
176
- perfomrance.
175
+ description: Automated build process
177
176
  email:
178
177
  - dave@arrgyle.com
179
178
  - jason@arrgyle.com
180
179
  executables:
181
180
  - ckit
182
- extensions:
183
- - ext/mkrf_conf.rb
181
+ extensions: []
184
182
  extra_rdoc_files: []
185
183
  files:
186
184
  - .gitignore
187
185
  - .rspec
186
+ - .ruby-gemset
187
+ - .ruby-version
188
188
  - .travis.yml
189
189
  - CHANGELOG.md
190
190
  - CONTRIBUTORS.md
@@ -195,7 +195,6 @@ files:
195
195
  - TODO.md
196
196
  - bin/ckit
197
197
  - chemistrykit.gemspec
198
- - ext/mkrf_conf.rb
199
198
  - features/brew.feature
200
199
  - features/catalyst.feature
201
200
  - features/exit_status.feature
@@ -246,6 +245,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
245
  - - ! '>='
247
246
  - !ruby/object:Gem::Version
248
247
  version: '0'
248
+ segments:
249
+ - 0
250
+ hash: 3509311149288293585
249
251
  requirements: []
250
252
  rubyforge_project:
251
253
  rubygems_version: 1.8.25
@@ -1,22 +0,0 @@
1
- require 'rubygems'
2
- require 'rubygems/command.rb'
3
- require 'rubygems/dependency_installer.rb'
4
- require 'rbconfig'
5
-
6
- begin
7
- Gem::Command.build_args = ARGV
8
- rescue NoMethodError
9
- end
10
-
11
- inst = Gem::DependencyInstaller.new
12
- begin
13
- if RbConfig::CONFIG['host_os'] =~ /mswin|win|mingw/
14
- inst.install "win32-dir", "~> 0.4.1"
15
- end
16
- rescue
17
- exit(1)
18
- end
19
-
20
- f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
21
- f.write("task :default\n")
22
- f.close