SCM Sync configuration plugin

Plugin Information

Plugin ID scm-sync-configuration
Latest Release 0.0.6-h-1
Latest Release Date Aug 29, 2012
Sources Github
Support Eclipse Hudson Forum
Issue Tracking Eclipse Bugzilla

SCM Sync Configuration Hudson plugin is aimed at 2 main features :

  • Keep sync'ed your config.xml (and other ressources) hudson files with a SCM repository
  • Track changes (and author) made on every file with commit messages

Requirements

SCM Sync Configuration plugin requires Hudson 1.339 or higher.

Installation

Warning
A blocker bug has been detected if you are using m2release plugin. Don't install scm-sync-configuration plugin 0.0.1 if you are in this case !
Update: Bug has been fixed in 0.0.2

To install SCM Sync Configuration Plugin, Go to the "plugin management" section in the administration Panel.
Latest released version will be available. Install it from there (you should need to restart Hudson after that).

To verify that the plugin is well installed, go to the Administration panel, then in the "System configuration" section : you should notice a "SCM Sync Configuration" section :

Usage

On the System configuration panel (seen above), you'll be prompted for a SCM type (for now, only Subversion, but others will come soon) and a repository URL for your SCM type.

When you'll complete this form section, and validate the form, the SCM Sync Configuration will compute every configuration file he is able to synchronize, and commit them, for initialization, on your SCM repository.
Warning : This first step can take a few minutes !

Once initialized, every time you'll submit a configuration view that can be sync'ed by the SCM Sync Configuration plugin, you'll be prompted for a comment that will be put on the commit message on your SCM Repository.

For now, supported configuration files are the following ones :

  • Job configuration files
  • Global Hudson system configuration file

But lots of configuration files are planned ! (see the Product Backlog for further informations)

What is synchronized, and when

Constraint Target Configuration family Target configuration files Modes
version >= 0.0.1 Job & children configuration /job//*/config.xml Creation, Update
version >= 0.0.2 Hudson System configuration /config.xml Creation, Update

Product backlog

When I am... I should be able to ... More details ... Implemented ?
An administrator Globally : Provide auth parameters to several SCM repository
types : subversion, cvs, git etc...
Hudson configuration files will be sync'ed with this
repository
Done !
An administrator Globally : Tell what types of configuration files will be sync'ed :
job configurations, system configuration, views configurations,
user profiles
Each configuration type should be represented by
 a specific strategy
Not yet
An administrator Globally : Should decide to initialize SCM repository with every current configuration files   Done !
An administrator Globally : Should decide to retrieve (and override) every sync'ed
files (on initialization step for example)
  Coming soon !
An administrator Globally : call a REST-like URL allowing to commit files with a
comment from outside of Hudson behaviour
For example, when using groovy scripts which
modify config files
Not yet !
An administrator Globally : Could check a "read-only" field allowing, for an
hudson instance, to mirror another hudson instance configuration
Read only flag will implies to never commit anything
(and don't prompt for commit message) but config
file update will be performed either automatically, or manually
Not yet
A privileged* user Per type of sync'ed configuration file : Check if current file is
up-to-date with HEAD revision of the file in the SCM repository.
If not, propose to checkout last revision of the file
from the SCM repository, and replace the current one!
Coming soon !
A privileged* user Per type of sync'ed configuration file : When submitting form,
input a commit message saying what sort modifications has
been done on form
New version of the file will be commited on SCM.
Current user id & message will be used in the commit
 message
Done !
A privileged* user Per type of sync'ed configuration file : Consult commit history
for target configuration file
  Not yet !

*Privileged user can be, for example, user having access to job configuration update when job configuration is sync'ed.

Releases

0.0.3 (January, 4th, 2011)

Bugfixes

  • issue #8197 Using hudson SVN credentials to authenticate against subversion server instead of the ones in your .subversion cache !
    This is more relevant with the UI, prompting for scm credentials and storing them in hudson credentials.
  • issue #7762 Only /jobs/*/config.xml are commited (instead of /jobs/**/config.xml) – This fixes some plugin files (example : M2Release plugin files) which were unintentionally synchronized with scm
  • issue #7982 Fixed NPE around ScmSyncConfigurationPlugin:59

Improvements

  • Deleting svn hierarchy on job deletion
  • Renaming svn hierarchy on job renaming
  • Comment message prompted on "configure" job screen .. even if configuring a job through a view
  • Improved logging
  • issue #8259 Provided "no synchronisation" radio in system configuration page, allowing to disable scm synchronisation after having enabled it
  • Changed scm-sync-configuration.xml file representation (SCM is no more an enum type, and become an abstract classes with subclasses) + provided data migrator from 0.0.2 & 0.0.1 file representations

Tasks

  • Provided plugin description for plugin rss feed
  • Provided unit tests harness for testing scm synchronizations (~50% test coverage) + refactored code to improve testability

0.0.2 (October, 15th, 2010)

Bugfixes

  • issue #7241 : Critical bug: IE8 users wasn't able to submit their configuration form due to a JS error.

Improvements

  • Hudson System configuration is now sync'ed
  • scm-sync-configuration v0.0.2 has been tested with IE8, Chrome 5, FF 2 under windows 7
  • Added JS exception catching in order to not block the process if a JS error occurs (because of an incompat with non tested browser)
  • Some little refactorings on config files initialization in scm repository

Tasks

  • Provided name & wiki url to the POM. These information are used on several pages of hudson-ci (especially RSS feeds)

0.0.1 (October, 12th, 2010)

Warning
This is an alpha release ! Don't use it in production, especially if you are using M2Release hudson plugin

Improvements

  • SCM Repository configuration in system panel
  • Prompt for commit message each time a Job Configuration is modified

Roadmap (future versions)

v0.1

  • Allows to provide auth parameter for subversion (only) repository in system configuration panel
  • Provide first strategy implementation allowing to backup every of your job configuration files (when submitting job configuration form) with a personnal commit message

v0.2

  • Provide up-to-date checker for the first implementation, allowing to replace current job configuration with a newer one commited on Subversion
  • Provide several new strategies to sync various configuration files : views, system, users (related : issue #8225
  • Allow administrator to select which of configuration type should be sync'ed (or not)

v0.3

  • Provide configuration history on each configuration type page
  • Provide new SCM connection implementations : cvs, git, others?

Current bugs to solve before v0.1

  • Replace special linux characters ( " for example) when syncing
  • Check if updated repository on system config page is empty and display a warning if not
  • When editing a job description, sync is fired but no comment is proposed
  • Add "Administrator email" field allowing to email administrator if synchronization problems occur (password changed for example)
  • (done) issue #8259 Add a combobox on message dialog, allowing to skip bothering the user during 10m/20m/30m/1h/4h/1d

Labels:

plugin-scm-related plugin-scm-related Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.
  1. Oct 25, 2010

    Sorin Sbarnea says:

    This plugin looks very useful, I can't wait to see Perforce SCM support in it. M...

    This plugin looks very useful, I can't wait to see Perforce SCM support in it. Maybe it is a good idea to try to use the Hudson SCM implementation for implementing this instead of reimplementing support for each SCM.

    1. Oct 25, 2010

      Frederic Camblor says:

      This is the idea Both using maven-scm-api (for implementation) and Hudson SCM ...

      This is the idea

      Both using maven-scm-api (for implementation) and Hudson SCM (for saved credentials) is planned