From 6862098d8bd6f47513d52e132aba419997979f90 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Tue, 17 Nov 2020 01:07:05 +0100 Subject: Add preliminary RELEASE.md --- RELEASE.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 RELEASE.md (limited to 'RELEASE.md') 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 +``` -- cgit v1.2.3 From 8dc1ed83b603d5ebb170912b4cefec0cf353288c Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Mon, 30 Nov 2020 13:01:51 +0100 Subject: Update RELEASE.md --- .github/workflows/build-windows-package.yml | 1 - RELEASE.md | 44 ++++++++++++++++++----------- 2 files changed, 28 insertions(+), 17 deletions(-) (limited to 'RELEASE.md') diff --git a/.github/workflows/build-windows-package.yml b/.github/workflows/build-windows-package.yml index fc788aa94..df6f77be9 100644 --- a/.github/workflows/build-windows-package.yml +++ b/.github/workflows/build-windows-package.yml @@ -1,7 +1,6 @@ name: Build Windows Package on: - push: # testing until merged into master workflow_dispatch: jobs: diff --git a/RELEASE.md b/RELEASE.md index 131a37b5d..0c304fe51 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,6 +1,8 @@ # GF Core releases -🚨 WARNING! The information here is preliminary! +**Note:** +The RGL is now released completely separately from GF Core. +See the [RGL's RELEASE.md](https://github.com/GrammaticalFramework/gf-rgl/blob/master/RELEASE.md). ## Creating a new release @@ -11,37 +13,47 @@ 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` +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` +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` +1. When the above changes are committed to the `master` branch in the repository + and pushed, check that all CI workflows are successful (fixing as necessary): + - + - +1. Create a GitHub release [here](https://github.com/GrammaticalFramework/gf-core/releases/new) using tag format `RELEASE-X.Y`. ### 3. Binary packages -Build and attach binaries to the release by running the relevant GitHub Actions workflows (TODO): +The binaries will be built automatically by the GitHub Actions workflows, +but the generated artifacts must be manually attached to the release as _assets_. -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` +1. Go to . +1. Click "Build [platform] Package" under _Workflows_. +1. Choose the workflow run corresponding to the release commit SHA. +1. Download the artifact locally, then add to the release with a name `gf-X.Y-PLATFORM.EXT` (e.g. `gf-3.11-macos.pkg`). ### 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. Upload the package, either: + 1. **Manually**: visit and upload the file `dist/gf-X.Y.tar.gz` + 2. **via 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 ``` + +## Miscellaneous + +### What is the tag `GF-3.10`? + +For GF 3.10, the Core and RGL repositories had already been separated, however +the binary packages still included the RGL. `GF-3.10` is a tag that was created +in both repositories ([gf-core](https://github.com/GrammaticalFramework/gf-core/releases/tag/GF-3.10) and [gf-rgl](https://github.com/GrammaticalFramework/gf-rgl/releases/tag/GF-3.10)) to indicate which versions of each went into the binaries. -- cgit v1.2.3 From a7a6eb55811a234a46b650b77357f0589ba6a46b Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Mon, 30 Nov 2020 21:34:50 +0100 Subject: Update release instructions --- .github/workflows/build-binary-packages.yml | 2 +- RELEASE.md | 31 +++++++++++++++++------------ 2 files changed, 19 insertions(+), 14 deletions(-) (limited to 'RELEASE.md') diff --git a/.github/workflows/build-binary-packages.yml b/.github/workflows/build-binary-packages.yml index e387ae9b1..e33022e6e 100644 --- a/.github/workflows/build-binary-packages.yml +++ b/.github/workflows/build-binary-packages.yml @@ -41,7 +41,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v2 with: - name: gf-${{ github.sha }}-debian + name: gf-${{ github.sha }}-ubuntu path: dist/gf_*.deb if-no-files-found: error diff --git a/RELEASE.md b/RELEASE.md index 0c304fe51..3a771b78d 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -11,14 +11,14 @@ See the [RGL's RELEASE.md](https://github.com/GrammaticalFramework/gf-rgl/blob/m **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`. +2. Create `download/release-X.Y.md` with changelog information. +3. Update `download/index.html` to redirect to the new version. +4. 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. Add a new line in `debian/changelog`. ### 2. Create GitHub release @@ -26,25 +26,30 @@ See the [RGL's RELEASE.md](https://github.com/GrammaticalFramework/gf-rgl/blob/m and pushed, check that all CI workflows are successful (fixing as necessary): - - -1. Create a GitHub release [here](https://github.com/GrammaticalFramework/gf-core/releases/new) using tag format `RELEASE-X.Y`. +2. Create a GitHub release [here](https://github.com/GrammaticalFramework/gf-core/releases/new): + - Tag version format `RELEASE-X.Y` + - Title: "GF X.Y" + - Description: mention major changes since last release +3. Publish the release to trigger the building of the binary packages (below). ### 3. Binary packages -The binaries will be built automatically by the GitHub Actions workflows, -but the generated artifacts must be manually attached to the release as _assets_. +The binaries will be built automatically by GitHub Actions when the release is created, +but the generated _artifacts_ must be manually attached to the release as _assets_. -1. Go to . -1. Click "Build [platform] Package" under _Workflows_. -1. Choose the workflow run corresponding to the release commit SHA. -1. Download the artifact locally, then add to the release with a name `gf-X.Y-PLATFORM.EXT` (e.g. `gf-3.11-macos.pkg`). +1. Go to the [actions page](https://github.com/GrammaticalFramework/gf-core/actions) and click "Build Binary Packages" under _Workflows_. +2. Choose the workflow run corresponding to the newly created release. +3. Download the artifacts locally. Extract the Ubuntu and macOS ones to get the `.deb` and `.pkg` files. +4. Go back to the [releases page](https://github.com/GrammaticalFramework/gf-core/releases) and click to edit the release information. +5. Add the downloaded artifacts as release assets, giving them names with format `gf-X.Y-PLATFORM.EXT` (e.g. `gf-3.11-macos.pkg`). ### 4. Upload to Hackage 1. Run `make sdist` -1. Upload the package, either: +2. Upload the package, either: 1. **Manually**: visit and upload the file `dist/gf-X.Y.tar.gz` 2. **via Cabal (≥2.4)**: `cabal upload dist/gf-X.Y.tar.gz` -1. If the documentation-building fails on the Hackage server, do: +3. 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 -- cgit v1.2.3