Redmine Gems Plugins

Plugins de contruction automatique de Rubygems


This plugins requiers

  • Ruby 1.8.6 or higher
  • Rails 2.2.2 or higher
  • Redmine trunk from r2493 to r2886 or higher

Warning : this plugin will operate ONLY if you have a SUBVERSION repository configured on the Redmine Project where it has been added.


  # cd $APP_ROOT
  # cd vendors/plugins
  # svn export<lastest_tags> redmine-gems
  # rake db:migrate_plugins RAILS_ENV=production

Download depuis

Retrieve the TGZ file in your APP_ROOT and :

  # cd $APP_ROOT
  # cd vendors/plugins
  # tar xvzf redmine_gem_X_X_X.tgz
  # rm redmine_gem_X_X_X.tgz
  # rake db:migrate_plugins RAILS_ENV=production

Reload Rails and Redmine.


The plugin could be setup in the
Administration>Plugins menu

Configure link of the "Redmine Gems" plugin

You have to precise to paths in this configuration panel.

  • SVN exportation path
  • gemdir path (gem server) (optionnel)

There is others options :

  • a check box to accept automatic news sending
  • a check box to accept local deployment
  • a check box to accept gemdir deployment
  • a check box to accept GemCutter deployment

Warning : GemCutter Deployment require à valid configuration of GemCutter and a valid email push configuration for the Redmine User (Key sharing, etc ...)
If a gem was already pushed on gemcutter the email address associated with the Redmine User should be in its owner list.

You could use two permissions in this plugin with the

Administration>Roles and permissions menu

For all of the different profiles avaibles :

  • permission : View rubygems
  • permission : Build rubygems
  • permission : local deployment
  • permission : GemCutter deployment
  • permission : gemdir deployment
  • permission : configure Modules in Project

Plugin must be added in all the projects you would use it in.


Human Processus

When have install this plugins as a module in a project, a "Gems" tabs could be found in the project menu after the "Repository" tabs.
If you click on this tabs, the plugin start and you could see if you a have a configured SVN Repository with tags create in it "tags" folder (mandatory).
The plugin also could ask you to create Redmine version to attach, if none exists (mandatory).

  1. if one/some SVN tags exists, plugin try to associate Redmine Version for each of this tags, if not you have to do this association yourself (select list).
  2. Plugin will scan the tags folder root th find a Rakefile (with a least the clobber, clean or gem generic Gem/rake targets ) or a Gemspec (*.gemspec files), if this methods exists twice, you have to choose one (select list).
  3. Plugin ask you some comments (optional).
  4. Click on the "Build" button to start the Gem building
  • Date.
  • Builder.
  • Associated Redmine Version.

Building processus

  1. Plugin try to remove eventual old exports.
  2. Plugin export the selected SVN tag.
  3. Plugin change directory in the tags folder.
  4. Plugin build Gem with the selected building method.
  5. Plugin deploy on specified targets (local,gemcutter,gemdir)
  6. Plugin attach gem file in the 'Files' Redmine module under the specified version.
  7. Plugin persist a building record (Rubygem Rails model) or modify existing one and add update date (display in the informations precised in the Gems building list).
  8. Plugin send a Redmine news for the new release

The Rails model act as an activity and an event and the plugins as an Activity provider, so, in the "Activity" tab, you could see a message if you check (on the right side, in the default Redmine theme ) the box concerning Activities of the Redmine Gems

Project level Configuration :

Default values :

  • Two paths :
  • SVN exportation path
  • gemdir path (gem server) (optionnel)

There is others options :

  • a check box to accept automatic news sending
  • a check box to accept local deployment
  • a check box to accept gemdir deployment
  • a check box to accept GemCutter deployment

Priorité des configurations


Default configuration at Plugin setup :

  • exports_path = /tmp/exports
  • gemdir_path = /tmp/gemdir
  • annonce_enabled = 1
  • gemdir_deployment_enabled_default = 0
  • local_deployment_enabled_default = 0
  • gemcutter_deployment_enabled_default = 0

Module setup :

  • exports_path = exports_path (Plugin Configuration)
  • gemdir_path = gemdir_path (Plugin Configuration)
  • annonce_enabled = annonce_enabled (Plugin Configuration )
  • gemdir_deployment_enabled = 0
  • local_deployment_enabled = 0
  • gemcutter_deployment_enabled = 0


  • gemdir_path (Project) override gemdir_path (Config Plugin)
  • export_path (Project) override export_path (Config Plugin)
  • annonce_enabled (Project) override annonce_enabled (Config Plugin)
  • gemdir_deployment_enabled override gemdir_deployment_enabled (Config Plugin)
    unless gemdir_deployment_enabled (Config Plugin) <> 1
  • local_deployment_enabled override local_deployment_enabled (Config Plugin)
    unless local_deployment_enabled (Config Plugin) <> 1
  • gemcutter_deployment_enabled override gemcutter_deployment_enabled (Config Plugin)
    unless gemcutter_deployment_enabled (Config Plugin) <> 1

Updated by Romain GEORGES almost 11 years ago · 10 revisions