How to do a release of Ceylon.
- Find every occurence of the previous version
0.5
and turn it into0.6
- Beware that in ceylon-runtime you need to rename some folders whose name is the version number, and
module.xml
contents.
- Find every occurence of the previous code name
Analytical Engine
and turn it into the new one - If required, bump
AbstractTransformer.BINARY_MAJOR_VERSION
and all the@Ceylon(major = X)
annotations inceylon.language
and the compiler tests'.src
files
- Note that most likely you'll need a new Herd as well (good luck)
- Check that external sample code (in particular https://github.com/ceylon/ceylon-examples) complies and runs OK.
- Make sure the following projects are up-to-date or at the proper version
- ceylon-spec
- ceylon-compiler
- ceylon-common
- ceylon-model
- ceylon-js
- ceylon.language
- ceylon-module-resolver
- ceylon-runtime
- ceylon-dist
- Make sure you're running Java 7
- Run all the compiler tests in Eclipse
- Concurrent tests
- Integration tests
- CeylonDoc tests
- Make a test distribution $ cd ceylon-dist ceylon-dist $ ant clean publish-all
- Run the language tests $ cd ceylon.language ceylon.language $ ant test
- Check that you can compile the SDK $ cd ceylon-sdk ceylon-sdk $ ant clean compile test
- Tag every project $ git tag 0.6 $ git push --tags
- Do the release zip $ cd ceylon-dist ceylon-dist $ ant release
- Copy the zip to downloads.ceylon-lang.org: $ scp ceylon-0.6.zip ceylon-lang.org:/var/www/downloads.ceylonlang/cli/
On a Debian system:
- Add a new changelog entry: ceylon-dist $ dch -i
- Update the versions and rename some files in
debian/
to match the new version - Package it ceylon-dist $ fakeroot ./debian/rules clean binary
- Copy the zip to downloads.ceylon-lang.org: $ scp ceylon-0.6.deb ceylon-lang.org:/var/www/downloads.ceylonlang/cli/
- Follow the steps in the README in the
redhat
folder - Copy the rpm to downloads.ceylon-lang.org: $ scp ceylon-0.6-noarch.rpm ceylon-lang.org:/var/www/downloads.ceylonlang/cli/
- Update the downloads page
- Update the
.htaccess
page - Update the pages that mention the latest release
- Write a blog post
Log on ceylonlang.org
:
WARNING: try those on for size before you run them, especially the sudo
ones, as you should
never copy and paste sudo
commands!!! So read them carefully and type them by hand.
- Get the release $ unzip /var/www/downloads.ceylonlang/cli/ceylon-0.6.zip
- Remove the old API $ sudo rm -rf /var/www/ceylonlang/documentation/1.0/api/ceylon/language
- Remove the old spec $ sudo rm -rf /var/www/ceylonlang/documentation/1.0/spec/{html,html_single,pdf,shared}
- Make sure you tell the website hooks to not remove your precious files: $ sudo vim /var/www/ceylonlang/hooks/rsync-excludes
- Put the new spec $ sudo cp -r ceylon-0.6/doc/en/spec/{html,html_single,shared,pdf} /var/www/ceylonlang/documentation/1.0/spec/ $ sudo chown -R webhook. /var/www/ceylonlang/documentation/1.0/spec $ sudo mv /var/www/ceylonlang/documentation/1.0/spec/pdf/Ceylon* /var/www/ceylonlang/documentation/1.0/spec/pdf/ceylon-language-specification.pdf
- Put the new tooldocs $ sudo cp -r ceylon-0.6/doc/en/toolset /var/www/ceylonlang/documentation/1.0/reference/tool/ceylon/subcommands $ sudo chown -R webhook. /var/www/ceylonlang/documentation/1.0/reference/tool/ceylon/subcommands
- Fork it on https://github.com/mxcl/homebrew
- Update the file
Library/Formula/ceylon.rb
- Make a pull-request