summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn J. Camilleri <john@digitalgrammars.com>2020-11-17 01:07:05 +0100
committerJohn J. Camilleri <john@digitalgrammars.com>2020-11-17 01:07:05 +0100
commit6862098d8bd6f47513d52e132aba419997979f90 (patch)
treedbef956fef005ecf33b0085d5f489e73a21e1dee
parent40e5f90d56f151ce3607b3b4f902c090128d1532 (diff)
Add preliminary RELEASE.md
-rw-r--r--RELEASE.md47
-rwxr-xr-xbin/update_html2
2 files changed, 48 insertions, 1 deletions
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 000000000..131a37b5d
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,47 @@
+# GF Core releases
+
+🚨 WARNING! The information here is preliminary!
+
+## Creating a new release
+
+### 1. Prepare the repository
+
+**Web pages**
+
+1. Create `download/index-X.Y.md` with installation instructions.
+1. Create `download/release-X.Y.md` with changelog information.
+1. Update `download/index.html` to redirect to the new version.
+1. Add announcement in news section in `index.html`
+
+**Version numbers**
+
+1. Update version number in `gf.cabal` (ommitting `-git` suffix)
+1. Add a new line in `debian/changelog`
+
+### 2. Create GitHub release
+
+1. When the above changes are committed to the `master` branch in the repository,
+ check that all builds are successful:
+ - https://github.com/GrammaticalFramework/gf-core/actions
+ - https://travis-ci.org/github/GrammaticalFramework/gf-core
+1. Create a GitHub release here: https://github.com/GrammaticalFramework/gf-core/releases/new
+ with a tag format `RELEASE-X.Y`
+
+### 3. Binary packages
+
+Build and attach binaries to the release by running the relevant GitHub Actions workflows (TODO):
+
+1. Go to https://github.com/GrammaticalFramework/gf-rgl/actions
+1. Click "Build [platform] package" under _Workflows_
+1. Click "Run workflow" and specify the tag `RELEASE-X.Y`
+
+### 4. Upload to Hackage
+
+1. Run `make sdist`
+1. Visit `https://hackage.haskell.org/upload` and upload the file `dist/gf-X.Y.tar.gz`,
+ OR upload directly with Cabal (≥2.4): `cabal upload dist/gf-X.Y.tar.gz`
+1. If the documentation-building fails on the Hackage server, do:
+```
+cabal v2-haddock --builddir=dist/docs --haddock-for-hackage --enable-doc
+cabal upload --documentation dist/docs/*-docs.tar.gz
+```
diff --git a/bin/update_html b/bin/update_html
index 912ff1fa0..717670085 100755
--- a/bin/update_html
+++ b/bin/update_html
@@ -147,7 +147,7 @@ else
fi
done
find . -name '*.md' | while read file ; do
- if [[ "$file" == *"README.md" ]] ; then continue ; fi
+ if [[ "$file" == *"README.md" ]] || [[ "$file" == *"RELEASE.md" ]] ; then continue ; fi
html="${file%.md}.html"
if [ "$file" -nt "$html" ] || [ "$template" -nt "$html" ] ; then
render_md_html "$file" "$html"