kopia lustrzana https://github.com/Hamlib/Hamlib
Update for Git release procedure.
rodzic
522229d736
commit
a9121e1b9d
151
README.release
151
README.release
|
@ -2,19 +2,22 @@
|
||||||
This file is a release HOWTO, more or less a reminder before releasing
|
This file is a release HOWTO, more or less a reminder before releasing
|
||||||
a new version of Hamlib.
|
a new version of Hamlib.
|
||||||
|
|
||||||
TODO: With the switch to SVN SCM discuss the use of tags and branches
|
TODO: With the switch to Git SCM discuss the use of branches
|
||||||
for releases.
|
for releases and point releases.
|
||||||
|
|
||||||
Before deciding release:
|
Before deciding release:
|
||||||
-----------------------
|
-----------------------
|
||||||
* Anticipate what problems would users experience with the new release,
|
* Anticipate what problems would users experience with the new release,
|
||||||
so you can fix the problems before making the release.
|
so you can fix the problems before making the release.
|
||||||
Basically, this is making sure the package will
|
Basically, this is making sure the package will compile on a whole
|
||||||
compile on a whole breed of systems (arch,OS,library,gcc,etc. combo),
|
breed of systems (arch, OS, library, gcc, etc. combo),
|
||||||
that there's no regression, and the API evolution is managed well.
|
that there's no regression, and the API evolution is managed well.
|
||||||
|
|
||||||
* Announce SVN/version freeze on hamlib-developer mailing list,
|
* Announce version freeze on hamlib-developer mailing list,
|
||||||
so developers have time to check in their contributions.
|
so developers have time to check in their contributions.
|
||||||
|
In order to provide for a timely release schedule with the popular
|
||||||
|
Ubuntu distribution, announcing a freeze around January 1 and July 1
|
||||||
|
of each year will provide about a month of testing before release.
|
||||||
|
|
||||||
* Update the configuration:
|
* Update the configuration:
|
||||||
clean the tree
|
clean the tree
|
||||||
|
@ -22,47 +25,135 @@ Before deciding release:
|
||||||
|
|
||||||
Releasing Hamlib:
|
Releasing Hamlib:
|
||||||
----------------
|
----------------
|
||||||
|
In the master branch of your local repository (the key to working with Git
|
||||||
|
is that all work is committed to the local repository and then pushed to the
|
||||||
|
remote repository, "origin"):
|
||||||
|
|
||||||
|
* Assure the local repository is sync'ed with origin/master:
|
||||||
|
git fetch
|
||||||
|
git status
|
||||||
|
|
||||||
|
At this point Git may produce a message such as:
|
||||||
|
|
||||||
|
$ git status
|
||||||
|
# On branch master
|
||||||
|
# Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
|
||||||
|
#
|
||||||
|
nothing to commit (working directory clean)
|
||||||
|
|
||||||
|
As there appear to be no conflicts, the following command will sync your
|
||||||
|
local repository to origin/master:
|
||||||
|
|
||||||
|
$ git reset --hard origin/master
|
||||||
|
HEAD is now at 522229d chmod +x autogen.sh
|
||||||
|
|
||||||
|
Thanks, Kamal Mostafa, KA6MAL
|
||||||
|
|
||||||
* Update NEWS, TODO, AUTHORS
|
* Update NEWS, TODO, AUTHORS
|
||||||
|
|
||||||
* Update the version in the macro AC_INIT of configure.ac (remove 'svn')
|
* Commit the changes to master:
|
||||||
|
git status # Assure that only the previous files are modified
|
||||||
|
git commit -a # Commit all modified files locally
|
||||||
|
|
||||||
* Regenerate ChangeLog with:
|
* Create a new branch for the release:
|
||||||
TZ=UTC svn2cl
|
git branch Hamlib-1.2.14
|
||||||
|
|
||||||
* svn commit -m "release X.Y.Z" ChangeLog configure.ac NEWS
|
* Push the changes (check for validity):
|
||||||
Note the revision number (N).
|
git push origin # pushes previous commit to sf.net repository
|
||||||
* Tag the SVN rep with version 'HAMLIB-x-y-z'
|
git push origin Hamlib-1.2.14 # push the branch
|
||||||
svn copy -r N https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk \
|
|
||||||
https://hamlib.svn.sourceforge.net/svnroot/hamlib/tags/HAMLIB-x-y-z \
|
|
||||||
-m "release x.y.z"
|
|
||||||
|
|
||||||
* Build source tarball:
|
* Update the version in the macro AC_INIT of configure.ac (advance to next
|
||||||
svn co -r N https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk hamlib
|
version, e.g. 1.2.15~git) and the libhamlib_la_LDFLAGS value in
|
||||||
sh autogen.sh --enable-maintainer-mode
|
src/Makefile.am and c++/Makefile.am to match. e.g.:
|
||||||
|
libhamlib_la_LDFLAGS = $(WINLDFLAGS) $(OSXLDFLAGS) -no-undefined -version-info @ABI_VERSION@:15:0
|
||||||
|
|
||||||
# (Would the above command be better invoked as:
|
Note that -version-info is a libtool flag and reflects ABI compatibility.
|
||||||
# sh autogen.sh --disable-maintainer-mode --prefix=/usr/local CFLAGS="-g -O0"
|
In @ABI_VERSION@:15:0, ABI_VERSION is set in configure.ac, 15 is the
|
||||||
# ?? comments please.)
|
revision, and :0 should remain 0. When the API is changed, ABI_VERSION
|
||||||
|
will be advanced, and revision (e.g. :15) will be reset to 0.
|
||||||
|
|
||||||
|
Format is ABI version:revision:age. Setting age to other than 0 causes
|
||||||
|
strange DLL naming in Win32 cross-compile builds.
|
||||||
|
|
||||||
|
* Commit the changes to configure.ac and src/Makefile.am and push them to
|
||||||
|
the remote repository.
|
||||||
|
|
||||||
|
At this point the master branch is ahead of the new release branch, however,
|
||||||
|
the version in the branch's version needs to have the "~git" changed to "~rc1"
|
||||||
|
which will be advanced for the next release candidate or stripped for final
|
||||||
|
release:
|
||||||
|
|
||||||
|
* Checkout the release branch:
|
||||||
|
git checkout Hamlib-1.2.14
|
||||||
|
|
||||||
|
* Edit config.ac, commit it and push it. The branch is now ready for
|
||||||
|
rc testing/release.
|
||||||
|
|
||||||
|
* Build source tarball from a clean clone (anonymous clone is fine):
|
||||||
|
git clone -b Hamlib-1.2.14 git://hamlib.git.sourceforge.net/gitroot/hamlib/hamlib
|
||||||
|
cd hamlib
|
||||||
|
sh autogen.sh --prefix=/usr/local
|
||||||
make dist
|
make dist
|
||||||
|
|
||||||
* Build Windows DLL from previous tarball, and .LIB, then create .zip file
|
|
||||||
Rem: under Linux, you need the package mingw32(+zip) to cross-compile it,
|
|
||||||
and an internal copy of libltdl (configured and built),
|
|
||||||
and free MVC++Toolkit to create .lib file:
|
|
||||||
make distwin32
|
|
||||||
|
|
||||||
Upload & edit Properties: select Windows
|
Win32 binary build release
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
In these steps the release or daily snapshot tarball is unpacked in ~/temp
|
||||||
|
for the Win32 build and all operations are done from there unless otherwise
|
||||||
|
noted.
|
||||||
|
|
||||||
|
Under Linux you need the mingw32 package to cross-compile it, an internal
|
||||||
|
copy of libltdl (configured and built as below), zip to create the archive,
|
||||||
|
the tofrodos or dos2unix package installed to convert to DOS text format,
|
||||||
|
and Wine plus the free MVC++Toolkit available from:
|
||||||
|
|
||||||
|
http://uploading.com/files/HNH73WB3/VCToolkitSetup%28v1.01%29%282004.07.06%29.zip.html
|
||||||
|
|
||||||
|
to create the Win32 .LIB file (unzip and then install it with Wine in the
|
||||||
|
usual way).
|
||||||
|
|
||||||
|
NB: Debian Squeeze and later users will need an updated mingw32-runtime
|
||||||
|
package and can manually install the Ubuntu version from:
|
||||||
|
|
||||||
|
http://packages.ubuntu.com/maverick/devel/mingw32-runtime
|
||||||
|
|
||||||
|
Finally, the Win32 version of libusb must be available for the USB backends to
|
||||||
|
be built. Download the latest libusb-win32-bin-1.2.4.0.zip from:
|
||||||
|
|
||||||
|
https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.4.0/
|
||||||
|
|
||||||
|
and unzip the archive in ~/temp/libusb-win32-bin-1.2.4.0 and then copy the
|
||||||
|
following into libusb-win32-bin-1.2.4.0/lib/pkgconfig/libusb.pc
|
||||||
|
|
||||||
|
---------------CUT-----------------------------
|
||||||
|
prefix=/home/USER/temp/libusb-win32-bin-1.2.4.0
|
||||||
|
exec_prefix=${prefix}
|
||||||
|
libdir=${exec_prefix}/lib/gcc
|
||||||
|
bindir=${exec_prefix}/bin
|
||||||
|
includedir=${prefix}/include
|
||||||
|
|
||||||
|
Name: libusb
|
||||||
|
Description: USB access library
|
||||||
|
Version: 1.2.4.0
|
||||||
|
Libs: -L${libdir} -L${bindir} -lusb
|
||||||
|
Cflags: -I${includedir}
|
||||||
|
---------------CUT-----------------------------
|
||||||
|
|
||||||
|
|
||||||
|
* Build Windows DLL from previous tarball, and .LIB, then create .zip file
|
||||||
|
make distwin32
|
||||||
|
|
||||||
* Build Windows DLL with stdcall convention:
|
* Build Windows DLL with stdcall convention:
|
||||||
Ditto but with HAMLIB_API set to __stdcall in include/hamlib/rig_dll.h before re-compiling.
|
Ditto but with HAMLIB_API set to __stdcall in include/hamlib/rig_dll.h before re-compiling.
|
||||||
Subsitute cdecl by stdcall in README.txt.
|
Subsitute cdecl by stdcall in README.txt.
|
||||||
|
|
||||||
|
|
||||||
* Release the file(s)
|
* Release the file(s)
|
||||||
- https://sourceforge.net/projects/hamlib/files/
|
- https://sourceforge.net/projects/hamlib/files/
|
||||||
- Select Hamlib
|
- Select Hamlib
|
||||||
- Click Add Folder, name it X.Y.Z
|
- Click Add Folder, name it X.Y.Z[.a]
|
||||||
- Select X.Y.Z
|
- Select X.Y.Z[.a]
|
||||||
- Click Add File button
|
- Click Add File button
|
||||||
- Click Choose File button
|
- Click Choose File button
|
||||||
- Click Upload
|
- Click Upload
|
||||||
|
@ -96,7 +187,3 @@ To advertise:
|
||||||
- where we're heading,
|
- where we're heading,
|
||||||
- what kind of support we need
|
- what kind of support we need
|
||||||
|
|
||||||
Get ready for the next round:
|
|
||||||
* Bump version number and append 'svn' to it in macro AC_INIT of configure.ac
|
|
||||||
|
|
||||||
* Update src/Makefile.am revision of -version-info
|
|
||||||
|
|
Ładowanie…
Reference in New Issue