Checking in a change

We aim never to break the build. That is, all the unit tests should run before you check in a change.

In order to do this we usually:

  • Check that all unit tests pass.
  • Add a description of the change to the ChangeLog
  • Check in the change, using the description as the check in message.

the easy way

There's now a handy rake task to to make this simpler and more consistent:

earth $ rake ci
(in /Users/lachie/rsp/earth)
UNABLE TO COMMIT (please set checkin message MSG)
M    app/models/earth/file.rb

In order actually to check in your change:

earth $ rake ci MSG="Added pressure valves to file API"
(in /Users/lachie/rsp/earth)
NOTICE:  CREATE TABLE will create implicit sequence "directories_id_seq" for serial column "directories.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "directories_pkey" for table "directories"
NOTICE:  CREATE TABLE will create implicit sequence "files_id_seq" for serial column "files.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "files_pkey" for table "files"
NOTICE:  CREATE TABLE will create implicit sequence "metadata_attributes_id_seq" for serial column "metadata_attributes.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "metadata_attributes_pkey" for table "metadata_attributes"
NOTICE:  CREATE TABLE will create implicit sequence "metadata_strings_id_seq" for serial column "metadata_strings.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "metadata_strings_pkey" for table "metadata_strings"
NOTICE:  CREATE TABLE will create implicit sequence "plugin_descriptors_id_seq" for serial column "plugin_descriptors.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "plugin_descriptors_pkey" for table "plugin_descriptors"
NOTICE:  CREATE TABLE will create implicit sequence "servers_id_seq" for serial column "servers.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "servers_pkey" for table "servers"
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader.rb" "test/unit/directory_test.rb" "test/unit/earth_plugin_test.rb" "test/unit/file_monitor_test.rb" "test/unit/file_test.rb" "test/unit/helpers/directories_helper_test.rb" "test/unit/helpers/graph_helper_test.rb" "test/unit/quote_bad_characters_test.rb" "test/unit/server_test.rb" "test/unit/user_ldap_test.rb" "test/unit/user_test.rb" 
(in /Users/lachie/rsp/earth)
Loaded suite /opt/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader
Started
....................................................................................
Finished in 7.993118 seconds.

84 tests, 2671 assertions, 0 failures, 0 errors
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader.rb" "test/functional/browser_controller_test.rb" "test/functional/graph_controller_test.rb" "test/functional/servers_controller_test.rb" 
Loaded suite /opt/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader
Started
.....................
Finished in 3.819124 seconds.

21 tests, 95 assertions, 0 failures, 0 errors
/opt/local/bin/ruby -Ilib:test "/opt/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake/rake_test_loader.rb"  
Sending        app/models/earth/file.rb
Transmitting file data ..
Committed revision 1177.