###############################################################################
# Copyright (c) 2000-2021 Ericsson Telecom AB
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
#
# Contributors:
#   Balasko, Jeno
#   Kovacs, Ferenc
#   Pandi, Krisztian
#
###############################################################################
Preparing for the release
=========================

Assume that the release date and version (e.g. /2 R1A) are fixed and
clear. The nightly tests were successful for at least three days before
the release date. It was one of our release criterias which not
necessarily valid today. Juli is notified.

Finishing documents
===================

A few days before the release Juli sends a list of documents, which need
to be updated. The version numbers need to be set. If a document is no
longer needed use a '/' character instead of a version number. Otherwise,
increase the version number appropriately when a given document is changed,
if not the version number will remain the same. The letter with the proper
version numbers should be sent back to Juli.

For version CRL 113 200/2 R2A:

Doc no.... 1095-CRL 113 200/2               Rev. B 120717    *Hist.rev.
Doc resp.. ETH/XZX          Des resp.. ETH/XZX       Text. N Ready to. R1A
Func des.. TTCN-3 Executor                  PREL             Show prel.(Y/
                                           PRA,DS4,          PR-,DS-,
   A-cd  Document number/ +  R1A                        R2A
-- ----- ------------------------------ -  FREE---- PREL---- FREE---- PREL
   0     109 21-                           -1,A                       -2,A
   1     109 47-                           A                          
   1     1/1531-                           A                          Installation Guide
   1     3/1531-                           A                          Eclipse install.guide
   1     1/198 17-                         A                          user guide
   1     2/198 17-                         A                          Reference guide
   1     4/198 17-                         A                          Eclipse_Designer_userguide
   1     5/198 17-                         A                          Eclipse_Executor_userguide
   1     6/198 17-                         A                          Apiguide
   1     7/198 17-                         A                          UG for TITAN MCTR GUI

Test doksik:

A   A-cd  Document number/+  R1A                        R2A
--- ----- ------------------------------ -  FREE---- PREL---- FREE---- PRE
    3     152 83-                           A                         TTCN-3 Executor Test Report
    3     3/152 83-                         A                         Test Report for TITAN Designer and TITAN Executor for the Eclipse IDE, TITAN R7.1 project
    3     7/152 91-                         A                         Test description - RAW coder 
    3     8/152 91-                         A                         Test description - BER coder 
    3     12/152 91-                        A                         Test description of the TTCN-3 Semantic Analyzer: Unknown Object 
    3     14/152 91-                        A                         Test description of the TTCN-3 Semantic Analyzer: Scope Rules
    3     15/152 91-                        A                         Test description of the TTCN-3 Semantic Analyzer: Parameters
    3     16/152 91-                        A                         Test description of the TTCN-3 Semantic Analyzer:Type compatibility 
    3     17/152 91-                        A                         Test description of the TTCN-3 Semantic Analyzer:Values, Value Lists, Ranges, Length, Dimensions, 
    3     18/152 91-                        A                         Test description of the TTCN-3 Test description of the TTCN-3 Semantic Analyzer: Location of Languag    
    3     20/152 91-                        A                         Test description of the TTCN-3 Semantic Analyzer: Adhoc tests 
    3     21/152 91-                        A                         Test Description - Text based coding for TTCN-3 Test Executor 
    3     22/152 91-                        A                         Test description of the TTCN-3 Semantic Analyzer:Implicit message encoding 
    3     23/152 91-                        A                         Test Description for TITAN Designer and TITAN Executor for the Eclipse IDE 

The name of the document is additional information in the last column, they look
a bit strange sometimes...

The PRI contains the list of:
- Solved CRs for the release (using to the Titan worklist)
- Solved TRs for the release (using an MHWeb filter based on the release version)
- Open TRs (using an MHWeb filter)

The "TTCN-3 Executor Test Report" needs to be updated when the Titan test suite
was modified between releases. It can be found in /function_test/doc.

All the documents are sent to Juli in .doc format except the test documents, they
need to be converted to .pdf using http://edfs.ericsson.se:8080/edfsweb.

Releasing and Building Titan
============================

- Update version numbers in the code and documentation both in Eclipse and the
  compiler. This affects the following files:
  - /Makefile.cfg
  - /common/version.h
  - /eclipse/com.ericsson.titan.executor/src/com/ericsson/titan/executor/executors/jni/LaunchConfigurationDelegate.java
  - /eclipse/com.ericsson.titan.designer/src/com/ericsson/titan/designer/GeneralConstants.java

- Tag all the source files in the TTCNv3 module:
  cvs tag v2-1-pl0 Makefile* .cvsignore common compiler2 core core2 ctags eclipse
  etc hello help license logbrowser mctr2 repgen usrguide xsdconvert loggerplugins
  (If something goes wrong later the tag can be removed and replaced.)

- The official Titan package needs to be built on korsch Solaris SPARC 2.6 with gcc
  3.4.6. Be aware that this is a very slow machine without HP support. AFAIK, we don't
  even know the root password of it. If something happens with it... It would be better
  to use one of our Linux platforms as official platform. Solaris going out of fashion.
  The current Makefile.cfg is ready for this Solaris build, everything is in place.

- Building packages on VMware images can be simplified using Gabor Szalai's scripts
  like build_titan.sh in /mnt/TTCN/Tools/bin. It requires two parameters, one for the
  source directory and one for the target directory. It sets everything in Makefile.cfg.

Releasing and Building the Eclipse Plugins
==========================================

An Eclipse installation is necessary, its version is not important, but all
the plugins should run on this version without problem. Check the
documentation for any restriction. The following things make an Eclipse release:

- Check out the CVS and import all the Titan Eclipse plugins to your workspace
  using "Import" -> "General" -> "Existing Projects into Workspace" and select
  the root directory checked out. Eclipse will automatically create the projects
  for all the plugins (common, designer, executor, help, regressiontests) and
  features (designer, executor, logviewer).

- Build the plugins using "Build Project", but previously compile all the ANTLR
  grammar files by hand taking care of their dependencies. The ANTLR plugin will
  not handle these dependencies and there will be errors otherwise.

- Try out the plugins.

- Update the version number in all of the feature.xml files of the three features,
  then push this new version to the plugins using the "Plug-ins" tab -> "Versions..."
  -> "Force feature version into plug-in and fragment manifests". This needs to be
  done for all of the features. Save all the files and commit the changes to CVS,
  do this before tagging the code base.

- Copy the documentation (all the PDFs from /usrguide) to the doc directory of
  the help plugin.

- Upload the plugins to the official update site page:
  http://ttcn.ericsson.se/download/update_site. All the older plugins need
  to remain accessible there as well. The index.html needs to be updated by hand.
  The best way to do this is to copy the whole update site to your local workspace
  and add the three new features (designer, executor, logviewer) to the update
  site project, then rebuild the update site with "Build All". The artifacts.jar,
  content.jar, site.xml will be updated automatically. The three new features
  and five new plugins (common, designer, executor, help, logviewer) will be
  written into them.

- Three static packages needed for: http://ttcn.ericsson.se/download:
  - TITAN Designer for Eclipse IDE (only the designer)
  - TITAN Executor for Eclipse IDE (only the executor)
  - TITAN Designer and Executor for Eclipse IDE (Designer and Executor merged)
  These are simple archives (.zip) and users with no access to the main update
  site can use these to update their plugins from disk. A separate update site
  project is necessary for each of these packages. The "TITAN Designer for
  Eclipse IDE" contains the logviewer as well... These packages are stored by
  Juli in PRIM together with the official Titan build.

Final steps
===========

Juli will release a Titan binary package compiled on Korsch using gcc 3.4.6
and the archived Eclipse plugins and tag them in CC. The tag name for Eclipse
plugins is TITAN_2_R1A and TITAN_2_R1A_GCC3.4.6 for the binary package. When
Juli is ready with this and all the documents are accepted, the release is
officially done. The korsch is used for historical reasons, it would be better to
use a HUB machine for this purpose. The HP has no information about this SPARC
Solaris 2.6 machine, it's very slow and we don't have the root password for it...

The Eclipse plugins and the binary package should be made available for Juli,
e.g. on HUB:
- From /proj/TTCN/www/ttcn/root/download/docs_for_juli_titan_r10a/Eclipse to /vobs/ttcn/TCC_Releases/Titan/TitanPlugins4Eclipse
- From /proj/TTCN/www/ttcn/root/download/docs_for_juli_titan_r10a/TTCNv3-1.10.pl0-gcc3.4.6 to /vobs/ttcn/TCC_Releases/Titan/Titan_Sol

TTCNv3-1.10.pl0-gcc3.4.6 is an unzipped Titan installation directory. The
contents of Eclipse:

Designer/
Designer_and_Executor/
Executor/

These are the unzipped update site projects.

Update index.htmls both in /proj/TTCN/www/ttcn/root/download and
/proj/TTCN/www/ttcn/root/download/update_site on HUB and upload PDF documentation,
namely:
- Eclipse_Designer_userguide.pdf
- Eclipse_Executor_userguide.pdf
- Eclipse_installationguide.pdf
- PRI_2_2_A.pdf (Version!)
- apiguide.pdf
- installationguide.pdf
- referenceguide.pdf
- releasenotes.pdf
- userguide.pdf
- userguide_mctr_gui.pdf

Notifying the users
===================

Conventionally a release letter is sent for each of our active users found
in our license database. Additionally the release letter is uploaded to the
Titan project page as well: https://ericoll.internal.ericsson.com/sites/
Titan/Lists/Titan%20Announcements/AllItems.aspx.

A sample release letter can be sent using the system's default mailer for all
the users with active Titan license. The list of these users can be obtained
by an SQL query on any HUB machine:

mysql -u etccadmi1 -D ttcn3 --host=esekilx0007-sql5.rnd.ki.sw.ericsson.se
--port=3314 -pAsQw1123 -e"SELECT DISTINCT licensee_email FROM licenses
WHERE email_announce = 'Yes' AND valid_until >= CURDATE()"

The list should be saved into a file and with a simple script the release
letter can be delivered to all of the users one by one. Some years ago it
was sent to a mailing list, but now it's different... You can run this script
on HUB or somwhere else where the mailer is configured correctly:

for u in `cat 2r2a_users.txt`; do
mail -r ferenc.kovacs@ericsson.com
  -s "Titan CRL 113 200/2 R2A release notification" $u <2r2a_notification.txt;
done

2r2a_users.txt is coming from the SQL query with a simple stdout redirection,
it's a newline separated list (NOTE! the line endings must be Unix line endings)
of email addresses iterable with this simple
script. 2r2a_notification.txt can contain the following, ignore version
numbers and features now:

Titan CRL 113 200/2 R1A release notification

Dear TTCN-3 User,

We would like to announce that version CRL 113 200/2 R1A (2.1.pl0) of Titan
TTCN-3 Test Executor was released.

The new features besides the bugfixes are:
- The Titan Eclipse Designers support for preprocessed TTCN-3 files has
  been improved.
- The performance of TEXT decoding has been improved.
- A logger plugin (JUnitLogger) is now delivered with Titan. It outputs XML
  files in the same format as JUnit. Using this logger plugin allows
  integrating of Titan with the Jenkins (Hudson) continuous integration tool.
- To allow JUnitLogger to receive the necessary information, the Titan Logger
  API has been slightly changed. Existing logger plugins will need to be
  rebuilt.
- In response to a TR (HP88760), the C++ interface of the OBJID class has
  been changed. The type of the elements in the internal storage of the
  OBJID class is now specified with a typedef, objid_component. Code which
  uses the indexing operators or directly accesses the element storage will
  need to be rewritten. It is a backward incompatible change and it affects
  users of the SNMP test port. A new version of the SNMP test port was
  released (CNL 113 344 R4B) compatible with the new Titan.
- ttcn3_makefilegen has a new flag -P, which prints out the list of files
  found in a given TPD recursively relative to a given directory.
- TTCN-3 level code coverage was implemented.
- Text hover for T3Doc in Eclipse was implemented.
- mctr_gui, ttcn3_logbrowser, ctags, Nedit, XEmacs support are parts of the
  Titan package again.

The newest Titan version can be downloaded from
http://ttcn.ericsson.se/download/update_site/
This site can also be used as an "update site" inside Eclipse to easily install
the provided Eclipse plug-ins.

Older Titan versions can be downloaded from http://ttcn.ericsson.se/download/

For the complete list and detailed description of the changes please refer to
the Release Notes document: http://ttcn.ericsson.se/download/releasenotes.pdf
or http://ttcn.ericsson.se/download/update_site/releasenotes.pdf

The binary packages, Eclipse plug-ins and the documentation are available on
the usual URL: http://ttcn.ericsson.se/download/ or
http://ttcn.ericsson.se/download/update_site/

We published binary packages for Solaris (SPARC, version 2.6 and above), Linux
(i386, various distributions) and Windows (Cygwin and native) to be used with
GCC versions 3.x and/or 4.x.

For Solaris 8 and ClearCase users the binary package have been uploaded into
our release VOB under the usual place. The Titan part has the labels
TITAN_2_R1A_GCC3.4.6 and TITAN_2_R1A while the Eclipse plug-ins have the label
TITAN_2_R1A.

For the Eclipse plug-ins and ClearCase "local update site" packages were
uploaded into our release VOB under the usual place with label TITAN_2_R1A.
Please note that it is strongly advised to use the update site for installing
the Eclipse plug-ins.

For this release we have limited the number of binary packages that are built
automatically. If it happens that you seriously miss a specific package for your
system please come back with a request to TTCN3(ETH) mailing list
(ttcn3@ex1.eemea.ericsson.se) including your motivation and the number of
affected users.

If you have any questions or troubles about our tool (or even the TTCN-3 language
itself) do not hesitate to contact us via the TTCN3(ETH) mailing list
(ttcn3@ex1.eemea.ericsson.se).

With best regards,
Ferenc Kovacs on behalf of the Developer Team
