Difference between revisions of "Making a release"

From Apertium
Jump to navigation Jump to search
 
(6 intermediate revisions by 2 users not shown)
Line 2: Line 2:


{{TOCD}}
{{TOCD}}
{{Github-migration-check}}
Here are some simple steps to making a release, read the [[release policy]] for more information as to when a release should be made. Basically, we have four main stages, "building the package", "testing", "uploading to SourceForge" and "tagging SVN".
Here are some simple steps to making a release, read the [[release policy]] for more information as to when a release should be made. Basically, we have four main stages, "building the package", "testing", "uploading to SourceForge" and "tagging in git".


==Retrieving the version from SVN==

Get the latest SVN, or the revision (or date) which you'd like to release. For example to get the version of <code>apertium-oc-ca</code> on the 10th June, 2007, use:
<pre>
$ svn co -r '{2007-06-10}' https://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-oc-ca
</pre>


==Editing the build files==
==Editing the build files==
Line 15: Line 10:
First update the build files to reflect the new version.
First update the build files to reflect the new version.


Edit Makefile.am:
Edit Makefile.am and delete any lines like
<pre>
<pre>
-VERSION=1.0.2
RELEASE=0.9
+VERSION=1.0.3
VERSION=0.9.7
</pre>
</pre>
(Makefile.am shouldn't have any version info.)


Edit configure.ac:
Edit configure.ac:
<pre>
<pre>
-AC_INIT([apertium-oc-ca], [1.0.2], [<maintainer email>])
-AC_INIT([Apertium Foolish-Barman], [0.9.7], [maintainer@domain.org], [apertium-foo-bar], [http://wiki.apertium.org/wiki/Apertium-foo-bar])
+AC_INIT([Apertium Foolish-Barman], [1.0.0], [maintainer@domain.org], [apertium-foo-bar], [http://wiki.apertium.org/wiki/Apertium-foo-bar])
-AM_INIT_AUTOMAKE([apertium-oc-ca], [1.0.2], no-define)
+AC_INIT([apertium-oc-ca], [1.0.3], [<maintainer email>])
+AM_INIT_AUTOMAKE([apertium-oc-ca], [1.0.3], no-define)
</pre>
</pre>


==Building the package==
==Building the package==


Run autogen.sh:


<pre>
<pre>
$ ./autogen.sh
$ ./autogen.sh

$ make dist
$ make dist
</pre>
</pre>


You should now have a file in the source directory called <code>apertium-oc-ca-1.0.3.tar.gz</code>.
You should now have a file in the source directory called <code>apertium-foo-bar-1.0.0.tar.gz</code>.




If you have a GPG key, you can sign the release with
If you have a GPG key, you can sign the release with
<pre>
<pre>
$ gpg --detach-sign --armor apertium-oc-ca-1.0.3.tar.gz
$ gpg --detach-sign --armor apertium-foo-bar-1.0.0.tar.gz
</pre>
</pre>
This will give you the file <code>apertium-oc-ca-1.0.3.tar.gz.asc</code> that you should upload along with <code>apertium-oc-ca-1.0.3.tar.gz</code>.
This will give you the file <code>apertium-foo-bar-1.0.0.tar.gz.asc</code> that you should upload along with <code>apertium-foo-bar-1.0.0.tar.gz</code>.


==Testing==
==Testing==
Line 58: Line 52:
</pre>
</pre>


If you get any errors, go back, fix them in SVN and start again. If the error is in this revision, not in SVN head, then go back to the revision that you checked out and make a note in the ChangeLog of what you changed.
If you get any errors, go back, fix them in git, push and start again.


==Installing the pair on apertium.org==
Example contents of ChangeLog:

<pre>
1. First update the apy server:
Wed 20 Jun 2007 08:45:42 BST


Assuming the tarballs apertium-foo-0.9.0.tar.gz and apertium-foo-bar-0.9.0.tar.gz are in your current dir, do
* New release version 1.0.3
<pre>
* Updated Makefile.am to fix 'make install' problem. See
scp apertium-foo-0.9.0.tar.gz apertium-foo-bar-0.9.0.tar.gz apertium@oqaa.projectjj.com:~/tarballs/
bug #3 in Bugzilla.
ssh apertium@oqaa.projectjj.com
cd tarballs
./install-tarball.sh apertium-foo-0.9.0.tar.gz
./install-tarball.sh apertium-foo-bar-0.9.0.tar.gz
systemctl --user restart apy
</pre>
</pre>


2. Possibly update the html-tools server:
==Making a release in SourceForge==


If the tarball installed new modes that weren't on apertium.org before (weren't in http://apy.projectjj.com/listPairs before), you'll have to (get spectie to) ssh to the machine running the apertium.org web page as well and <code>make clean && make -j8</code> there.
For this step, you'll need to be an admin on SourceForge (and you need the permission "Allow access to shell server group space (i.e. web space)").


==Tagging the release you just made in git==
First thing is to log into SourceForge and go to the Apertium [https://sourceforge.net/projects/apertium/files/ project files page].


In git, tagging a release is done using the <code>git tag</code> command, see <code>git help tag</code>.
If there is already a directory for the language pair, then click on it, if not, click on "add folder", and add a new directory. Click on "add file". Select the file on your computer to upload and click "upload". That's it!



You can also upload directly from the terminal like this, assuming your sf username is "foouser":
<pre>
<pre>
$ git tag -s -m "v1.0.0 released" v1.0.0 HEAD
$ rsync --progress -vh -e ssh apertium-foo-0.9.0.tar.gz foouser@frs.sourceforge.net:/home/frs/project/apertium/apertium-foo/
$ git push --tags
</pre>
</pre>
(The "frs" is supposed to be in there, means "file release system" or something like that)


The above will tag the current commit; you can change HEAD for some commit hash or branch if you want to tag that instead.
==Tagging the release you just made in SVN==


==Making a release on github==
In SVN, tagging a release is done using the <code>copy</code> command.


After tagging, you can
If there is already a module in the <code>/tags/</code> directory for the module you are packaging, then skip the next step, if not you'll need to do:
* go to https://github.com/apertium/apertium-foo-bar/releases/

* and pick your tag
<pre>
* and click "Edit release",
$ svn mkdir https://svn.code.sf.net/p/apertium/svn/tags/apertium-oc-ca
* and upload your tarball (and signature, if you did that)
</pre>

Now to tag the release, do:

<pre>
$ svn copy -r '{2007-06-10}' https://svn.code.sf.net/p/apertium/svn/trunk/apertium-oc-ca \
https://svn.code.sf.net/p/apertium/svn/tags/apertium-oc-ca/release-1.0.3
$ svn commit -m "Tagging release"
</pre>


You can leave out the -r argument if you want to tag the current (HEAD) revision as the release.





Latest revision as of 09:59, 26 April 2021

En français

WARNING

This page is out of date as a result of the migration to GitHub. Please update this page with new documentation and remove this warning. If you are unsure how to proceed, please contact the GitHub migration team.

Here are some simple steps to making a release, read the release policy for more information as to when a release should be made. Basically, we have four main stages, "building the package", "testing", "uploading to SourceForge" and "tagging in git".


Editing the build files[edit]

First update the build files to reflect the new version.

Edit Makefile.am and delete any lines like

RELEASE=0.9
VERSION=0.9.7

(Makefile.am shouldn't have any version info.)


Edit configure.ac:

-AC_INIT([Apertium Foolish-Barman], [0.9.7], [maintainer@domain.org], [apertium-foo-bar], [http://wiki.apertium.org/wiki/Apertium-foo-bar])
+AC_INIT([Apertium Foolish-Barman], [1.0.0], [maintainer@domain.org], [apertium-foo-bar], [http://wiki.apertium.org/wiki/Apertium-foo-bar])

Building the package[edit]

$ ./autogen.sh 
$ make dist

You should now have a file in the source directory called apertium-foo-bar-1.0.0.tar.gz.


If you have a GPG key, you can sign the release with

$ gpg --detach-sign --armor apertium-foo-bar-1.0.0.tar.gz

This will give you the file apertium-foo-bar-1.0.0.tar.gz.asc that you should upload along with apertium-foo-bar-1.0.0.tar.gz.

Testing[edit]

Copy the file somewhere temporary, extract it, and test it.

$ mkdir /tmp/test
$ ./configure --prefix=/tmp/test
$ make
$ make install

If you get any errors, go back, fix them in git, push and start again.

Installing the pair on apertium.org[edit]

1. First update the apy server:

Assuming the tarballs apertium-foo-0.9.0.tar.gz and apertium-foo-bar-0.9.0.tar.gz are in your current dir, do

scp apertium-foo-0.9.0.tar.gz apertium-foo-bar-0.9.0.tar.gz apertium@oqaa.projectjj.com:~/tarballs/ 
ssh apertium@oqaa.projectjj.com
cd tarballs
./install-tarball.sh apertium-foo-0.9.0.tar.gz
./install-tarball.sh apertium-foo-bar-0.9.0.tar.gz
systemctl --user restart apy

2. Possibly update the html-tools server:

If the tarball installed new modes that weren't on apertium.org before (weren't in http://apy.projectjj.com/listPairs before), you'll have to (get spectie to) ssh to the machine running the apertium.org web page as well and make clean && make -j8 there.

Tagging the release you just made in git[edit]

In git, tagging a release is done using the git tag command, see git help tag.

$ git tag -s -m "v1.0.0 released" v1.0.0 HEAD
$ git push --tags

The above will tag the current commit; you can change HEAD for some commit hash or branch if you want to tag that instead.

Making a release on github[edit]

After tagging, you can


Related pages[edit]