= bioruby-gem BioGem is a scaffold generator for those Bioinformaticans who want to start coding an application or a library for using/extending BioRuby's core library and sharing it through http://rubygems.org . The basic idea is to simplify and promote a modular approach to the BioRuby package. BioGem is not reinventing the wheel just putting together different tools like Jeweler and Bundler modifing their original behaviour when needed. Jeweler is used to create the initial scaffold, setting up git for versioning, releasing it to github.com and/or rubygems.org and packaging. Bundler is used used for setting up a predefined developing environment. Remind that * Jeweler is based on rake $ rake -T in your project directory gives you an overview of the available actions * GitHub.com and RubyGems.org are two different services and you need to create different accounts for them if you already use GitHub.com you are already all set for using BioGem == Contributing to bioruby-gem * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it * Fork the project * Start a feature/bugfix branch * Commit and push until you are happy with your contribution * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally. * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it. == Step by Step * gem install jeweler * jeweler bioruby-mystuff * cd bioruby_mysuff * bundle install * rake version:write * rake gemspec * rake install Some of these steps have been condensed: * gem install bio-gem * $ biogem mystuff * pass just the simple name, it will add bioruby- for the first level directory and for the github repository BUT you'll require the library with bio-mystuff (and this will be the name used on rubygems) * creates a basic gem structure with a default dependencies for bioruby (bio) version 1.4.1 |-- Gemfile |-- Gemfile.lock |-- LICENSE.txt |-- README.rdoc |-- Rakefile |-- lib | `-- bio-mystuff.rb |-- data | `-- empty but put here your datasets or database(SQLite3?) `-- test |-- helper.rb `-- test_bio-mystuff.rb * $ cd bioruby-mystuff * $ rake version:write (Initial Updated version: 0.0.0) * $ rake gemspec * $ rake install (for local test) * hack, git add and commit * NOTE: It's very important that you add new and changed files so they can be included in the gem you will create, otherwise the files will not be include and you'll end up with a broken gem with missing files. * $ rake git:release (Before releasing on github or rubygems please see the Notes For Developers) * WHEN you have finished with the hacking you can release the gem by typing: * $ rake release * if you want to make a new release version: major, minor or patch version you can use * $ rake version:bump:(major | minor | patch) the release will be increased by 1 and when you'll release it'll be updated. Note that in GitHub, bumping the version will create a tag with this version and your repository.So for every version you release there is a tag associated. == NoTes For Developers * A GitHub Account is required and you MUST create a repository for your new bioruby plugin. The name of the repository follows this rules: bioruby-mystuff on your local directory you will see bioruby-mystuff but on rubygems you will publish bio-mystuff. This is a clash of namespaces but I think in this way makes more sense. * Before start developing open Rakefile and modify the gem.summary and gem.description. These parameters are very important because let you describe your gem and why we need it. If you let them by default the gem will not be packed, it's just a countermeasure :-) * Update your rubygems environment * Keep in mind that Jeweler handles everything is under the control of you git repository, so there is no need to modify the Rakefile or the tasks for including some file, directory etc to you project; just git add your_file_or_directory. Remeber to modify .gitignore to exclude files. * Explore the rake tasks with * $ rake -T Toshiaki Katayama wrote a step by step guide for a bio-foobar plugin @ http://bioruby.open-bio.org/wiki/BiogemInstallation. == BioRuby's Wiki Official Documentation http://bioruby.open-bio.org/wiki/Plugins == TODO * better command line, wrap or re-implement some of the funcionalities provided by Bundler and Jeweler == Copyright Copyright (c) 2010 Raoul J.P. Bonnal. See LICENSE.txt for further details.