Fullscreen
[Show/Hide Left Column]
[Show/Hide Right Column]

Print

How to release

Table of contents


Requirements

  1. Linux shell environment, that you connect to via SSH
  2. Subversion 1.3 or more
  3. PHP 5.x CLI with MySQL, iconv, DOM and SimpleXML extensions
  4. PHP configuration must allow running external programs (like shell scripts)
  5. Plenty of disk space and memory ;) - at least 64M of memory for php (in php.ini for php-cli)

Procedure

1. Create a branch, if you are releasing a major version

This is done only once per major version (4.x, 5.x, 6.x, etc.). For minor versions, the work is done in current branch.

From a trunk checkout
php doc/devtools/svnbranch.php branches/5.x


More details on how to create a branch: SVNTips#Handling_branches

2. Checkout Tiki

You need to get a subversion checkout to a new directory (of this branch)

3. Run script

Go to the newly created directory
Display Basic Help
php doc/devtools/release.php --help

Display Release HOWTO, that details the whole procedure
php doc/devtools/release.php --howto


Follow instructions of the HOWTO, which will explain which how to use the release script (external link). The release script has an interactive mode, enabled by default, that will ask you if you really want to do each step. It also ask for a confirmation before commiting any changes, so you can have a look at them with another shell by using this command:
Check changes made by the release script before validating commits
svn --ignore-externals status
svn --ignore-externals diff

4. Test tarballs

Test on your server. Ideally, you have 1-2 other people trying on different servers.

5. Upload tarballs to Sourceforge

To upload the 'tarballs', copy-paste and execute the following line (and change '$SF_LOGIN' by your SF.net login and $VERSION with the version, which may look like "3.0.rc1" ):
cd ~/tikipack/$VERSION
scp *bz2 *gz *zip $SF_LOGIN@frs.sourceforge.net:uploads


You need to have "release technician" status

Reference:
http://apps.sourceforge.net/trac/sourceforge/wiki/Release%20files%20for%20download (external link)


6. Ask Communications Team to promote


7. Post package release

  • Incrementing version number? Ex.: after 4.1 release, branches/4.x release number should be 4.2 (SVN) and trunk should be trunk or 5.0 SVN
    • There are hard-coded values in templates/tiki-admin-include-profiles.tpl
  • _htaccess (external link) (should this be just after release or just before release?)

Release script


chat transcript of 3.0 RC1 (external link)


Improve the release process


Reduce to one the number of places where Tiki version is maintained

Good: http://de.tikiwiki.org/xref-HEAD/nav.html?lib/setup/twversion.class.php.html (external link)
Bad: http://de.tikiwiki.org/xref-HEAD/nav.html?db/convertscripts/tikiversion.php.html (external link)

Check database structure

