nim-wiki/Creating-a-release.md

71 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2019-02-01 10:30:14 +00:00
- ensure travis and appveyor is green (Usually the case these days) for the release branch 0-19, 0-20, etc
2019-06-06 16:08:56 +00:00
- test if Nimble works with new version
2019-06-06 07:33:56 +00:00
- Update the version in system.nim
- Update the changelog (put the release date, copy it to e.g. `changelog_0_20_0.md`)
2016-10-23 12:19:22 +00:00
- Tag the release, e.g. ```git tag -am "Version 0.15.0" v0.15.0```
2016-10-23 12:21:01 +00:00
- Push the tag: ```git push origin [tagname]```
2016-10-20 20:33:54 +00:00
2019-02-01 10:30:14 +00:00
- Nightlies now build the binaries for us: https://github.com/nim-lang/nightlies/releases
- Ensure nightly builds exist
- Recompile koch!
2019-06-06 07:06:13 +00:00
- Generate the full docs; `koch doc0` (*not* `koch doc`); copy the docs from `upload/$nimversion`
not from docs/html! Otherwise the GA code would be missing!
2016-11-01 16:46:44 +00:00
2019-06-05 16:47:25 +00:00
- ~~Merge 0-19 branch into master~~
2019-09-04 09:45:55 +00:00
- DO NOT Update csources anymore, it's frozen forever.
2016-08-11 19:50:46 +00:00
2017-09-07 20:26:41 +00:00
## Website
2019-06-06 14:17:22 +00:00
- 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.
2019-02-01 10:30:14 +00:00
- 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)
2017-09-07 21:30:24 +00:00
### Generating the sha256's
- `ssh username@servername`
- `cd /var/www/nim-lang.org/download/`
2019-06-06 14:27:06 +00:00
- ``export NIM_VER=<current_ver>`` (for example ``export NIM_VER=0.19.0``).
- `sh checksums.sh`
2017-09-07 21:30:24 +00:00
### Updating the blog/downloads page
2017-09-07 21:00:03 +00:00
- Create a new blog post in `_drafts` titled: `version-<ver>-released.md` where `<ver>` is the version without any dots, e.g. `0180` for `0.18.0`.
2017-09-07 20:26:41 +00:00
- When ready to release:
2017-09-07 21:01:39 +00:00
- move the blog post into `_posts`, making sure to append the current date to its filename: `2017-09-31-title.md`.
2017-09-07 20:26:41 +00:00
- modify config.yml's `version` key to the new version
- `git commit`
2017-09-07 20:56:14 +00:00
- **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's `jekyll` directory.
2017-09-07 20:26:41 +00:00
- `git push live master` (the `live` remote is a strict secret)
2018-09-27 13:17:56 +00:00
### Uploading docs
- ``export NIM_VER=<current_ver>`` (for example ``export NIM_VER=0.19.0``).
- Upload documentation to ``/var/www/nim-lang.org/$NIM_VER``
- Change ``docs`` symlink
- ``cd /var/www/nim-lang.org/``
- ``ln -sfn $NIM_VER docs`` (change the version here)
- Verify this worked using ``ls -la | grep "docs"``
### Updating choosenim's channels
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 editor
2019-06-06 21:11:17 +00:00
- ``vim /var/www/nim-lang.org/channels/stable``
### Need to fix mistakes?
- **Notifying people about problems in release notes:** https://github.com/nim-lang/website/commit/9dcf1e2de155c197f7aa680e71d3c0ee6ae9b890