<commit_before>RUDY, CHANGES



#### 0.9.0 (2009-06-??) ###############################

NOTE: This is a significant re-write from 0.8 (routines, metadata)

* FIXED: Routine blocks now process directives in the order their given (in Ruby 1.8 and 1.9). 
* FIXED: Ambiguity when specifying zone and region. Region is now based on the zone. 
* FIXED: Reboot routines are now fully supported
* CHANGE: Rudy::Machine.inspect now prints in a standard Ruby inspect format
* CHANGE: Routines have been completely rebuilt but should remain backwards compatible. 
* CHANGE: Now requires Rye 0.8 (pre_command_hook args change, parallel stuff, quietly)
* CHANGE: before / after routine actions are now used for dependencies.
* CHANGE: Removed script_local, after_local, before_local from passthrough routines syntax.
* CHANGE: Allowed before_local for startup routines
* CHANGE: Allowed before_local and before_remote for reboot routines
* CHANGE: Allowed after_local for shutdown routines
* CHANGE: Removed machines config (now recommend uploading local files)
* CHANGE: Group names now take the form: grp-us-east-1b-stage-app
* CHANGE: private keys are stored in ~/.ssh/
* CHANGE: Removed create_image and prepare_image actions from rudy-ec2
* CHANGE: local routine blocks now share a single Rye::Box instance (@instvars too...)
* CHANGE: remote routine blocks now share a single Rye::Set instance
* CHANGE: "privatekey" in accounts config is renamed to "pkey"
* ADDED: routines command for displaying available routines
* ADDED: "rudy init" now authorizes public keys for user@localhost
* ADDED: Parallel processing for remote machines
* ADDED: Routines now have access to $global and $option (which are frozen)

* TODO: Supply dns values in machines config
* TODO: Supply machines config to routines blocks with only the specific machine group context 
* TODO: Update ebstest and the arcade
* TODO: Disk syntax in the routines DSL will change. The DSL no longer accepts arguments, just the action (create, destroy, ...) and path. 
* TODO: Disk backups will be removed (temporarily -- probably until on of the early 1.x releases). 



#### 0.8.5 (2009-06-08) ###############################

* FIXED: Bug in DiskHelper. mount method tried to attach when already attached. 
* CHANGE: rudy config now displays account info (but keeps secret key hidden)
* CHANGE: defaults configuration has been removed from the default ~/.rudy/config. 
  It is now recommended to put it in the same place as machines, routines config.
* FIXED: Bug in addresses which prevented assigning elastic IP addresses. 


#### 0.8.4 (2009-06-04) ###############################

* FIXED: Fixed nil exception in fetch_machine_param
* CHANGE: Disabled check for private key for shutdown routine. 
  If the private key doesn't exist it prevents shutting down.
* CHANGE: Re-enabled the check to make sure command config is parsed only one time
* CHANGE: Some UI tweaks, some minor integration stuff with Rye
* CHANGE: Caesars::Config verbose mode is now enabled at Rudy verbose level 2


#### 0.8.3 (2009-06-03) ###############################

* CHANGE: Now requires rye-0.7.3 (disable_safe_mode method)
* CHANGE: Rye safe-mode is enabled after each routines script block to force disabling it
  explicitly in every block it's needed. 
* CHANGE: Removed grit dependency


#### 0.8.2 (2009-06-01) ###############################

