65 lines
2.2 KiB
Markdown
65 lines
2.2 KiB
Markdown
- 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``
|
|
For this you need to close VSCode so that 'nimsuggest' can be overwritten!
|
|
- 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:
|
|
|
|
```sh
|
|
#!/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
|
|
```
|
|
|
|
## Website
|
|
|
|
### Uploading the binaries
|
|
|
|
- `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)
|
|
|
|
### Generating the sha256's
|
|
|
|
- `ssh username@servername`
|
|
- `cd /var/www/nim-lang.org/download/`
|
|
- `sha256sum nim-0.18.0.tar.xz > nim-0.18.0.tar.xz.sha256`
|
|
|
|
|
|
### Updating the blog/downloads page
|
|
|
|
- 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`.
|
|
- 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's `jekyll` directory.
|
|
- `git push live master` (the `live` remote is a strict secret)
|