diff --git a/autobuild/infernal_autobuilds.pl b/autobuild/infernal_autobuilds.pl index 2ea7b9ab..f90751a1 100644 --- a/autobuild/infernal_autobuilds.pl +++ b/autobuild/infernal_autobuilds.pl @@ -25,8 +25,8 @@ # First we update in the source working directory. # chdir $srcdir || die "FAIL: couldn't cd to $srcdir"; -system("$svn update > autobuilds.log 2>&1"); if ($?) { die "FAIL: svn update"; } -system("$autoconf > autobuilds.log 2>&1 "); if ($?) { die "FAIL: H3 $autoconf"; } +system("$svn update > autobuilds.log 2>&1"); if ($?) { die "FAIL: svn update"; } +system("$autoconf > autobuilds.log 2>&1 "); if ($?) { die "FAIL: inf $autoconf"; } system("(cd easel; $autoconf) > autobuilds.log 2>&1"); if ($?) { die "FAIL: esl $autoconf"; } # Then we try to build on everything diff --git a/documentation/userguide/install.tex b/documentation/userguide/install.tex index 0bc01c75..0c6c1dca 100644 --- a/documentation/userguide/install.tex +++ b/documentation/userguide/install.tex @@ -4,14 +4,14 @@ \section{Installation} \subsection{Quick installation instructions} -Download \prog{infernal-1.1.tar.gz} from \url{http://infernal.janelia.org/}, or +Download \prog{infernal-1.1rc1.tar.gz} from \url{http://infernal.janelia.org/}, or directly from -\url{ftp://selab.janelia.org/pub/software/infernal/infernal-1.1.tar.gz}; +\url{ftp://selab.janelia.org/pub/software/infernal/infernal-1.1rc1.tar.gz}; unpack it, configure, and make: -\user{wget ftp://selab.janelia.org/pub/software/infernal/infernal-1.1.tar.gz}\\ -\user{tar xf infernal-1.1.tar.gz}\\ -\user{cd infernal-1.1}\\ +\user{wget ftp://selab.janelia.org/pub/software/infernal/infernal-1.1rc1.tar.gz}\\ +\user{tar xf infernal-1.1rc1.tar.gz}\\ +\user{cd infernal-1.1rc1}\\ \user{./configure}\\ \user{make} diff --git a/documentation/userguide/tutorial.tex b/documentation/userguide/tutorial.tex index 79f6a0bb..ae04eefe 100644 --- a/documentation/userguide/tutorial.tex +++ b/documentation/userguide/tutorial.tex @@ -199,12 +199,12 @@ \subsubsection{Step 1: build a covariance model with cmbuild} \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1 (June 2012) +# INFERNAL 1.1rc1 (June 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # CM file: tRNA5.cm -# alignment file: ../tutorial/tRNA5.sto +# alignment file: tutorial/tRNA5.sto # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # rel entropy # ----------- @@ -284,7 +284,7 @@ \subsubsection{Step 2: calibrate the model with cmcalibrate} \begin{sreoutput} # cmcalibrate :: fit exponential tails for CM E-values -# INFERNAL 1.1 (June 2012) +# INFERNAL 1.1rc1 (June 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -339,12 +339,12 @@ \subsubsection{Step 3: search a sequence database with cmsearch} \begin{sreoutput} # cmsearch :: search CM(s) against a sequence database -# INFERNAL 1.1 (June 2012) +# INFERNAL 1.1rc1 (June 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # query CM file: tRNA5.cm -# target sequence database: ../tutorial/mrum-genome.fa +# target sequence database: tutorial/mrum-genome.fa # number of worker threads: 2 # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \end{sreoutput} @@ -352,7 +352,6 @@ \subsubsection{Step 3: search a sequence database with cmsearch} The second section is a list of ranked top hits (sorted by E-value, most significant hit first): -% tutorial regression: tRNA5-search.out \begin{sreoutput} rank E-value score bias sequence start end mdl trunc gc description ---- --------- ------ ----- ----------- ------- ------- --- ----- ---- ----------- @@ -795,7 +794,7 @@ \subsubsection{Step 3: search a sequence database with cmsearch} described above. In this search there were 56 such hits. Finally, the running time of the search is reported, in CPU time and -elapsed time. This search took about 1.4 seconds of elapsed (wall +elapsed time. This search took about 1.8 seconds of elapsed (wall % ^^^ clock time) (running on two cores). @@ -939,7 +938,7 @@ \subsubsection{Step 3: search the CM database with cmscan} \begin{sreoutput} # cmscan :: search sequence(s) against a CM database -# INFERNAL 1.1 (June 2012) +# INFERNAL 1.1rc1 (June 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1032,6 +1031,7 @@ \subsubsection{Step 3: search the CM database with cmscan} % ^^^^ examined. The next line reports that the average number of residues re-searched for truncated hits per model was 992.0. An average is +% ^^^^^ reported here because remember the number of residues re-searched per model depends on the expected maximum size of a hit, which varies per model, because only sequence terminii are examined for truncated hits @@ -1165,7 +1165,7 @@ \subsection{Creating multiple alignments with cmalign} \begin{tinysreoutput} # STOCKHOLM 1.0 -#=GF AU Infernal 1.1 +#=GF AU Infernal 1.1rc1 mrum-tRNA.1 GGAGCUAUAGCUCAAU..GGC..AGAGCGUUUGGCUGACAU........................................CCAAAAGGUUAUGGGUUCGAUUCCCUUUAGCCCCA #=GR mrum-tRNA.1 PP ****************..***..******************........................................*********************************** @@ -1294,7 +1294,7 @@ \subsubsection{cmalign assumes sequences may be truncated} \label{cmalign-cobalamin} \begin{sreoutput} # STOCKHOLM 1.0 -#=GF AU Infernal 1.1 +#=GF AU Infernal 1.1rc1 Cobalamin.1 -------------------------------GUAGGCAAAAGGAAGAGGAAGgAUGGUGGAAAUCCUUCACGGGCCCGGCCA #=GR Cobalamin.1 PP ...............................44455566666899******989**************************** @@ -1393,7 +1393,7 @@ \subsection{Searching a sequence database for RNAs with unknown or no \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1 (June 2012) +# INFERNAL 1.1rc1 (June 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1651,11 +1651,11 @@ \subsection{Specifying and annotating match positions with cmbuild --hand} To build the hand-specified model from this alignment, do: -\user{cmbuild --hand tRNA5-hand.cm tutorial/tRNA5.hand.sto} +\user{cmbuild --hand tRNA5-hand.cm tutorial/tRNA5-hand.sto} \begin{sreoutput} # cmbuild :: covariance model construction from multiple sequence alignments -# INFERNAL 1.1 (June 2012) +# INFERNAL 1.1rc1 (June 2012) # Copyright (C) 2012 Howard Hughes Medical Institute. # Freely distributed under the GNU General Public License (GPLv3). # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/release-notes/00CHECKLIST b/release-notes/00CHECKLIST index 9f4460cc..c716734c 100644 --- a/release-notes/00CHECKLIST +++ b/release-notes/00CHECKLIST @@ -1,33 +1,33 @@ Checklist for an Infernal release. -SRE, Fri Jun 20 10:22:03 2008 +EPN, Mon Jun 25 14:40:53 2012 + +Updated for 1.1 release, based on HMMER's 00CHECKLIST. ------------------------------------- When editing this 00CHECKLIST, it is best to edit it only in the trunk, not in a release branch. It isn't included in releases anyway. Subversion repository: https://svn.janelia.org/eddylab/eddys/src/infernal -Trunk: https://svn.janelia.org/eddylab/eddys/src/infernal/trunk/ - -Easel follows an 'unstable trunk' policy. -Each major release goes onto a stable branch. -Every release (even minor ones) is tagged. - -There's three types of releases: major releases, minor releases, and -snapshots. A major release gets its own branch. A minor release puts -bug fixes into a major branch. A snapshot is straight from the -development trunk. - -Version naming: example -major . 1.0 -minor .. 1.0.1 -alpha .a 1.0a1 -beta .b 1.0b1 -release candidate .rc 1.0rc1 -snapshot ..snap 1.0.snap20080325 - -1. Announce the intent to release to all developers. - Commit working copies on all machines (including Easel). - Example of checking for stray or uncommitted files: + +HMMER follows an 'unstable trunk' policy. Each major release goes +onto a stable branch. Every release (even minor ones) is tagged. + +Release types: major releases, minor releases, and snapshots. A major +release gets its own branch. A minor release puts bug fixes into a +major branch. A snapshot is from the development trunk. + +Version naming: example +major . 1.0 +minor .. 1.0.1 +alpha .a 1.0a1 +beta .b 1.0b3 +release candidate .rc 1.0rc1 +snapshot ..snap 1.0.snap20080325 + + +* Announce intent to release to all developers. + Commit working copies on all machines. + Check for stray uncommitted files: ./configure make distclean svn update @@ -35,279 +35,649 @@ snapshot ..snap 1.0.snap200803 Clean up any stray files identified by 'svn status'. 'svn add' and 'svn commit' as needed to commit new or modified files. -2. For a major release (where we're about to create a new branch): - First test the development trunk. - Compile should be entirely clean when compiled -Wall. - [MPI builds require being on login-eddy] - - ssh login-eddy - ./configure --enable-debugging --enable-mpi --prefix=/groups/eddy/home/eddys/tmp/infernal - make - (cd documentation/userguide; make) - make check - make install - make REPOSITORY=https://svn.janelia.org/eddylab/eddys/src/infernal/trunk RELEASE=snapxxx dist +================================================================ += Creating a new major release branch, if necessary +================================================================ - When trunk is clean, - svn commit - We're (usually) next going to move out of the trunk to the release branch. +For major public releases (1.1, 1.2): we create a Subversion branch, +so we can continue support (with bugfixes) without disrupting +development of the next main release. +* First test the development trunk. + Compile should be entirely clean when compiled -Wall. + 'make check' should be clean. + 'make dev' should be clean. + '(cd documentation/userguide; make)' should work -3. For a major release, create stable release branches for Infernal and Easel. - All subsequent bugfix releases will happen in this branch, while trunk keeps moving. - [Query replace the version # here] - svn copy https://svn.janelia.org/eddylab/eddys/src/infernal/trunk\ - https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.0\ - -m "created 1.0 release branch" - svn copy https://svn.janelia.org/eddylab/eddys/easel/trunk\ - https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.0\ - -m "created Infernal 1.0 release branch" - - -4. Move into a working copy of the release branch. - - For a dev snapshot, this is the normal working copy. - For a major or minor release, this is a fresh working copy of the appropriate branch: - cd ~/releases - svn checkout https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.0 infernal-release - - Don't call this working directory infernal-xx, nor infernal! Call it - infernal-release, because later "make dist" is going to try to create - infernal-xx as its release, and because you want to recognize that - it's different from src/infernal. - - If this is the first time (a new release branch), you also need to update the "svn:externals" - so Easel is checked out from the appropriate stable branch too. - - svn proplist --verbose https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.0 - svn propedit svn:externals infernal-release - easel https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.0 - cd infernal-release - svn update - svn commit + When trunk is clean, + svn commit + We're (usually) next going to move out of the trunk to the release branch. - Note the hassle with svn:externals, because it currently only accepts - absolute URLs. Relative paths are supposed to become available in - Subversion 1.5, which may help. +* Create stable release branch from the trunk. + All subsequent bugfix releases will happen in this branch, while trunk keeps moving. + svn copy https://svn.janelia.org/eddylab/eddys/src/infernal/trunk\ + https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1\ + -m "created Infernal 1.1 release branch" + svn copy https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk\ + https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1\ + -m "created Infernal 1.1 release branch" + svn copy https://svn.janelia.org/eddylab/eddys/easel/trunk\ + https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1\ + -m "created Infernal 1.1 release branch" + + +================================================================ += Work in the current release branch (~/releases/hmmer-release) +================================================================ + +Once a release branch has been taken (either new, or by a merge from +the trunk destined to become a release), work only in the release +branch. We'll merge changes back to the trunk when the release cycle +is complete. + +* Checking out a release branch for the first time, in ~/releases/ + cd ~/releases + svn checkout https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 infernal-release + +Don't call this working directory infernal-1.1, nor infernal! Call it +infernal-release, because later "make dist" is going to try to create +infernal-xx as its release, and because you want to recognize that it's +different from src/infernal. + +If this is the first time (a new release branch), you also need to +update the "svn:externals" so Easel and HMMER are checked out from +the appropriate stable branch too. + + svn proplist --verbose https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 + svn propedit svn:externals infernal-release + easel https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1 + hmmer https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1 + cd infernal-release + svn update + svn commit -4.5 [For minor bugfix releases, on branches]: +Note the hassle with svn:externals, because it currently only accepts +absolute URLs. Relative paths are supposed to become available in +Subversion 1.5, which may help. Later if we merge the branch back to +the trunk, the merge will mess up easel's and hmmer's externals, and +we'll have to propedit the trunk. - Figure out what bug fixes need to be merged from the development trunk. - For Infernal 1.0rc2, this is r2497,2498; Easel r277 - Then in a working copy of the 1.0 branch, merge from trunk: +================================================================ += Large merges from the trunk: try to avoid +================================================================ + +It's preferable to add bug fixes to the release branch, then merge +them one at a time back to the trunk. + +However, there may be times when we merge the trunk to the branch in +toto, as one big diff. To do that, if you must: + +first merge infernal trunk in: + cd ~/releases + svn checkout https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 infernal-release + cd infernal-release + svn merge https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 https://svn.janelia.org/eddylab/eddys/src/infernal/trunk + +now fix the svn:externals: + svn propedit svn:externals infernal-release + easel https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1 + hmmer https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1 + +now merge into easel and hmmer: + cd infernal-release/easel + svn merge https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1 https://svn.janelia.org/eddylab/eddys/easel/trunk + cd ../hmmer + svn merge https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1 https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk + + +================================================================ += Preparing a distribution +================================================================ + +We prepare and make a distro; later we test it thoroughly. This way +we'll test exactly the version that's rolling out. If something goes +wrong, it's easy enough to come back and make a new tarball. + + +* Write the release notes in releases/. + To gather information, check: + Infernal Bugs/BUGTRAX - update this file to mark release that fixed + bugs, and divider indicating release. + Paper notebook since last release + svn log since last release: + svn log -r3022:HEAD https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk + svn log -r428:HEAD https://svn.janelia.org/eddylab/eddys/easel/trunk + + When done, svn add the new RELEASE-xxx file. + + +* Edit configure.ac: make sure version, date, copyright info is set correctly. + Do this in easel and hmmer too, they won't use their configure's + unless someone goes in there and manually does it, but they should + be updated (e.g. version i1.1). + emacs configure.ac + emacs easel/configure.ac + emacs hmmer/configure.ac + autoconf; (cd easel; autoconf); (cd hmmer; autoconf); + ./configure + . release-notes/LICENSE.sh + + +********************************************************************* +NOTE: For 1.1rc1, I didn't regress against any old version, so +INFERNAL_OLDVERSION is undefined. For next release, it will be +defined, so I left the notes pertaining to it here (these were copied +from HMMER3's 00CHECKLIST). +********************************************************************* + +* Edit .bashrc + I use the following environment variables in the scripting below: + INFERNAL_VERSION The current version. + INFERNAL_OLDVERSION The version we regress against. (found in ~releases/infernal-${INFERNAL_OLDVERSION} + INFERNAL_RELEASE_NOTEBOOK The e-notebook dir ({HOME}/notebook/xxx) + + Having these set everywhere, in all the ssh'ing you're about to + do, simplifies the scripting below, and reduces the odds of + cut/paste errors. + + . ~/.bashrc + +* Build versions for the Tutorial runs. + +This needs to be an icc/MPI version - mpi tests are included. +Build a previous version (${INFERNAL_OLDVERSION}) in addition to the release candidate. + +icc 11.1 with IntelMPI; on login-eddy +gcc 4.1.2 without mpi; on login-eddy + +Note that my .bashrc includes some configuration of the compilation +environment. I have functions "setup_icc_intel64" and "setup_icc_ia32" +for setting up the appropriate icc. I also have a number of Intel MPI +environment variables set. + +Note I don't do 'make devcheck' here, simply in the interest of time +(it takes about an hour). We'll do that later to make sure everything +passes. + +On login-eddy (our compile host): + ssh login-eddy + cd ~/releases/infernal-release + make distclean + rm -rf build-gcc + mkdir build-gcc + cd build-gcc + ../configure > build.out 2>&1 + make >> build.out 2>&1 + make dev >> build.out 2>&1 + make check >> build.out 2>&1 + + ssh login-eddy + cd ~/releases/infernal-release + rm -rf build-icc-mpi + mkdir build-icc-mpi + cd build-icc-mpi + setup_icc_intel64 + ../configure CC=icc LDFLAGS=-static-intel --enable-mpi > build.out 2>&1 + make >> build.out 2>&1 + make dev >> build.out 2>&1 + make check >> build.out 2>&1 + +***Again, I skipped the OLDVERSION steps for the 1.1rc1 release. Do + them for the next release. + + ssh login-eddy + cd ~/releases/infernal-${INFERNAL_OLDVERSION} + make distclean + rm -rf build-gcc + mkdir build-gcc + cd build-gcc + ../configure > build.out 2>&1 + make >> build.out 2>&1 + make dev >> build.out 2>&1 + make check >> build.out 2>&1 + + ssh login-eddy + cd ~/releases/infernal-${INFERNAL_OLDVERSION} + rm -rf build-icc-mpi + mkdir build-icc-mpi + cd build-icc-mpi + setup_icc_intel64 + ../configure CC=icc LDFLAGS=-static-intel --enable-mpi > build.out 2>&1 + make >> build.out 2>&1 + make dev >> build.out 2>&1 + make check >> build.out 2>&1 + +This sets up: + +Release candidate: + srcdir ~/releases/infernal-release + builddir (gcc) ~/releases/infernal-release/build-gcc + builddir (icc,MPI) ~/releases/infernal-release/build-icc-mpi + +~/releases/infernal-${INFERNAL_OLDVERSION} (old version for regression): + srcdir ~/releases/infernal-${INFERNAL_OLDVERSION} + builddir (gcc) ~/releases/infernal-${INFERNAL_OLDVERSION}/build-gcc + builddir (icc,MPI) ~/releases/infernal-${INFERNAL_OLDVERSION}/build-icc-mpi + + +* Update the user guide - including the tutorial section, and + version numbers in the installation section. + See last ~/notebook entry for scripts. + Don't slack off on this step - it's a useful regression test as well. + +* Commit + svn status +do any cleanup... + svn commit + + +================================================================ += Creating a source distribution +================================================================ + +${INFERNAL_VERSION}, ${EASEL_VERSION}, and ${HMMER_VERSION} tags used +below should match @INFERNAL_VERSION@, @EASEL_VERSION@ and +@HMMER_VERSION@ in configure.ac, Makefile. + +* + cd ~/releases + +* Delete any old releases of the same number + rm -rf infernal-${INFERNAL_VERSION} + rm -f infernal-${INFERNAL_VERSION}.tar + rm -f infernal-${INFERNAL_VERSION}.tar.gz + +* Export a snapshot, alpha, beta, or release candidate from the development trunk: + svn export https://svn.janelia.org/eddylab/eddys/src/infernal/trunk infernal-${INFERNAL_VERSION} + cd infernal-${INFERNAL_VERSION} + + or: Export a major or minor release from its branch + svn export https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 infernal-${INFERNAL_VERSION} + cd infernal-${INFERNAL_VERSION} + autoconf; (cd easel; autoconf); (cd hmmer; autoconf); + ./configure + . release-notes/LICENSE.sh + + 1.1rc1: exported 4130/774 + +* Check that svn has file permissions right. + Both of these should have no output. + find . ! -perm -u+r -print + find . -perm o+x ! -perm -u+x -print + +* versioning, dating, licensing (these are originally set in + configure.ac, and exported as shell variables by LICENSE.sh call above) +* must do Easel and HMMER first + + easel/devkit/sedition EASEL_VERSION ${EASEL_VERSION} EASEL_DATE "${EASEL_DATE}" EASEL_COPYRIGHT "${EASEL_COPYRIGHT}" easel/00README + easel/devkit/sedition EASEL_VERSION ${EASEL_VERSION} EASEL_DATE "${EASEL_DATE}" EASEL_COPYRIGHT "${EASEL_COPYRIGHT}" easel/COPYRIGHT + easel/devkit/sedition EASEL_VERSION ${EASEL_VERSION} EASEL_DATE "${EASEL_DATE}" EASEL_COPYRIGHT "${EASEL_COPYRIGHT}" easel/INSTALL + easel/devkit/sedition EASEL_VERSION ${EASEL_VERSION} EASEL_DATE "${EASEL_DATE}" EASEL_COPYRIGHT "${EASEL_COPYRIGHT}" easel/LICENSE.tag + find easel -type f -exec easel/devkit/sedition-pp LICENSE easel/LICENSE.tag {} \; + + easel/devkit/sedition HMMER_VERSION ${HMMER_VERSION} HMMER_DATE "${HMMER_DATE}" HMMER_COPYRIGHT "${HMMER_COPYRIGHT}" hmmer/README + easel/devkit/sedition HMMER_VERSION ${HMMER_VERSION} HMMER_DATE "${HMMER_DATE}" HMMER_COPYRIGHT "${HMMER_COPYRIGHT}" hmmer/COPYRIGHT + easel/devkit/sedition HMMER_VERSION ${HMMER_VERSION} HMMER_DATE "${HMMER_DATE}" HMMER_COPYRIGHT "${HMMER_COPYRIGHT}" hmmer/INSTALL + easel/devkit/sedition HMMER_VERSION ${HMMER_VERSION} HMMER_DATE "${HMMER_DATE}" HMMER_COPYRIGHT "${HMMER_COPYRIGHT}" hmmer/release-notes/LICENSE.tag + find easel -type f -exec easel/devkit/sedition-pp LICENSE hmmer/release-notes/LICENSE.tag {} \; + + easel/devkit/sedition INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE "${INFERNAL_DATE}" INFERNAL_COPYRIGHT "${INFERNAL_COPYRIGHT}" README + easel/devkit/sedition INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE "${INFERNAL_DATE}" INFERNAL_COPYRIGHT "${INFERNAL_COPYRIGHT}" COPYRIGHT + easel/devkit/sedition INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE "${INFERNAL_DATE}" INFERNAL_COPYRIGHT "${INFERNAL_COPYRIGHT}" INSTALL + easel/devkit/sedition INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE "${INFERNAL_DATE}" INFERNAL_COPYRIGHT "${INFERNAL_COPYRIGHT}" release-notes/LICENSE.tag + find . -type f -exec easel/devkit/sedition-pp LICENSE release-notes/LICENSE.tag {} \; + + cd documentation/manpages/ + for manpage in *.man; do\ + ../../easel/devkit/sedition INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE "${INFERNAL_DATE}" INFERNAL_COPYRIGHT "${INFERNAL_COPYRIGHT}" INFERNAL_LICENSE "${INFERNAL_LICENSE}" INFERNAL_URL "${INFERNAL_URL}" $manpage;\ + done + cd ../.. + +* compile documentation + cd documentation/userguide + make + mv Userguide.pdf ../../Userguide.pdf + cd ../.. + + +* clean up files that don't belong in the distro, + including hmmer's easel subdir. + (I chose to remove Manuscripts because it's big (39M)) + make distclean + cp release-notes/RELEASE-${INFERNAL_VERSION} RELEASE-NOTES + rm -rf Bugs + rm -rf Manuscripts + rm -rf documentation/userguide + rm -rf release-notes + rm -rf autobuild + + cd hmmer + rm -rf easel + rm -rf bugs + rm -rf contrib + rm -rf documentation/userguide + rm -rf release-notes + rm -rf test-speed + rm -rf autobuild + rm -rf autom4te.cache + + cd ../easel + rm -f 00CHECKLIST LICENSE.csh.in LICENSE.tag + rm -rf documentation + cd .. + +* record and finish release notes + (Sean's command in HMMER that I skipped because I'm not sure what it + does: cat RELEASE-NOTES | dumpnotes ) + + emacs RELEASE-NOTES +Delete TO-DO sections and clean up for public consumption. - svn update - svn merge -r 2496:2498 https://svn.janelia.org/eddylab/eddys/src/infernal/trunk - cd easel - svn merge -r 276:277 https://svn.janelia.org/eddylab/eddys/easel/trunk - + (Again, not sure of this command that Sean uses for hmmer: 'texclean') + +* package + cd .. + tar cvf infernal-${INFERNAL_VERSION}.tar infernal-${INFERNAL_VERSION} + gzip infernal-${INFERNAL_VERSION}.tar + + 1.1rc1: 11.7 Mb (gzipped) + +All subsequent tests are on this source distro. + + +================================================================ += Build for testing +================================================================ + +On login-eddy (our compile host): + ssh login-eddy + cd ~/releases/infernal-${INFERNAL_VERSION} + mkdir build-gcc + cd build-gcc + ../configure > build.out 2>&1 + make >> build.out 2>&1 + make dev >> build.out 2>&1 + make check >> build.out 2>&1 + + ssh login-eddy + cd ~/releases/infernal-${INFERNAL_VERSION} + mkdir build-icc-mpi + cd build-icc-mpi + setup_icc_intel64 + ../configure CC=icc LDFLAGS=-static-intel --enable-mpi > build.out 2>&1 + make >> build.out 2>&1 + make dev >> build.out 2>&1 + make check >> build.out 2>&1 + + +================================================================ += Testing +================================================================ + +See latest e-notebook for tests. + +As of 1.1rc1, I'm not doing any regressions. At next release, I'll +regress against 1.1rc1. + +Current testing is three sets of jobs, see notebook 00LOG. These +scripts should be in ${INFERNAL_RELEASE_NOTEBOOK}/tests/ + +tests-fast.sh: fast enough to run in succession. +tests-fast-valgrind.sh: same tests as tests-fast.sh but valgrind +tests-slow.sh: submit to cluster, includes MPI jobs. + +Output tests-fast.sh and tests-fast-valgrind.sh to a file, and +manually look at each line for errors. + +Remember to test on both builds (gcc and icc-mpi). + +Then run some anecdotal tests. + +Also, do a rmark3 benchmark with default settings and --mid. + +Check the userguide (Userguide.pdf). + + +================================================================ += Binary distros +================================================================ + + cd ${INFERNAL_RELEASE_NOTEBOOK} + mkdir Distros; cd Distros + +After talking with Sean, we decided to distribute linux-intel-gcc +instead of linux-intel-ia32 and linux-intel-x86_64 because of this +warning: + icc: warning #10237: -lcilkrts linked in dynamically, static library not available +If this gets resolved in the future, we may go back to distributing +binaries built with icc (64 and 32). + +Note: the configure call differs from the one Sean uses in hmmer. I +specify --prefix. If I don't do that I get a 'make install' error +because I don't have permission to change the permissions on the man +directory. Also, as a result I have to delete the share/ directory +after I install. (Sean doesn't have to do that b/c his build won't +create it). + +Two builds: + linux-intel-gcc + macosx-intel + +linux-intel-gcc: + ssh login-eddy + export INFERNAL_DISTRO=linux-intel-gcc + cd ${INFERNAL_RELEASE_NOTEBOOK}/Distros + tar zxf ~/releases/infernal-${INFERNAL_VERSION}.tar.gz + mv infernal-${INFERNAL_VERSION} infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} + cd infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} + mkdir build-${INFERNAL_DISTRO} + cd build-${INFERNAL_DISTRO} + ../configure \ + --bindir=${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}/binaries \ + --prefix=${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} \ + > ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make dev >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make check >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make install >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + (cd easel/miniapps; make install >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1) + rm -rf ${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}/share + + cd .. + rm -rf build-${INFERNAL_DISTRO} + cd .. + tar cf infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}.tar infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} + gzip infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}.tar + + +macosx-intel build (on Sean's desktop): + ssh 10.102.30.160 + export INFERNAL_DISTRO=macosx-intel + + cd ${INFERNAL_RELEASE_NOTEBOOK}/Distros + tar zxf ~/releases/infernal-${INFERNAL_VERSION}.tar.gz + mv infernal-${INFERNAL_VERSION} infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} + cd infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} + + mkdir build-${INFERNAL_DISTRO} + cd build-${INFERNAL_DISTRO} + ../configure \ + --bindir=${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}/binaries \ + --prefix=${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} \ + > ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make dev >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make check >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + make install >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1 + (cd easel/miniapps; make install >> ${INFERNAL_RELEASE_NOTEBOOK}/Distros/build-${INFERNAL_DISTRO}.out 2>&1) + rm -rf ${INFERNAL_RELEASE_NOTEBOOK}/Distros/infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}/share + + cd .. + rm -rf build-${INFERNAL_DISTRO} + cd .. + tar cf infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}.tar infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO} + gzip infernal-${INFERNAL_VERSION}-${INFERNAL_DISTRO}.tar + +------------------------- + + +================================================================ += Distribution +================================================================ + +* copy to ftp site + + I don't currently have permission to do the scp calls Sean does + directly into var/ftp/pub/software/infernal/, but I can scp to my + home directory and then 'sudo mv' it to + /var/ftp/pub/software/infernal/, which is what I do below. + + Also, the /var/ftp/pub/software/infernal/ directory is organized a + bit differently than the /var/ftp/pub/software/hmmer/ one. hmmer has + a directory for each release, infernal only has a tarball. The + README, RELEASE-NOTES, etc. files only exist at the top level, for + the current release. I chose not to mimic hmmer with 1.1rc1, because + it would require changing the website significantly. + + ssh selab + export INFERNAL_VERSION=1.1rc1 + mkdir ~/to-be-infernal-${INFERNAL_VERSION} + logout + + cd ~/releases + scp infernal-${INFERNAL_VERSION}/README selab:~/to-be-infernal-${INFERNAL_VERSION} + scp infernal-${INFERNAL_VERSION}/RELEASE-NOTES selab:~/to-be-infernal-${INFERNAL_VERSION} + scp infernal-${INFERNAL_VERSION}/COPYRIGHT selab:~/to-be-infernal-${INFERNAL_VERSION} + scp infernal-${INFERNAL_VERSION}/LICENSE selab:~/to-be-infernal-${INFERNAL_VERSION} + scp infernal-${INFERNAL_VERSION}/Userguide.pdf selab:~/to-be-infernal-${INFERNAL_VERSION} + scp infernal-${INFERNAL_VERSION}.tar.gz selab:~/to-be-infernal-${INFERNAL_VERSION} + cd ${INFERNAL_RELEASE_NOTEBOOK}/Distros + scp infernal-${INFERNAL_VERSION}-linux-intel-gcc.tar.gz selab:~/to-be-infernal-${INFERNAL_VERSION} + scp infernal-${INFERNAL_VERSION}-macosx-intel.tar.gz selab:~/to-be-infernal-${INFERNAL_VERSION} + + ssh selab + export INFERNAL_VERSION=1.1rc1 + sudo mv ~/to-be-infernal-${INFERNAL_VERSION}/* /var/ftp/pub/software/infernal/ + echo ftp://selab.janelia.org/pub/software/infernal/infernal-${INFERNAL_VERSION}.tar.gz + sudo rm -f /var/ftp/pub/software/infernal/infernal.tar.gz + (cd /var/ftp/pub/software/infernal; sudo ln -s infernal-${INFERNAL_VERSION}.tar.gz infernal.tar.gz) + logout + +* Update the web site and the blog I can't do a 'make', because I + don't have proper permission. So I have to copy all the files that + change in ~/web/infernal/ (usually just index.html) to + selab:~/to-be-web/, then sudo mv them to /opt/www/infernal/docs/ + + ssh selab + rm -rf ~/to-be-web/ + mkdir ~/to-be-web/ + logout -5. Test. - The infernal testsuite is currently relatively weak. It needs to include - valgrind tests for memory leaks, for example. - - But even so, don't rely solely on the automated exercises and bug tests. - Run some anecdotal examples by hand too. - - On login-eddy, because we need mpicc: - - autoconf - (cd easel; autoconf) - (cd testsuite; ln -s ../easel/devkit/sqc .) - env CFLAGS="-g -Wall" ./configure --enable-mpi --prefix=/groups/eddy/home/eddys/tmp/infernal - make - make check - - Make a new DicF model in this version's format, for - backwards compatibility testing: - cd testsuite - ../src/cmbuild DicF-$RELEASE.cm DicF.seed - svn add DicF-$RELEASE.cm - Add a line to exercises.sqc. - - Run some anecdotes. Examples: - ../src/cmbuild foo.cm ../intro/trna.sto - ../src/cmsearch foo.cm trna-regression.fa - Run those with valgrind, too. - - Check the User's Guide. - cd documentation/userguide - make - - -6. Write (or update) release notes. - For the first time on a new release branch, it's handy to look - at the svn log. Replace "1534" below with the last release's SVN rev. - svn log -r 1534:HEAD | more - cd easel - svn log -r 314:HEAD | more - emacs documentation/release-notes/RELEASE-${RELEASE} - svn add documentation/release-notes/RELEASE-${RELEASE} - - sre/src sre/easel - Release from-rev to-rev from-rev to-rev - ------- -------- ------ -------- ------ - 0.6: 875 1477 ? 72 - 0.7: 1477 1534 72 84 - 0.71: 1534 1725 84 139 - 0.72: 1725 1862 139 149 - 0.8: 1862 1968 149 174 - 0.81 - bugfix release on 0.8 branch - 1.0rc1 1968 2485 174 272 [1.0 branch] - 1.0rc2 2485 2499 272 278 [1.0 branch] - 1.0rc3 2499 2594 278 293 [1.0 branch] - 1.0rc4 2594 2633 293 303 [1.0 branch] - 1.0rc5 2633 2670 303 309 [1.0 branch] - 1.0 2670 2700 309 314 [1.0 branch] - 1.0.1 2700 2995 314 420 [1.0 branch] - 1.0.2 2995 3019 420 426 [1.0 branch] - - These release notes will be merged back into the trunk later, if - we're in a branch. - - -7. Update the copyright, year stamps. - - configure.ac (release, relcode, date) - - COPYRIGHT (year only) - -8. Commit to SVN; include release number in the log message - svn commit - Remember to separately commit in Easel if changes were made there. - -9. Tag. - We don't bother to tag snapshots. - For a new major release, or a bugfix minor release, - the tags are made from the relevant stable branch: - - svn copy https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.0 \ - https://svn.janelia.org/eddylab/eddys/src/infernal/tags/1.0.2 \ - -m "tagged Infernal 1.0.2 release, from 1.0 stable branch" - svn copy https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.0\ - https://svn.janelia.org/eddylab/eddys/easel/tags/infernal/1.0.2\ - -m "tagged Easel for Infernal 1.0.2 release, from 1.0 stable branch" - - Note: if you screw up somewhere below, and need to come back and - re-tag, you must delete the previous tagged versions first: - svn delete https://svn.janelia.org/eddylab/eddys/src/infernal/tags/1.0.1 \ - -m "needed to make more changes; deleted tag; new tag coming" - svn delete https://svn.janelia.org/eddylab/eddys/easel/tags/infernal/1.0.1\ - -m "needed to make more changes; deleted tag; new tag coming" - -10. Make a distribution tarball. - (Remaking configure scripts w/ autoconf is needed) - make distclean - autoconf - (cd easel; autoconf) - ./configure <-- makes a Makefile (needed for "make dist") - - major or minor: - make REPOSITORY=https://svn.janelia.org/eddylab/eddys/src/infernal/tags/1.0.2 dist - snapshot: - make REPOSITORY=https://svn.janelia.org/eddylab/eddys/src/infernal/trunk RELEASE=snap20080325 dist - - Alternatively, make -n dist' and execute commands yourself one at a - time, under a Bourne shell like 'bash' so the for loops work. - - This exports into a infernal-$RELEASE directory, alongside the - infernal working directory in ~/releases/. The tarball is also - left in ~/releases/. - - Go into infernal-$RELEASE and make sure it looks good from the - perspective of a new user: start by reading the README's. - -11. Build for our system (on login-eddy) - cd releases/infernal-xxx - setenv OMPI_CC "icc" - setenv OMPI_CFLAGS "-O3" - ./configure --enable-mpi --prefix=/usr/local/infernal-1.0.2/ - make - make check - (cd testsuite; ./sqc -p ../squid/ -r ../../infernal-0.52/src 4 regressions.sqc ../src/) - ^^^^ replace w/ latest old version - - Didn't run regressions at the 0.71 or later releases. Need to leave - old release in the releases subdir for the regressions test above to work. - - Currently, I don't have permission to install software on login-eddy, so - just email Goran at this point. - - -12. Put on the FTP site. (on selab) - scp 00README selab:/opt/www/ftp/pub/software/infernal/ - scp documentation/release-notes/RELEASE-1.0.2 selab:/opt/www/ftp/pub/software/infernal/00RELEASE - scp COPYRIGHT selab:/opt/www/ftp/pub/software/infernal - scp LICENSE selab:/opt/www/ftp/pub/software/infernal/ - scp Userguide.pdf selab:/opt/www/ftp/pub/software/infernal/ - scp ../infernal-1.0.2.tar.gz selab:/opt/www/ftp/pub/software/infernal/ - ssh selab rm -f /opt/www/ftp/pub/software/infernal/infernal.tar.gz - ssh selab "(cd /opt/www/ftp/pub/software/infernal; ln -s infernal-1.0.2.tar.gz infernal.tar.gz)" - -13. Update the web site cd ~/web/infernal/ emacs index.html - make - texclean + scp index.html nawrockie@selab:~/to-be-web/ + + ssh selab + sudo mv ~/to-be-web/index.html /opt/www/infernal/docs/ + logout + + cd ~/web/infernal/ svn commit + +* tag the release. Replace version # below! + cd ~/releases/infernal-release + + svn copy https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1\ + https://svn.janelia.org/eddylab/eddys/src/infernal/tags/${INFERNAL_VERSION}\ + -m "tagged 1.1 release, from 1.1 branch" + svn copy https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1\ + https://svn.janelia.org/eddylab/eddys/src/hmmer/tags/infernal/${INFERNAL_VERSION}\ + -m "tagged HMMER for Infernal 1.1 release, from Infernal 1.1 branch" + svn copy https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1\ + https://svn.janelia.org/eddylab/eddys/easel/tags/infernal/${INFERNAL_VERSION}\ + -m "tagged Easel for Infernal 1.1 release, from Infernal 1.1 branch" + + 1.1rc1: svn 4131 hmmer:4132 easel:775 + +* Merge the branch's changes back to the trunk + (This section is more verbose here than in the hmmer 00CHECKLIST. I + added some notes from the old 1.0.2 Infernal 00CHECKLIST) + + You must do this by diff of specific revisions in the branch. + Do *not* diff the branch against the trunk; if the trunk has its own + changes that should be retained, you'll revert them to the branch + version! + + If you're doing a minor bugfix release on a stable branch, you know the + revs that introduced the bugfixes; merge them explicitly. For example: + + cd ~/src/infernal + svn update + svn merge -r 3019:HEAD https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.0 + + If you're doing a major release on a new stable branch: + First identify the rev #'s for when we made the release branch. + In the release working copy: + + cd ~/releases/infernal-release/ + svn log --verbose --stop-on-copy + cd hmmer + svn log --verbose --stop-on-copy + cd easel + svn log --verbose --stop-on-copy -14. Clean up. Don't remove the old directory though, we will (should) use it for regression testing - at the next release. - cd ~/releases - mv infernal-1.0.2.tar.gz ~/Archives/ - cd infernal-release - make distclean - cd ../infernal-1.0.2 - make distclean + infernal hmmer easel + 1.1rc1: r4120:4130 r4123:r4124 r773:r774 -15. Merge the changes from the "stabilized" release branch back into the trunk. + Careful with off-by-ones here. Changes made with the first + revision in the range WON'T be merged (i.e. r4120: change of + svn:externals). - If you're doing a minor bugfix release on a stable branch, you know the - revs that introduced the bugfixes; merge them explicitly. For example: - cd ~/src/infernal + (Note with 1.1rc1, I didn't include the revisions to hmmer (r4122) + and easel (r773) that changed the HMMER_VERSION, EASEL_VERSION + variable in the configure.ac files to i1.1rc1). + + Go back to working copies of the trunks and merge the release branches into it. + cd ~/src/infernal/trunk svn update - svn merge -r 3019:HEAD https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.0 - - If you're doing a major release on a new stable branch: - First identify the rev #'s for when we made the release branch. - In the release working copy: - svn log --verbose --stop-on-copy <-- ssdk, squid are the same - cd easel - svn log --verbose --stop-on-copy - infernal easel - 0.6: (r1465; Easel is r72.) - 0.7: (r1522; Easel is r81.) - 0.71: (r1723; Easel is r139.) - 0.8: r1966 r1967 r1968 r173 - 1.0rc1 r2485 r272 - - Go back to working copies of the trunks, and merge the release branches into it. - cd ~/src/infernal + + svn diff -r r4120:4130 https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 > tmp + svn diff -r r4123:4124 https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1 + svn diff -r r773:774 https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1 + + svn merge -r 4120:4130 https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.1 + + cd hmmer svn update - svn merge -r 2485:HEAD https://svn.janelia.org/eddylab/eddys/src/infernal/branches/1.0 + svn merge -r 4123:4124 https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1 cd ../easel svn update - svn merge -r 272:HEAD https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.0 + svn merge -r 773:774 https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1 - Now, the merge will always screw up the svn:externals for Infernal. Reset them. + Now, depending on how you did the merge (whether or not you included + the revision that did the propedit change of externals), you may + have screwed up the svn:externals for Infernal. Check them and reset + them if necessary. + cd .. + svn proplist --verbose svn propedit svn:externals . - easel https://svn.janelia.org/eddylab/eddys/easel/trunk - [didn't screw up on 1.0rc1?] - - - 1.0rc2-1.0rc5,1.0 - For subsequent rc's, the only thing that has changed is the release notes; so: - cd ~/src/infernal/documentation/release-notes - cp ~/releases/infernal-release/documentation/release-notes/RELEASE-1.0.1 . - - - Commits. + easel https://svn.janelia.org/eddylab/eddys/easel/trunk + hmmer https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk + + Commits. svn commit + ( cd hmmer ; svn commit ) ( cd easel ; svn commit ) +Release history +--------------- + + 0.3 - SRE, Thu Jul 4 10:27:16 2002 0.5 - SRE, Sun Oct 6 14:22:47 2002 0.51 - SRE, Wed Oct 9 09:43:50 2002 @@ -328,4 +698,5 @@ snapshot ..snap 1.0.snap200803 1.0rc5 - SRE, Wed Dec 17 17:59:01 2008 r2673 Easel:r310 1.0 - SRE, Tue Jan 13 14:33:16 2009 r2710 Easel:r317 1.0.1 - SRE, Sat Oct 24 10:12:50 2009 r2997 Easel:r422 -1.0.2 - SRE, Fri Oct 30 13:57:33 2009 r3022 Easel:r428 \ No newline at end of file +1.0.2 - SRE, Fri Oct 30 13:57:33 2009 r3022 Easel:r428 +1.1rc1 - EPN, Wed Jun 27 22:02:39 2012 r4131 Easel:r775 diff --git a/release-notes/LICENSE.tag b/release-notes/LICENSE.tag index 6200a91e..3b1a57f7 100644 --- a/release-notes/LICENSE.tag +++ b/release-notes/LICENSE.tag @@ -1,7 +1,7 @@ -HMMER - Biological sequence analysis with profile HMMs -Version @HMMER_VERSION@; @HMMER_DATE@ -@HMMER_COPYRIGHT@ +Infernal - inference of RNA secondary structure alignments +Version @INFERNAL_VERSION@; @INFERNAL_DATE@ +@INFERNAL_COPYRIGHT@ Other copyrights also apply. See the COPYRIGHT file for a full list. -HMMER is distributed under the terms of the GNU General Public License +Infernal is distributed under the terms of the GNU General Public License (GPLv3). See the LICENSE file for details.