From ad7f5f85919e46b8c4e8dc9e83bb1de1d9dfa91c Mon Sep 17 00:00:00 2001 From: hobbes1069 Date: Mon, 5 Oct 2015 14:14:10 +0000 Subject: [PATCH] Commit draft instructions for branching and tagging. git-svn-id: https://svn.code.sf.net/p/freetel/code@2421 01035d8c-6547-0410-b346-abe4f91aad63 --- BRANCHING_AND_TAGGING | 69 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 BRANCHING_AND_TAGGING diff --git a/BRANCHING_AND_TAGGING b/BRANCHING_AND_TAGGING new file mode 100644 index 00000000..00337222 --- /dev/null +++ b/BRANCHING_AND_TAGGING @@ -0,0 +1,69 @@ +Here's my attempt to document the process for branching and tagging releases +of codec2 and freedv. + +1/ Update the version in CMakeLists.txt in both codec2-dev and freedv-dev to + the intended release version. + + Ideally the version in -dev would be greater + than the version branched or tagged but as we can't predict the next release + we settle for them at least being the same. + + Minor changes that don't break API/ABI compatibility (including bug fixes) + should only cause a PATCH level bump. + + Minor changes that do break API/ABI compatibility should bump the MINOR + version. + + MAJOR bumps should be reservered for significant milestones or major changes + to the UI or other changes that could be considered disruptive to the end + users experience. + +2/ Copy the source to a new branch directoy. + + The directory name should only include the MAJOR and MINOR version number. + + (from the freetel directory) + $ svn cp codec2-dev codec2/branches/. + $ svn cp freedv-dev freedv/branches/. + +3/ Go into each branch directory and make the necessary modifications. + + This could include Debug->Release changes (if set) + + Specifically in the case of freedv we need to change cmake/BuildCodec2.cmake + to checkout codec2 from the appropriate branch instead of codec2-dev. + +4/ Tag a release + + Similar to the previous step, except we copy from the branch dir to the tag + dir. + + $ svn cp codec2/branch/. codec2/tag/..[PATCH] + $ svn cp freedv/branch/. freedv/tag/..[PATCH] + + The patch level should only be specified if it exists (non-zero). + + Why both branch and tag you ask? While SVN doesn't enforce it, the idea + behind tags is that they are immutible, meaning once you tag a release it + doesn't change, instead you would update the branch with whatever changes + are needed and tag a new release (bump the minor version). + +5/ Export and archive the releases + + codec2: + $ svn export codec2/tags/..[PATCH] \ + codec2-..[PATCH] + $ tar acf codec2-..[PATCH].tar.xz \ + codec2-..[PATCH] + freedv: + $ svn export freedv/tags/..[PATCH] \ + freedv-..[PATCH] + $ tar acf freedv-..[PATCH].tar.xz \ + freedv-..[PATCH] + + This could probably be somewhat automated through a bash script, I'll work + on that when I have some free time. + +6/ Upload to files.freedv.org + + I'm not sure who all has access other than me. We'll address this later. -- 2.25.1