Does a fresh install with tiki.sql have the same structure as an upgraded Tiki (we used to have a script for this, but hasn't been ported to new database structure.


script to test feature names

Manual check to make sure
  1. No typos on using feature names
  2. None are forgotten

Ideally, the script would report on (knowing it won't be perfect):

  1. To make a list of all possible feature_names used in the code
  2. Make a list of all possible feature_names appearing in admin panels
  3. Make a list of all possible feature_names appearing lib/setup/prefs.php

external
Make sure sites are still active.

to doc.tikiwiki.org
  • There is a script to test all outgoing links from Tiki. All outgoing links to doc.tw.o can be copied to a wiki page and we can check for missing docs. This will help detect duplicates, etc. http://doc.tikiwiki.org/Restore+Help+Pages (external link)
Is there a way to also check for plugins and modules?
etc.

  • This would help us detect, and delete useless (and potentially unsafe) files.
  • We already have a script which checks if php syntax is ok. What about broken links, like images (external link)?
    • also, as an example, tiki-register_site.php was removed as a link from the admin panel, presumably by accident.

Stats

  • Would be good for marketing to report on how many commits by how many different people since the previous version. 3.2 vs 3.1 for minor. 3.0 vs 2.0 for major


Other ideas & script



To branch or not to branch

Historically, we branch several weeks/months before an official release. However, it would also be possible to agree on a freeze and branch much later. Please add your arguments and preferences below.

Benefits of branching early (ex.: 4-6 weeks before)

  • Devs can still work on unfinished or new features
    • after all, not everyone may want to just fix, or would have to make himself familiar with unknown code first
  • (Psychological) Signal that freeze is in effect (only disadvantage in case if we do the way as in past merging to trunk is that people need to SVN switch, see below Merge or not to merge)
  • no accidental breaking code by devs not knowing of feature freeze (living in a bubble?)
  • clear and better controllable border between trunk and feature-freezed code
    • try on trunk. working? backport to branch
      • new and unexperienced devs won’t have to fear of doing something really bad when working on trunk

Accept Undecided Reject
3 0 0
  • Kissaki
  • luci
  • marclaporte

Benefits of branching at release time, or as late as possible

  • Less work of merging from branches/4 to trunk (in case we need to merge - see below)
    • and possibly the other way around
  • (Forcibly) Route manpower to only fixing and improving present and presently working (freezed) features.

Accept Undecided Reject
1 2 2
  • jonnybradley
  • luci
  • Kissaki
  • sylvieg
  • marclaporte

Close
After thinking about it more, because of the merges, I accept this only when I am forced to switch to work on 4.x branch after feature freeze — luci
But where do you commit the thing you are developping - innyour local or personal branches - and after do a bug commit where you lost the commit message? - sylvieg


Discussions

To merge or not to merge

Benefits of backporting from trunk to branch

For example branch 4.x would be something like "pre-proposed" where quality team can decide to rollback if anything inappropriate gets in, but they don't need to approve each and backport themselves to stable 4.x yet. At time of 4.0 release, this branch will become stabilized (what 3.0 is now) and new proposed branch for 4.x will be created...
  • avoids merge pain to trunk
  • devs can decide what code they think works well tested in trunk and would like to see released and can backport themselves
  • only tested things (bugfixes, UI enhancements) get in from trunk (no new features after feature freeze/branch creation) and we can be more sure we don't release weak / untested / unstable
  • possibility to clean and KIL as needed in the branch 4.x before final release without loosing code people work on in trunk but don't make it in time (keeping things on track in trunk)
  • we don't switch the merge/backport stream all the time before main release comes and don't force people to swicth to work on another branch
Accept Undecided Reject
2 0 0
  • luci
  • sylvieg_if_we_have_the_ressource


Benefits of merging from branch to trunk

  • faster development and focus on release (when devs are forced to switch to 4.x branch)
Accept Undecided Reject
1 0 1
  • sylvieg_if_we_do_not_have_the_ressource
  • luci



Contributors to this page: marclaporte31761 points  , sylvie2406 points  , Kissaki307 points  , jonnybradley1041 points  , luci1593 points  and nyloth584 points  .
Page last modified on Tuesday 09 March, 2010 16:09:27 UTC by marclaporte31761 points .

Main Menu [toggle]


Bugs and Wishes
  1. Report a Bug (or suggest a feature enhancement)

  2. Search Bugs

  3. List yours



About Development

Mailing lists

Extra Stuff

Teams

External Links

Full list of Wiki Pages

TikiWiki on Social Networks


To register [toggle]

To have an account at this site, please register at Tikiwiki.org (external link), and then use that user name and password to log in here.

Search a Wiki Page [toggle]

Exact match

Search Tracker Items Subject [toggle]

Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI – 508)
Action log 2.x
Administration
Ajax 2.x
Alert 3.x
Articles & Submissions
Backlinks
Banner
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution 2.x
Cookie
Copyright
Custom Home (and Group Home Page)
Database independence
Database MySQL
Date and Time
Debugger Console
Directory (of hyperlinks)
Documentation link from Tiki to doc.tikiwiki.org (Help System)
DogFood
Dynamic Content
Dynamic Variable
External Authentication
FAQ
Featured links
File Gallery
Forum
Friendship Network (Community)
Gmap Google maps
Group
Help System
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interaction
Inter-User Messages
InterTiki
jQuery
Karma
Live Support
Lost edit protection
Mail-in
Map with Mapserver
Menu
Meta Tag
Missing features
MindMap 3.x
Mobile Tiki and Voice Tiki
Mods
Module
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Payment 5.x
Performance Speed / Load / Compression / Cache
Permission
Poll
Profile Manager
Quiz
Rating
RSS
Score
Search engine optimization (SEO)
Search
Security
Semantic links 3.x
Shoutbox
Site Identity
Slideshow
Smarty Template
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
System log
Tags 2.x
Task
Tell a Friend + Social Bookmarking 2.x
TikiTests 2.x
Theme
Toolbar (Quicktags)
Trackers
TRIM
User Administration
User Files
User Menu
Watch
WebHelp
Webmail and Groupmail
WebServices 3.x
Wiki 3D
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace Ideas 4.x
WYSIWTSN 4.x
WYSIWYCA
WYSIWYG 2.x
XMLRPC

Last Comments [toggle]

  1. found another one
  2. Home-made fix