Updated Creating a release (markdown)

This commit is contained in:
Federico Ceratto 2016-08-14 10:08:35 +01:00
parent a0e2e19ebb
commit 3ebb6870b4
1 changed files with 78 additions and 0 deletions

View File

@ -68,3 +68,81 @@ koch nsis -d:release || exit /b
move /y build\nim_%NIMVER%.exe web\upload\download\nim-%NIMVER%_x64.exe || exit /b move /y build\nim_%NIMVER%.exe web\upload\download\nim-%NIMVER%_x64.exe || exit /b
``` ```
Shell script, work in progress:
```sh
#!/bin/sh
set -eu
# Test and release a new Nim version
ask() {
echo "$1 Enter to continue, Ctrl-C to stop"
read _
}
ask "Ensure that https://travis-ci.org/nim-lang/Nim is green"
ask "Ensure the last build on http://ci.nim-lang.org/ is successful"
orig_dir=$(pwd)
tmp_dir=$(mktemp -d)
cd $tmp_dir
# Clone repos
#git clone https://github.com/nim-lang/nim.git --depth 1
cp -a /tmp/nim .
cd nim
#git clone https://github.com/nim-lang/nimble.git --depth 1
cp -a /tmp/nimble .
#git clone --depth 1 https://github.com/nim-lang/csources
cp -a /tmp/csources .
# Build Nim
cd csources && sh build.sh
cd ..
bin/nim c koch
./koch boot -d:release
# Run the full testsuite (tests\testament\tester all) and ensure it's green; actually ensure travis is green (Usually the case these days)
# Set version
old_version=$(grep ^version compiler.nimble | cut -d'"' -f2)
nim_major="$1"
nim_minor="$2"
nim_patch="$3"
new_version="$nim_major.$nim_minor.$nim_patch"
ask "Old version is $old_version - new version is $new_version"
# Update the version
sed -i "s/^ NimMajor\*: int = [0-9]*$/ NimMajor*: int = $nim_major/" lib/system.nim
sed -i "s/^ NimMinor\*: int = [0-9]*$/ NimMinor*: int = $nim_minor/" lib/system.nim
sed -i "s/^ NimPatch\*: int = [0-9]*$/ NimPatch*: int = $nim_patch/" lib/system.nim
sed -i "s/version = .*/version = \"$new_version\"/" compiler.nimble
sed -i "s/version = .*/version = \"$new_version\"/" lib/stdlib.nimble
git diff | cat -n
ask "Ensure the version was updated in 3 files"
# Update news.txt
# write a news ticker entry
# Generate the full docs
./koch web0
# Generate the installers
./koch csource -d:release
./koch xz -d:release
./koch nsis
```