README.txt in bones-2.0.3 vs README.txt in bones-2.1.0
- old
+ new
@@ -8,78 +8,37 @@
The skeleton contains some starter code and a collection of rake tasks to
ease the management and deployment of your source code. Mr Bones is not
viral -- all the code your project needs is included in the skeleton (no
gem dependency required).
-== VERSION 2.0.0 CHANGES:
+== VERSION 2.1.0 CHANGES:
-Version 2.0.0 of Mr Bones introduces backwards incompatibilities. Here is
-what you need to update in order for your current projects to work with
-this latest release.
+With my Mr Bones projects, I found myself constantly updating the tasks as new
+versions of Mr Bones were released. This quickly became annoying. Why not use
+the tasks from the Mr Bones gem and only copy those tasks to my own projects
+when they are packaged and released? That is the goal of this release of Mr
+Bones.
-Perform an update the tasks in your project directory:
+Version 2.1.0 of Mr Bones allows your projects to use the rake tasks found
+in the Mr Bones gem but still remain independent from Mr Bones when
+deployed. This is accomplished by copying the rake tasks into your project
+only when it is packaged into a gem (or zip file or tarball).
- bones -u your/project/directory
+You still have the option of copy the tasks to your local project when it is
+created. Or you can add tasks to your project at a later time.
-The following .rake files have been renamed in Mr Bones 2.0.0 (the old
-name is on the left and the new name is on the right). You will need to
-delete the old version and use only the new version.
+So, if you have an exsiting project and you want to use the Mr Bones tasks,
+simply delete your "tasks" folder and put the following at the top of your
+Rakefile:
- doc.rake => rdoc.rake
- annotations.rake => notes.rake
+ begin
+ require 'bones'
+ Bones.setup
+ rescue LoadError
+ load 'tasks/setup.rb' # this line should already be there
+ end
-The PROJ openstruct has been amended to contain a collection of nested
-openstructs. This will affect any settings you might have in the
-top-level Rakefile for your project. Here is the translation key (old
-names on the left and new names on the right).
-
- rubyforge_name => rubyforge.name
-
- specs => spec.files
- spec_opts => spec.opts
-
- tests => test.files
- test_file => test.file
- test_opts => test.opts
-
- rcov_dir => rcov.dir
- rcov_opts => rcov.opts
- rcov_threshold => rcov.threshold
- rcov_threshold_exact => rcov.threshold_exact
-
- rdoc_opts => rdoc.opts
- rdoc_include => rdoc.include
- rdoc_exclude => rdoc.exclude
- rdoc_main => rdoc.main
- rdoc_dir => rdoc.dir
- rdoc_remote_dir => rdoc.remote_dir
-
- dependencies => gem.dependencies
- executables => gem.executables
- extensions => gem.extensions
- files => gem.files
- need_tar => gem.need_tar
- need_zip => gem.need_zip
- post_install_message => gem.extras['post_install_message']
-
- annotation_exclude => notes.exclude
- annotation_extensions => notes.extensions
- annotation_tags => notes.tags
-
- svn => svn.path
- svn_root => svn.root
- svn_trunk => svn.trunk
- svn_tags => svn.tags
- svn_branches => svn.branches
-
- ann_file => ann.file
- ann_text => ann.text
- ann_paragraphs => ann.paragraphs
- ann_email => ann.email
-
-And of course, each name should be prepended with PROJ in your Rakefile.
-
== FEATURES:
Mr Bones provides the following rake tasks:
ann # Alias to ann:announcement
@@ -92,13 +51,15 @@
doc:rdoc # Build the rdoc HTML Files
doc:release # Publish RDoc to RubyForge
doc:rerdoc # Force a rebuild of the RDOC files
doc:ri # Generate ri locally for testing
gem # Alias to gem:package
+ gem:cleanup # Cleanup the gem
gem:debug # Show information about the gem
gem:install # Install the gem
- gem:package # Build the gem file bones-1.3.4.gem
+ gem:package # Build all the packages
+ gem:reinstall # Reinstall the gem
gem:release # Package and upload to RubyForge
gem:repackage # Force a rebuild of the package files
gem:uninstall # Uninstall the gem
git:create_tag # Create a new tag in the Git repository
git:show_tags # Show tags from the Git repository
@@ -112,12 +73,10 @@
spec # Alias to spec:run
spec:rcov # Run all specs with RCov
spec:run # Run all specs with basic output
spec:specdoc # Run all specs with text output
spec:verify # Verify that rcov coverage is at least 90.0%
- svn:create_tag # Create a new tag in the SVN repository
- svn:show_tags # Show tags from the SVN repository
test # Alias to test:run
test:rcov # Run rcov on the unit tests
test:run # Run tests for run
The rake tasks in the Mr Bones framework can be found in the "tasks"
@@ -127,17 +86,12 @@
To create a new "Get Fuzzy" project:
bones get_fuzzy
-If a new release of Mr Bones comes out with better features the "Get Fuzzy"
-project will need to be updated:
+If you ever get confused about what Mr Bones can do:
- bones --update get_fuzzy
-
-And if you ever get confused about what Mr Bones can do:
-
bones --help
== REQUIREMENTS:
Mr Bones does not have any "requirements", but if you do not have the
@@ -158,11 +112,16 @@
project. In that skeleton is a "tasks" directory that contains the Mr Bones
rake files. These files are quite generic, and their functionality is
controlled by options configured in the top-level Rakefile. Take a look at
the Rakefile for the Mr Bones gem itself:
- load 'tasks/setup.rb'
+ begin
+ require 'bones'
+ Bones.setup
+ rescue LoadError
+ load 'tasks/setup.rb'
+ end
ensure_in_path 'lib'
require 'bones'
task :default => 'spec:run'
@@ -208,11 +167,11 @@
If your project depends on other gems, use the +depend_on+ command in your
Rakefile to declare the dependency. If you do not specify a version, the
most current version number for the installed gem is used.
depend_on 'logging'
- depend_on 'rake', '0.7.3'
+ depend_on 'rake', '0.8.2'
=== Freezing a Skeleton
Freezing allows you to define your own project skeleton to instantiate with Mr
Bones when you create a new project. The default Mr Bones project skeleton is
@@ -224,32 +183,35 @@
Typical uses of this feature would be to fill in user specific data like the
author, e-mail address, etc. You can also add more default code to the skeleton
project or your own ".rake" task files.
-==== Updating a Frozen Skeleton
+You can have multiple skeletons with different names. Your projects can be
+instantiated from any of these skeletons. Just supply a name when freezing:
-Just like a regular project, a frozen skeleton can be updated if a newer
-version of Mr Bones comes out with better features. Updating a frozen skeleton
-will only modify the tasks. All other files in the skeleton remain untouched.
+ bones --freeze foo
- bones --freeze
+You can instantiate a project from the "foo" skeleton:
-The freeze command is used to update the skeleton tasks to the latest Mr Bones
-tasks. A copy of the current tasks are made in an "archive" directory in the
-".mrbones" directory. To revert back to the archive version, you will need to
-manually rename "archive" to "data" in the ".mrbones" directory.
+ bones --skeleton foo get_fuzzy
+The default skeleton name is "data". If no skeleton name is provided, then this
+is the skeleton that will be used.
+
==== Unfreezing a Skeleton
Unfreezing a skeleton will remove your customized project skeleton from the
".mrbones" directory. The default Mr Bones project skeleton will be used
-instead. A copy of your custom skeleton is made in the "archive" directory of
+instead. A copy of your custom skeleton is stored in an archive directory of
the ".mrbones" directory before it is removed.
bones --unfreeze
+You can unfreeze named skeletons, too:
+
+ bones --unfreeze foo
+
==== Custom Modifications
Mr Bones will perform a limited set of substitutions on the files in the
skeleton when it generates a new project. ERB is used to insert the project
name and the derived class name into template files. The file must end in an
@@ -308,5 +270,74 @@
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+== VERSION 2.0.0 CHANGES:
+
+Version 2.0.0 of Mr Bones introduces backwards incompatibilities. Here is
+what you need to update in order for your current projects to work with
+this latest release.
+
+Perform an update the tasks in your project directory:
+
+ bones -u your/project/directory
+
+The following .rake files have been renamed in Mr Bones 2.0.0 (the old
+name is on the left and the new name is on the right). You will need to
+delete the old version and use only the new version.
+
+ doc.rake => rdoc.rake
+ annotations.rake => notes.rake
+
+The PROJ openstruct has been amended to contain a collection of nested
+openstructs. This will affect any settings you might have in the
+top-level Rakefile for your project. Here is the translation key (old
+names on the left and new names on the right).
+
+ rubyforge_name => rubyforge.name
+
+ specs => spec.files
+ spec_opts => spec.opts
+
+ tests => test.files
+ test_file => test.file
+ test_opts => test.opts
+
+ rcov_dir => rcov.dir
+ rcov_opts => rcov.opts
+ rcov_threshold => rcov.threshold
+ rcov_threshold_exact => rcov.threshold_exact
+
+ rdoc_opts => rdoc.opts
+ rdoc_include => rdoc.include
+ rdoc_exclude => rdoc.exclude
+ rdoc_main => rdoc.main
+ rdoc_dir => rdoc.dir
+ rdoc_remote_dir => rdoc.remote_dir
+
+ dependencies => gem.dependencies
+ executables => gem.executables
+ extensions => gem.extensions
+ files => gem.files
+ need_tar => gem.need_tar
+ need_zip => gem.need_zip
+ post_install_message => gem.extras['post_install_message']
+
+ annotation_exclude => notes.exclude
+ annotation_extensions => notes.extensions
+ annotation_tags => notes.tags
+
+ svn => svn.path
+ svn_root => svn.root
+ svn_trunk => svn.trunk
+ svn_tags => svn.tags
+ svn_branches => svn.branches
+
+ ann_file => ann.file
+ ann_text => ann.text
+ ann_paragraphs => ann.paragraphs
+ ann_email => ann.email
+
+And of course, each name should be prepended with PROJ in your Rakefile.