* CHANGE: Removed release routine code (it's now a passthrough) and scmhelper. All release stuff should
  be implemented using the routine blocks. 
* CHANGE: Passthrough routines no longer check if machine group is running. 
* CHANGE: Local routines blocks now run from current working directory
* CHANGE: Removed SCM classes (moved logic to the Arcade)
* CHANGE: Moved examples to the Arcade (experimental)
* CHANGE: Command output in routines is now displayed only when verbose is 1 or more.
* ADDED: Routine blocks now receive command line options and arguments
* ADDED: Commands configuration now supports inline blocks
* ADDED: Rudy now looks for ~/.rudy/*.rb config files.


#### 0.8.1 (2009-05-18) ###############################

* FIXED: The shutdown routine was not working for Windows instances

#### 0.8.0 (2009-05-18) ###############################

* ADDED: Better windows instance support during routines
* ADDED: "os" keyword to routines DSL
* ADDED: Config defaults for "yes" global (thanks sabat)
* FIXED: Handle exception when assigning inappropriate IP Address. 
* CHANGE: Some refactoring to Rudy::Machines and Rudy::Routines


#### 0.7.5 (2009-05-12) ###############################

* CHANGE: rudy-ec2 console now displays windows password automatically if keypair is supplied.
* ADDED: register and destroy commands to rudy-ec2 images

#### 0.7.4 (2009-05-10) ###############################

* CHANGE: Keypairs now include zone. This was necessary to allow US and EU keypairs to
          be stored in the same directory.  
* CHANGE: Moved non-rudy specific modules to separate projects (storable, sysinfo, annoy, 
          console -> Drydock, escape -> Rye, tryouts -> tryouts/).
* CHANGE: Renamed restart routine to reboot to make it clear it's about the machine
* CHANGE: Renamed Rudy::Disk to Rudy::MetaData::Disk
* CHANGE: Short alias for rudy-ec2 snapshot is now 's' (instead of 't')
* CHANGE: Removed highline-1.5.1 from vendor (it's now available as a gem)
* FIXED: Bug in Huxtable when loading global. Wasn't reloaded after config was updated. 
* FIXED: Closed gh-12 (thanks sabat)
* ADDED: Routines now support dependencies
* ADDED: Disk routines now support mount, umount, snapshot, and restore
* ADDED: rudy disk command now displays backups with -b switch
* ADDED: RE-added basic support for creating Linux images (with security warning)
* ADDED: Routines with underscores can now be called with dashes (a_routine vs a-routine)


#### 0.7.3 (2009-05-05) ###############################

* FIXED: Corrected a few minor interface errors in rudy-ec2
* ADDED: rudy-ec2 console can now display the decoded admin password for Windows instances. 

#### 0.7.2 (2009-05-04) ###############################

* FIXED: cli/routine.rb release method wasn't sending command alias (which broke rerelease)
* ADDED: global.offline for being cool when Internet is down
* ADDED: Better handling in aws/sdb when call returns nil (Internet is down)


#### 0.7.1 (2009-05-04) ###############################

* FIXED: rudy wasn't honouring -C option for specifying a config file
* FIXED: Was disabling, but not enabling colour
* FIXED: Symbol errors in 1.8 
* FIXED: Command blocks for root user are always run first now in Routines config.
* CHANGE: routines before, after, and script blocks are now processed by Rye::Box.batch as Procs. 
* CHANGE: deny was removed from commands config (it will come back later). 
* CHANGE: Rudy now checks the current working directory for machines, commands, etc... configs
* ADDED: examples/
* ADDED: "script" keyword to routines config. 
* ADDED: script_local
* ADDED: Routine now checks whether there are any remote tasks. If not, it doesn't loop through machines. 


#### 0.7.0 (2009-05-02) ###############################

* CHANGE: Upgrade to Drydock 0.6, Caesars 0.6, and Rye 0.6
* CHANGE: Updated Routines configuration syntax for specifying shell commands 
* ADDED: Releases via local git repository
* ADDED: authorize and adduser directives to routines config.
* ADDED: Improved CLI output for routines. 
* ADDED: Commands configuration for custom SSH commands
* ADDED: Auto-set hostname to machine name
* ADDED: Support for arbitrary routines via passthrough


#### 0.6.8 (2009-04-24) ###############################

* CHANGE: Renamed rudy config --rudy option to --project. This was important 
to maintain consistency in documentation.
* CHANGE: Cleaned README. See: http://wiki.github.com/solutious/rudy

#### 0.6.7 (2009-04-22) ###############################

* ADDED: rudy-ec2 status can now display EU status
* FIXED: Fixed bug on instance create. Instance.groups was nil, now it returns 
         empty Array.

#### 0.6.6 (2009-04-22) ###############################

* ADDED: Better error handling for Rudy::AWS::SDB
* FIXED: Ruby 1.9.1 compatability (including requiring aws-s3 >=0.6.1)


#### 0.6.5 (2009-04-20) ###############################

* FIXED: Startup and Shutdown routines now check machine group status first
* FIXED: Misc release process issues between 0.6.0 and 0.6.4
* ADDED: Better error handling during startup and shutdown. 
* ADDED: Support for assigning addresses on startup


#### 0.6.0 (2009-04-19) ###############################

NOTE: This is a significant re-write from 0.5

* CHANGE: Rebuilt Rudy::AWS::*
* CHANGE: Removed lib/rudy/commands/* and lib/rudy/metadata/*
* ADDED: rudy-ec2 executable
* CHANGE: have local copies of Caesars and Drydock to reduce external dependencies. 
* ADDED: new output formats: yaml, json, csv, tsv


#### 0.5.1 (2009-04-10) ###############################

* CHANGE: Removed require 'rubygems'
* FIXED: Resolved Drydock namespace issue for rudy and ird


#### 0.5.0 (2009-04-09) ###############################

NOTE: This is a significant re-write from 0.4

* CHANGE: Recommend keypair config to be in ~/.rudy/config
* FIX: Rudy now checks for user keys specified by env-role, env, and global
* FIX: gemspec dependency net-ssh-multi
* ADDED: --nocolor option 
* ADDED: Ruby API
* ADDED: Tests with 55% coverage
* ADDED: Ruby API (Rudy::Machines, etc...)
* ADDED: ird, a REPL (experimental)
* ADDED: Now uses Rye 0.4.1

#### 0.4 (2009-03-12) ###############################

NOTE: This is a significant re-write from 0.3

* CHANGE: Mostly re-written bin/ruby, moving validation to CLI classes 
* CHANGE: upgrade to Drydock 0.5
* CHANGE: Moved generic EC2 commands to bin/rudy-ec2
* CHANGE: Removed ambiguity of pluralized command names.
  * OLD: backups, disks, configs
  * ADDED: backup, disk, config
* ADDED: ssh and scp commands for connecting to and copying files to/from machines
* ADDED: New dependencies (trying out net-ssh)
* ADDED: Domain specific language for configuration
* ADDED: "Routines" for handling common actions. Starting, stopping, releasing, deploying. 
* ADDED: "rudy release" will create a release from the current working copy, start an instance, 
checkout the release, run routines. It needs some work still, but this already functions as
a single command release process. 
* ADDED: "rudy start|destroy|restart|update|status". Routines allow us to have generic commands 
that can be used for any machine group. These commands relate to starting new instances.
* ADDED: Extra caution when running destructive commands
* ADDED: Default ~/.rudy/config created if it doesn't exist. 


#### 0.3 (2009-02-26) ###############################

NOTE: This is a significant re-write from 0.2

* CHANGE: Re-written support/rudy-ec2-startup
* CHANGE: upgrade to Drydock 0.4
* ADDED: More functionality for disks and backups
* ADDED: config commands
* ADDED: Per machine configuration (via ~/.rudy)


#### 0.2 (2009-02-23) ###############################

NOTE: This is a complete re-write from 0.1

* CHANGE: Added Environment variables
* CHANGE: upgrade to drydock 0.3.3
* ADDED: All time references are converted to UTC
* ADDED: Safer "Are you sure?". Number of characters to enter is 
         commiserate with amount of danger.  
* ADDED: CLIs: myaddress, addresses, images, instances, 
         disks, connect, copy, stage, backups, volumes
* ADDED: Metadata storage to SimpleDB for disks, backups
* ADDED: Creates EBS volumes based on startup from metadata
* ADDED: Automated release process
* ADDED: Automated creation of machine images
* ADDED: Partial support for regions and zones
* ADDED: Manage system based on security groups. 
* ADDED: "rudy groups" overhaul. Display, creates, destroys groups. 



#### 0.1 (2009-02-06) ###############################

* Initial public release
<commit_msg>Cleaned CHANGES<commit_after>RUDY, CHANGES

* TODO: Supply dns values in machines config
* TODO: Supply machines config to routines blocks with only the specific machine group context 
* TODO: Re-implement metadata


#### 0.9.0 (2009-06-22) ###############################

NOTE: This is a significant re-write from 0.8 (routines, metadata)
NOTE: The implementation for storing machine, disk, and backup 
metadata will be replaced in one of the early 0.9.x releases.

* FIXED: Routine blocks now process directives in the order their given (in Ruby 1.8 and 1.9). 
* FIXED: Ambiguity when specifying zone and region. Region is now based on the zone. 
* FIXED: Reboot routines are now fully supported
* CHANGE: Rudy::Machine.inspect now prints in a standard Ruby inspect format
* CHANGE: Routines have been completely rebuilt but should remain backwards compatible. 
* CHANGE: Now requires Rye 0.8 (pre_command_hook args change, parallel stuff, quietly)
* CHANGE: before / after routine actions are now used for dependencies.
* CHANGE: Removed script_local, after_local, before_local from passthrough routines syntax.
* CHANGE: Allowed before_local for startup routines
* CHANGE: Allowed before_local and before_remote for reboot routines
* CHANGE: Allowed after_local for shutdown routines
* CHANGE: Removed machines config (now recommend uploading local files)
* CHANGE: Group names now take the form: grp-us-east-1b-stage-app
* CHANGE: private keys are stored in ~/.ssh/
* CHANGE: Removed create_image and prepare_image actions from rudy-ec2
* CHANGE: local routine blocks now share a single Rye::Box instance (@instvars too...)
* CHANGE: remote routine blocks now share a single Rye::Set instance
* CHANGE: "privatekey" in accounts config is renamed to "pkey"
* ADDED: routines command for displaying available routines
* ADDED: "rudy init" now authorizes public keys for user@localhost
* ADDED: Parallel processing for remote machines
* ADDED: Routines now have access to $global and $option (which are frozen)


#### 0.8.5 (2009-06-08) ###############################

* FIXED: Bug in DiskHelper. mount method tried to attach when already attached. 
* CHANGE: rudy config now displays account info (but keeps secret key hidden)
* CHANGE: defaults configuration has been removed from the default ~/.rudy/config. 
  It is now recommended to put it in the same place as machines, routines config.
* FIXED: Bug in addresses which prevented assigning elastic IP addresses. 


#### 0.8.4 (2009-06-04) ###############################

* FIXED: Fixed nil exception in fetch_machine_param
* CHANGE: Disabled check for private key for shutdown routine. 
  If the private key doesn't exist it prevents shutting down.
* CHANGE: Re-enabled the check to make sure command config is parsed only one time
* CHANGE: Some UI tweaks, some minor integration stuff with Rye
* CHANGE: Caesars::Config verbose mode is now enabled at Rudy verbose level 2


#### 0.8.3 (2009-06-03) ###############################

* CHANGE: Now requires rye-0.7.3 (disable_safe_mode method)
* CHANGE: Rye safe-mode is enabled after each routines script block to force disabling it
  explicitly in every block it's needed. 
* CHANGE: Removed grit dependency


#### 0.8.2 (2009-06-01) ###############################

* CHANGE: Removed release routine code (it's now a passthrough) and scmhelper. All release stuff should
  be implemented using the routine blocks. 
* CHANGE: Passthrough routines no longer check if machine group is running. 
* CHANGE: Local routines blocks now run from current working directory
* CHANGE: Removed SCM classes (moved logic to the Arcade)
* CHANGE: Moved examples to the Arcade (experimental)
* CHANGE: Command output in routines is now displayed only when verbose is 1 or more.
* ADDED: Routine blocks now receive command line options and arguments
* ADDED: Commands configuration now supports inline blocks
* ADDED: Rudy now looks for ~/.rudy/*.rb config files.


#### 0.8.1 (2009-05-18) ###############################

* FIXED: The shutdown routine was not working for Windows instances

#### 0.8.0 (2009-05-18) ###############################

* ADDED: Better windows instance support during routines
* ADDED: "os" keyword to routines DSL
* ADDED: Config defaults for "yes" global (thanks sabat)
* FIXED: Handle exception when assigning inappropriate IP Address. 
* CHANGE: Some refactoring to Rudy::Machines and Rudy::Routines


#### 0.7.5 (2009-05-12) ###############################

* CHANGE: rudy-ec2 console now displays windows password automatically if keypair is supplied.
* ADDED: register and destroy commands to rudy-ec2 images

#### 0.7.4 (2009-05-10) ###############################

* CHANGE: Keypairs now include zone. This was necessary to allow US and EU keypairs to
          be stored in the same directory.  
* CHANGE: Moved non-rudy specific modules to separate projects (storable, sysinfo, annoy, 
          console -> Drydock, escape -> Rye, tryouts -> tryouts/).
* CHANGE: Renamed restart routine to reboot to make it clear it's about the machine
* CHANGE: Renamed Rudy::Disk to Rudy::MetaData::Disk
* CHANGE: Short alias for rudy-ec2 snapshot is now 's' (instead of 't')
* CHANGE: Removed highline-1.5.1 from vendor (it's now available as a gem)
* FIXED: Bug in Huxtable when loading global. Wasn't reloaded after config was updated. 
* FIXED: Closed gh-12 (thanks sabat)
* ADDED: Routines now support dependencies
* ADDED: Disk routines now support mount, umount, snapshot, and restore
* ADDED: rudy disk command now displays backups with -b switch
* ADDED: RE-added basic support for creating Linux images (with security warning)
* ADDED: Routines with underscores can now be called with dashes (a_routine vs a-routine)


#### 0.7.3 (2009-05-05) ###############################

* FIXED: Corrected a few minor interface errors in rudy-ec2
* ADDED: rudy-ec2 console can now display the decoded admin password for Windows instances. 

#### 0.7.2 (2009-05-04) ###############################

* FIXED: cli/routine.rb release method wasn't sending command alias (which broke rerelease)
* ADDED: global.offline for being cool when Internet is down
* ADDED: Better handling in aws/sdb when call returns nil (Internet is down)


#### 0.7.1 (2009-05-04) ###############################

* FIXED: rudy wasn't honouring -C option for specifying a config file
* FIXED: Was disabling, but not enabling colour
* FIXED: Symbol errors in 1.8 
* FIXED: Command blocks for root user are always run first now in Routines config.
* CHANGE: routines before, after, and script blocks are now processed by Rye::Box.batch as Procs. 
* CHANGE: deny was removed from commands config (it will come back later). 
* CHANGE: Rudy now checks the current working directory for machines, commands, etc... configs
* ADDED: examples/
* ADDED: "script" keyword to routines config. 
* ADDED: script_local
* ADDED: Routine now checks whether there are any remote tasks. If not, it doesn't loop through machines. 


#### 0.7.0 (2009-05-02) ###############################

* CHANGE: Upgrade to Drydock 0.6, Caesars 0.6, and Rye 0.6
* CHANGE: Updated Routines configuration syntax for specifying shell commands 
* ADDED: Releases via local git repository
* ADDED: authorize and adduser directives to routines config.
* ADDED: Improved CLI output for routines. 
* ADDED: Commands configuration for custom SSH commands
* ADDED: Auto-set hostname to machine name
* ADDED: Support for arbitrary routines via passthrough


#### 0.6.8 (2009-04-24) ###############################

* CHANGE: Renamed rudy config --rudy option to --project. This was important 
to maintain consistency in documentation.
* CHANGE: Cleaned README. See: http://wiki.github.com/solutious/rudy

#### 0.6.7 (2009-04-22) ###############################

* ADDED: rudy-ec2 status can now display EU status
* FIXED: Fixed bug on instance create. Instance.groups was nil, now it returns 
         empty Array.

#### 0.6.6 (2009-04-22) ###############################

* ADDED: Better error handling for Rudy::AWS::SDB
* FIXED: Ruby 1.9.1 compatability (including requiring aws-s3 >=0.6.1)


#### 0.6.5 (2009-04-20) ###############################

* FIXED: Startup and Shutdown routines now check machine group status first
* FIXED: Misc release process issues between 0.6.0 and 0.6.4
* ADDED: Better error handling during startup and shutdown. 
* ADDED: Support for assigning addresses on startup


#### 0.6.0 (2009-04-19) ###############################

NOTE: This is a significant re-write from 0.5

* CHANGE: Rebuilt Rudy::AWS::*
* CHANGE: Removed lib/rudy/commands/* and lib/rudy/metadata/*
* ADDED: rudy-ec2 executable
* CHANGE: have local copies of Caesars and Drydock to reduce external dependencies. 
* ADDED: new output formats: yaml, json, csv, tsv


#### 0.5.1 (2009-04-10) ###############################

* CHANGE: Removed require 'rubygems'
* FIXED: Resolved Drydock namespace issue for rudy and ird


#### 0.5.0 (2009-04-09) ###############################

NOTE: This is a significant re-write from 0.4

* CHANGE: Recommend keypair config to be in ~/.rudy/config
* FIX: Rudy now checks for user keys specified by env-role, env, and global
* FIX: gemspec dependency net-ssh-multi
* ADDED: --nocolor option 
* ADDED: Ruby API
* ADDED: Tests with 55% coverage
* ADDED: Ruby API (Rudy::Machines, etc...)
* ADDED: ird, a REPL (experimental)
* ADDED: Now uses Rye 0.4.1

#### 0.4 (2009-03-12) ###############################

NOTE: This is a significant re-write from 0.3

* CHANGE: Mostly re-written bin/ruby, moving validation to CLI classes 
* CHANGE: upgrade to Drydock 0.5
* CHANGE: Moved generic EC2 commands to bin/rudy-ec2
* CHANGE: Removed ambiguity of pluralized command names.
  * OLD: backups, disks, configs
  * ADDED: backup, disk, config
* ADDED: ssh and scp commands for connecting to and copying files to/from machines
* ADDED: New dependencies (trying out net-ssh)
* ADDED: Domain specific language for configuration
* ADDED: "Routines" for handling common actions. Starting, stopping, releasing, deploying. 
* ADDED: "rudy release" will create a release from the current working copy, start an instance, 
checkout the release, run routines. It needs some work still, but this already functions as
a single command release process. 
* ADDED: "rudy start|destroy|restart|update|status". Routines allow us to have generic commands 
that can be used for any machine group. These commands relate to starting new instances.
* ADDED: Extra caution when running destructive commands
* ADDED: Default ~/.rudy/config created if it doesn't exist. 


#### 0.3 (2009-02-26) ###############################

NOTE: This is a significant re-write from 0.2

* CHANGE: Re-written support/rudy-ec2-startup
* CHANGE: upgrade to Drydock 0.4
* ADDED: More functionality for disks and backups
* ADDED: config commands
* ADDED: Per machine configuration (via ~/.rudy)


#### 0.2 (2009-02-23) ###############################

NOTE: This is a complete re-write from 0.1

* CHANGE: Added Environment variables
* CHANGE: upgrade to drydock 0.3.3
* ADDED: All time references are converted to UTC
* ADDED: Safer "Are you sure?". Number of characters to enter is 
         commiserate with amount of danger.  
* ADDED: CLIs: myaddress, addresses, images, instances, 
         disks, connect, copy, stage, backups, volumes
* ADDED: Metadata storage to SimpleDB for disks, backups
* ADDED: Creates EBS volumes based on startup from metadata
* ADDED: Automated release process
* ADDED: Automated creation of machine images
* ADDED: Partial support for regions and zones
* ADDED: Manage system based on security groups. 
* ADDED: "rudy groups" overhaul. Display, creates, destroys groups. 



#### 0.1 (2009-02-06) ###############################

* Initial public release

{'fraction_non_alphanumeric': 0.1426708179064288, 'fraction_numerical': 0.02806294177044766, 'mean_word_length': 4.507182576459685, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5845622', 'n_tokens_mistral': 7485, 'n_tokens_neox': 6732, 'n_words': 2981}