# Preparing related projects

- Check that haxelib is working
- Make sure to update the haxelib submodule
- Check that the run-time haxelibs are ready for release: hxcpp, hxjava, hxcs

# Making the release

- Make sure CHANGES.txt has a proper date set!
- Make sure `version` in globals.ml has the correct value
- Check if the protocolVersion in displayJson.ml has to be updated
- Make an empty GitHub release in https://github.com/HaxeFoundation/haxe/releases (do this first because we need the tag for the builds)
- Wait for the CI to build (check https://build.haxe.org/builds/haxe/)
- Get https://github.com/simn/hxgithub
- Store your GitHub personal access token in .github-token
- Run something like this: `neko release.n -h 4.0.0-rc.1 -u -uw -ur -d haxe_2019-02-01_development_1fdd3d5.zip --dry`
- Tell yourself that you're gonna fix `-doc` generation next time
- Write the announcement to `./haxe-version/RELEASE.md`
- If everything was working, run the command again without `--dry` (and probably without the `-d`)
- Update https://github.com/HaxeFoundation/haxe.org/blob/staging/downloads/versions.json

# Announcing the release

- Find someone to announce the release on our various communication channels