Release process
This section outlines the release process for GeoGirafe. It contains the instructions for contributors responsible for publishing GeoGirafe releases.
Preparation
1. Release Notes
- Verify that the changelog is up to date and working correctly:
🔗 https://doc.geogirafe.org/docs/upgrading/changelog If not, run the pipeline to update it: https://gitlab.com/geogirafe/gg-doc/-/pipeline_schedules - Prepare the release notes for GitLab using the changelog and the list of merge requests. You can filter out unnecessary things and rewrite too technical messages. 🔗 https://gitlab.com/geogirafe/gg-viewer/-/releases
2. Social Media & Blog
- Draft a blog post:
🔗 https://geogirafe.org/blog/ https://geogirafe.org/wp-login.php - Prepare a LinkedIn post:
🔗 https://www.linkedin.com/company/105822285/admin/page-posts/published/ - Prepare a Post for Discord, channel announcements 🔗 https://discord.com/channels/1194934479282778122/1239473095237177415
Publication
1. gg-viewer Repository
- Create a tag with the version number:
🔗 https://gitlab.com/geogirafe/gg-viewer/-/tags
Proposed name:vX.Y.Z. - Protect the tag in the repository settings by choosing Maintainers group: 🔗 https://gitlab.com/geogirafe/gg-viewer/-/settings/repository#js-protected-tags-settings
- A pipeline will automatically start:
🔗 https://gitlab.com/geogirafe/gg-viewer/-/pipelines - The changes can be tested on the demo:
🔗 https://demo.geogirafe.org/vX.Y.X/ - The
publish-dockerandpublish-libjobs must be started manually, once the tests are satisfying.
This will publish the new vesions to npm and docker-hub - Verify that the new version has been published to npm:
🔗 https://www.npmjs.com/package/@geogirafe/lib-geoportal?activeTab=versions - Create a new release based on the new tag:
🔗 https://gitlab.com/geogirafe/gg-viewer/-/releases/new
2. gg-template Repository
- Edit https://gitlab.com/geogirafe/gg-template/-/blob/main/package.json and set
"version": "<REPLACE_WITH_VERSION>" - Publish the new version to npm, following the Readme of the project
- Commit and push your changes.
- Create a new tag from
mainwith the version number you just published.
3. gg-sample Repository
- Create a merge request to merge
nextintomain.
⚠️ Important: Uncheck "Delete source branch when merge request is accepted"
(thenextbranch will be reused for future versions). - Merge the changes.
- Edit https://gitlab.com/geogirafe/gg-sample/-/blob/main/package.json and set
"@geogirafe/lib-geoportal": "<REPLACE_WITH_VERSION>" - Create a new tag from
mainwith the version number you just published. - Edit https://gitlab.com/geogirafe/gg-sample/-/blob/main/package.json and set back
"@geogirafe/lib-geoportal": "*" - Try to create GeoGirafe project based on the lib:
npm create @geogirafe/template my-geogirafe-app
Verify that is based on the last dev version. - Try to create GeoGirafe project based on the new tag:
npm create @geogirafe/template my-geogirafe-app v<version_number>
Verify that is based on the last stable version.
4. gg-doc Repository
- Update the roadmap:
🔗 https://doc.geogirafe.org/docs/introduction/roadmap
5. Social Media & Blog
- Publish the Blog article.
- Publish the LinkedIn post.
- Publish the Discord post.
Prepare the next version
1. gg-viewer Repository
- Update the
package.jsonfile with the next version number:
🔗 https://gitlab.com/geogirafe/gg-viewer/-/blob/main/package.json?ref_type=heads#L8
Runnpm ito updatepackage-lock.jsonand push the changes. - Verify that the new dev version has been published to npm after the pipeline finished:
🔗 https://www.npmjs.com/package/@geogirafe/lib-geoportal?activeTab=versions - Close the released milestone, and create a new one
🔗 https://gitlab.com/geogirafe/gg-viewer/-/milestones - Remove the released board, and create a new one
🔗 https://gitlab.com/geogirafe/gg-viewer/-/boards/11257807