-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Creating a release
-
ensure travis and appveyor is green (Usually the case these days) for the release branch 0-19, 0-20, etc
-
test if Nimble works with new version
-
Update the version in system.nim
-
Update the changelog (put the release date, copy it to e.g.
changelog_0_20_0.md
) -
Tag the release, e.g.
git tag -am "Version 0.15.0" v0.15.0
-
Push the tag:
git push origin [tagname]
-
Nightlies now build the binaries for us: https://github.com/nim-lang/nightlies/releases
-
Ensure nightly builds exist
-
Recompile koch!
-
Generate the full docs;
koch doc0
(notkoch doc
); copy the docs fromupload/$nimversion
not from docs/html! Otherwise the GA code would be missing! -
Merge 0-19 branch into master -
DO NOT Update csources anymore, it's frozen forever.
- Download the binaries from https://github.com/nim-lang/nightlies/releases
- Rename the nim-$version_windows_(x32/x64).zip files to nim-$version(x32/x64).zip for consistency with every older release.
- Rename the nim-$version_osx.tar.xz to nim-$version.tar.xz as that is what we use for the source based installation.
- Upload the produced .zips. For example:
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/
-
export NIM_VER=<current_ver>
(for exampleexport NIM_VER=0.19.0
). sh checksums.sh
- 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
-
export NIM_VER=<current_ver>
(for exampleexport NIM_VER=0.19.0
). - Upload documentation to
/var/www/nim-lang.org/$NIM_VER
- Change
docs
symlinkcd /var/www/nim-lang.org/
-
ln -sfn $NIM_VER docs
(change the version here) - Verify this worked using
ls -la | grep "docs"
Choosenim currently only supports gz so you will need to create a .tar.gz out of the .tar.xz:
export NIM_VER=<current_ver>
cd /var/www/nim-lang.org/download
cp nim-$NIM_VER.tar.xz nim-"$NIM_VER"_copy.tar.xz
unxz nim-"$NIM_VER"_copy.tar.xz
gzip --best nim-"$NIM_VER"_copy.tar
mv nim-"$NIM_VER"_copy.tar.gz nim-"$NIM_VER".tar.gz
sha256sum nim-"$NIM_VER".tar.gz > nim-"$NIM_VER".tar.gz.sha256
Update the stable
channel:
- Update
/var/www/nim-lang.org/channels
using your favourite editorvim /var/www/nim-lang.org/channels/stable
- Notifying people about problems in release notes: https://github.com/nim-lang/website/commit/9dcf1e2de155c197f7aa680e71d3c0ee6ae9b890
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