-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Creating a release
Dominik Picheta edited this page Sep 7, 2017
·
39 revisions
-
Run the full testsuite (
tests\testament\tester all
) and ensure it's green; actually ensure travis is green (Usually the case these days) -
Update news.txt
-
write a news ticker entry
-
Update the version
- In system.nim
-
Recompile koch!
-
Generate the full docs; koch web0
-
Test the installers: koch testinstall
-
Tag the release, e.g.
git tag -am "Version 0.15.0" v0.15.0
-
Push the tag:
git push origin [tagname]
-
Run
tools/winrelease
-
Upload the produced .zips.
-
Merge devel into master
-
Update csources via
koch pushcsources
The following shell script shall be replaced by 'koch unixrelease' Shell script to build a source tarball:
#!/bin/sh
set -eu
tmp_dir=$(mktemp -d)
cd $tmp_dir
git clone -q --depth 1 https://github.com/nim-lang/Nim.git
cd Nim
git clone -q --depth 1 https://github.com/nim-lang/csources
( cd csources && sh build.sh )
bin/nim c koch
./koch boot -d:release
./koch web0
PATH=$PATH:$(pwd)/bin
./koch csource -d:release
./koch xz -d:release
-
scp nim-0.18.0.tar.xz username@servername:/var/www/nim-lang.org/download/nim-0.18.0.tar.xz
(change the version obviously)
ssh username@servername
cd /var/www/nim-lang.org/download/
sha256sum nim-0.18.0.tar.xz > nim-0.18.0.tar.xz.sha256
- Create a new blog post in
_drafts
titled:version-<ver>-released.md
where<ver>
is the version without any dots, e.g.0180
for0.18.0
. - When ready to release:
- move the blog post into
_posts
, making sure to append the current date to its filename:2017-09-31-title.md
. - modify config.yml's
version
key to the new version -
git commit
- TIP: Here is a real-life example of a commit that signifies a release: https://github.com/nim-lang/website/commit/6f95916dee1212dcf5465d74dcff14e01f714503. The draft blog post was created in earlier commits, but hopefully it's pretty easy to figure out how it was made.
-
TIP2: You can see what a draft post looks like by running
jekyll serve --drafts
inside the website'sjekyll
directory.
-
git push live master
(thelive
remote is a strict secret)
- move the blog post into
Intro
Getting Started
- Install
- Docs
- Curated Packages
- Editor Support
- Unofficial FAQ
- Nim for C programmers
- Nim for Python programmers
- Nim for TypeScript programmers
- Nim for D programmers
- Nim for Java programmers
- Nim for Haskell programmers
Developing
- Build
- Contribute
- Creating a release
- Compiler module reference
- Consts defined by the compiler
- Debugging the compiler
- GitHub Actions/Travis CI/Circle CI/Appveyor
- GitLab CI setup
- Standard library and the JavaScript backend
Misc