blob: e1db0a9d870610d3b64328c4d9b58cc877cac714 [file] [log] [blame]
Because plugin versions are managed by Forrest automatically it is possible
to deploy and/or release individual plugins independantly of Forrest and
other plugins. Before we discuss this process lets first look at the difference
between releasing a plugin and deploying a plugin.
Deploy or Release?
------------------
Plugins are automatically downloaded and installed whenever they are needed by a
Forrest project. In order for this to happen it is necessary to deploy the
plugin to a download server. Plugins may be deployed at any time during their
development cycle, that is a developer may choose to deploy a plugin that has not
yet been fully tested. This enables the plugin to be tested "in the field", by
its users.
Since users are able to opt to use a specfic version of a plugin those working in
production environments can ensure that these interim test deployments do not
affect their work.
Releasing a plugin is the act of deploying a fully tested plugin available for use.
This process will generally be more than just making the plugin available via a
download site, it will usually involve making public announcements, tagging the
source tree, incrementing version numbers and other such maintenance tasks.
Deploying a Plugin
------------------
By convention a plugin that has not been fully tested will have '-dev' appended
to the version number in the plugins build.xml file.
To deploy on the Apache Forrest download server you will need to be a committer.
Simply change directory to the plugin home directory and deploy the plugin
by doing 'tools/ant/bin/ant deploy' [1]. The build system will take care of
everything else for you.
Deployment is carried out with the command "ant deploy". Since this does not
affect releaed versions of the plugin it can be run at any time (note some minimal
tests are done during the deploy process).
[1] See the note about using our own version of Ant:
http://forrest.apache.org/docs/dev/howto/howto-buildPlugin.html#ant
Releasing a Plugin
------------------
The only difference between deploying and releasing a plugin from the point of
view of making the download available is that the plugin version number will
have the '-dev' postfix removed in build.xml before the "ant deploy" target is
run.
Once the deployment is complete the version number should be increased and the
'-dev' postfix will be appended.
To release a plugin one should run the command "ant release", however, there is
more to it than this.
TODO: Describe voting procedure
TODO: announcement emails
TODO: tagging source tree
FAQs
====
What if a new feature breaks compatability with a released version of Forrest?
------------------------------------------------------------------------------
If you add a feature to a plugin that will break compatability with a released version of
Forrest then you should up the forrest version number in the plugins build.xml file. This
will prevent the new version of the plugin being made avialble to the older version of
Forrest.
However, you might light to consider doing a release of the plugin before you break
compatability. It depends on what other changes there are to the plugin before you
start your work. It is always best to raise this on the dev list.