# release-plugin

## Purpose

Tags and releases a Grails plug-in to the Grails plug-in repository

## Examples

    grails release-plugin

## Description

Usage:

    grails release-plugin
    grails release-plugin -repository=myRepository
    grails release-plugin -pluginlist

This command is for users who have access to the Grails standard plug-in repository at http://plugins.grails.org

The command allows Grails to manage the release process for you by integrating SVN with Grails. The `release-plugin` command supports the following arguments:

- `repository` - The name of the repository to publish to. See the section on Plugin repositories in the user guide.
- `pluginlist` - Publish only an updated plugin list and not the plugin itself
- `zipOnly` - Use this flag if you want to only publish the plugin zip files and metadata and not the sources
- `skipMetadata` - Skips the generation of plugin behavior metadata (used to inform IDEs of new methods etc.)
- `skipDocs` - Skips the generation of groovydoc and plugin reference documentation

If you require access to repository and wish to release your plug-in there contact a member of the Grails development team.

The command will check whether the plug-in currently exists in the repository and if not will check-in the plug-in and create a release. The command will automatically upload the plugin to a location such as `http://plugins.grails.org/grails-name`. It will also automatically create the following structure:

    grails-[name]
       tags
          LATEST_RELEASE
          RELEASE_XY
       trunk

The `trunk` directory contains the current latest sources. The `tags` directory contains tagged versions of each release and a `LATEST_RELEASE` tag that indicates the current latest release.

If the plug-in already exists in the repository Grails will update first, then commit the latest change and finally tag the release.

Either way the plug-in will then automatically be available via the list-plugins command.