blob: c50ba7ed207d68b2d4c44eb096eda88b207230b0 [file] [view]
---
layout: default_md
title: Creating ActiveMQ-CPP Distributions
title-class: page-title-cms
type: cms
---
Creating a Distribution of ActiveMQ-CPP
---------------------------------------
This should give you an idea of the steps involved with creating a new distribution of ActiveMQ-CPP. This content was extracted from [http://www.apache.org/dev/mirror-guide-bodewig.html](http://www.apache.org/dev/mirror-guide-bodewig.html), so you may want to reference that for more information.
### A Little Background Info ...
Apache mirrors everything under /www.www.apache.org/dist. We have had the infrastructure team add a directory under there for activemq. All you need in order to write to this directory is to be a member of the activemq group. If you're not, you'll have to create an infrastructure issue to get yourself added. Under the dir activemq, there is a directory activemq-cpp/source for the source distributions of ActiveMQ-CPP.
Under the source dir, we just drop the archive files (*.zip, *.tar.gz, *.zip.asc, *.tar.gz.asc) for the release versions. (NOTE: After you add files here, you should wait about 24 hours before notifying the lists since it takes a while for all the mirrors to pick up the files).
The links on our download pages reference an apache CGI script to handle the mirrors. This is a quick and dirty way of doing this, but it works until we come up with a better way. An example usage of the link is the url below:
[http://www.apache.org/dyn/closer.cgi/activemq/activemq-cpp/source/activemq-cpp-1.1-src.zip](http://www.apache.org/dyn/closer.cgi/activemq/activemq-cpp/source/activemq-cpp-1.1-src.zip)
The cgi script "closer.cgi" takes a file resource relative to www/www.apache.org/dist and generates a download page for it with the list of mirrors.
To see this in action, go to the amq-cpp 1.1 download page here: [activemq-cpp-11-release.md](../../download/11-release)
... and click on one of the archives. You'll be taken to a generic-looking download page.
Like I said, this is a quick and dirty for now, but it works!
### Product version, interface version and package name
The page [ActiveMQ-CPP product version number](Index/Overview/Download/ActiveMQ-CPP, libtool and packaging notesIndex/Overview/Download/ActiveMQ-CPP, libtool and packaging notes/Index/Overview/Download/ActiveMQ-CPP, libtool and packaging notes/activemq-cpp-product-version-number.md) has been created to specify the way version numbers are used in the project, with some examples.
[ActiveMQ-CPP, libtool and packaging notes](Index/Overview/Download/activemq-cpp-libtool-and-packaging-notes.md) discusses the way version numbers impact libtool and packaging, and make some recommendations for this project.
### Creating a Distribution (step-by-step)
* Create a pre-release download page for your distribution. This should have a disclaimer that the release is not yet official and should have a temporary link to a pre-release distribution. For the pre-release, you do not need to have both zip and tar.gz, but a detached signature file (.asc) file should accompany any distribution. Below is an example of the disclaimer that should appear at the top of the download page:
> The Release is still in progress
>
> You are previewing the release page for unreleased version of yadda. The download links on the page below may not work until it is officially released.
>
> Until the release is approved you could try the current source bundle:
> [http://people.apache.org/~myaccount/yadda.zip](http://people.apache.org/~myaccount/yadda.zip)
* Call a vote on the release of the distribution. This email typically has
```
[VOTE]
```
in the subject line and should provide a link to the download page and the pre-release distribution.
* Wait 3 days. If there >= 3 +1's and no -1's, you can proceed with the release.
* Create all of the distributions of the source (*.zip, *.tar.gz). Make sure that you remove the .svn directories from the directory before you create the archives. On *nix, this can be done with the command:
```
rm -rf \`find . -type d -name .svn\`
````
* Sign your distribution files, creating an asc file for both the tar and zip files, see this page [http://www.apache.org/dev/release-signing.html](http://www.apache.org/dev/release-signing.html) for more information on release signing.
```
gpg --armor --output foo.tar.gz.asc --detach-sig foo.tar.gz
gpg --armor --output foo.zip.asc --detach-sig foo.zip
````
* Copy the distribution files to **/www/www.apache.org/dist/activemq/activemq-cpp/source** on minotaur.
* Wait 24 hours for the mirrors to be updated with the distribution.
* Update the links on the download page to reference your distribution through the CGI script. This simply means that you precede the file names with the path [http://www.apache.org/dyn/closer.cgi/activemq/activemq-cpp/source/](http://www.apache.org/dyn/closer.cgi/activemq/activemq-cpp/source/).
```
i.e. http://www.apache.org/dyn/closer.cgi/activemq/activemq-cpp/source/activemq-cpp-1.1-src.zip
```
* Generate the Doxygen API and place it under /www/activemq.apache.org/cms/api_docs.
* Add the link to the release API to the [API](Index/Site/NavigationIndex/Site/Navigation/Index/Site/Navigation/api.md) page.
* Add a news item under the CMS space on the wiki about the release.
* Send out an e-mail on both the dev and users list about the release.