ReportLab Library Release Policy
This page sets out how we number releases.
We believe in Agile Development and our code base is almost always in a releasable state; test suites are
run every night, and daily builds made available. The numbered releases are largely a convenience, and
commercial customers can obtain stable interim builds at other times to suit project requirements.
We do concurrent releases of our open source (reportlab) and commercial (rlextra) packages with the
same numbers. The commercial packages are documented here, along with their release notes. Serious users are advised to keep
abreast of the commercial package documentation; it sits on top of the Open Source one, and we are better
at keeping the docs up to date, so new RML features will usually imply new ones in the ReportLab
Toolkit.
Version 1.X
We have generally aimed for extreme backward compatibility since our first release in summer 2000.
The last major release was version 1.20 from November 2004. This made it hard to make changes, and in
May 2005 we introduced a repository branch named python21-stable to support existing customers and
releases while working 'safely' on newer features. Once we had migrated all the customer release
processes to run off this, we could afford to be more experimental with the trunk of the repository. Now
that 2.0 is out, we have renamed branches/python21-stable to branches/version1,
and released 1.21 from that branch (see "what's new in 1.21"). The 1.21
release incorporates some feature additions and bug fixes from the last 18 months' work but in a manner
compatible with 1.20.
Version 2.0
The key change in 2.0 is use of unicode (see "what's new in 2.0").
Briefly, we now accept unicode and use unicode consistently throughout the entire toolkit. This will
break some applications, hence the increment of the major version number to "2".
Version 2.0 was released in May 2006. It's maintained on the trunk of the subversion source code repository. It's in production use for major projects and we are
documenting it. The code base was developed originally on a branch and merged into the trunk in March
2006. The first release of 2.0 was labelled "2.0a1" (subversion tag XXX). Development continues to
take place on the trunk.
In the event that a critical bug is found with the 2.0 release, and we needed to provide a patch
specifically for this, we would create a branch off the 2.0 tag and issue a version "2.0.1". Likewise
for version 2.1, 2.2 and so on. However in general we try not to introduce a third number.
Version 3.0 ("ReportLab 3000")
As with the Python language itself, we one day hope to do a release which cleans up
a lot of things and corrects earlier design mistakes. This is (always) about 2 years in the future ;-) Various
useful preliminary experiments towards this may appear in separate packages to avoid confusing the user
base and allow parallel running.
If at some point we decide to begin further development on the trunk which is INCOMPATIBLE with the 2.0 series,
we will create a "2.0 maintenance" branch and advise of this, then start working towards 3.0 on the trunk...