Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2024.02.00 #10528

Closed
60 tasks done
tdipisa opened this issue Sep 2, 2024 · 4 comments
Closed
60 tasks done

Release v2024.02.00 #10528

tdipisa opened this issue Sep 2, 2024 · 4 comments

Comments

@tdipisa
Copy link
Member

tdipisa commented Sep 2, 2024

Setup and preliminary checks

This steps have to be followed always when preparing a new release.

  • Create an issue with this checklist in the release milestone, named "Release YYYY.XX.mm".
  • Create the milestone if it doesn't exist. (Name YYYY.XX.mm).
  • Verify if it is needed to release a new version of http_proxy, mapfish-print or geostore, and do it if necessary accordingly with release calendar.
    • for geostore, check if here is present the version specified. Release procedure is specified in the Readme.md file of the project.
    • for http_proxy, check if here is present the version specified. Release procedure is specified in the Readme.md file of the project.
    • for mapfish-print check if here is present the version specified. Release procedure is specified in the Readme.md file of the project.

New stable branch creation

Only if you need to create a new stable major release (YYYY.XX.00), you need to create a branch for it. Check the following:

  • Run the Cut Release Branch workflow on github.
    With the following Parameters:
    • Use workflow from branch master
    • MapStore branch name to use: YYYY.XX.xx
    • use the default value for the other parameters
  • Wait for the process to complete. At the end:
    • A Pull request will be created to the master
    • A new branch named YYYY.XX.xx with fixed versions
  • Merge the incoming PR created by the workflow
  • Create on ReadTheDocs project the version build for YYYY.XX.xx (click on "Versions" and activate the version of the branch)
  • Run the Cut Release Branch workflow on MapStoreExtension project, indicating:
    • Use workflow from branch master
    • MapStore branch name to use: YYYY.XX.xx
    • main branch master (default)
  • Update the QA build to point to the branch created (YYYY.XX.xx)

Before the Release

  • Check pom.xml dependencies are all in fixed stable versions ( no -SNAPSHOT usage release). If not, You use the action Update dependencies versions to fix them, setting:
    • the branch to YYYY.XX.xx
    • the of geostore, http_proxy and mapfish-print versions accordingly with the MapStore release calendar
  • Run the Submodule Update of MapStore extension, to generate the latest extension and check that it builds correct.y
    • Use workflow from YYYY.XX.xx branch
    • Wait for completition, then get the extension to test from the attachments of the test execution
  • Check that MapStoreExtension repository is aligned and working
  • Test on QA https://qa-mapstore.geosolutionsgroup.com/mapstore/
    • Test everything, not only the new features
    • Test the creation of a standard project starting in from the stable branch and with the internal backend, so:
      • node ./createProject.js and insert the entries (for the rest simply press enter:
        • project name: release_project_test
        • base branch: insert the release branch (e.g. YYYY.XX.xx)
        • project folder insert ../test_release_<release_number> )
      • cd ../test_release_<release_number>
      • npm install
      • npm run start:app, then check that an empty homepage loads correctly
    • Test Binary (take the mapstore2-<RELEASE_BRANCH>-qa-bin.zip, from latest build)

Prepare Release

  • Run Prepare Release workflow on github actions with the following parameters:
    • Use workflow from branch YYYY.XX.xx (the release branch)
    • Version to release YYYY.XX.mm (the effective number of the release)
    • MapStore version for changelog generation YYYY.XX.mm (the effective number of the previous release)
    • version to fix for the java module, accordingly with release calendar (e.g. 1.7.0)
    • use the default value for the other parameters
  • Wait for the process to complete. At the end:
    • a new commit will be added to the release branch tagged as vYYYY.XX.mm. This commit will contain the changelog and the updated version of the java modules.
    • a pull request will be created on master with the changelog updates
  • Merge the incoming PR created by the workflow for updating changelog on Master
  • Run Submodules Update on MapStoreExtension:
    • Branch YYYY.XX.xx

MapStore Stable deploy

  • check if there are changes to be ported to STABLE branch of mapstore-datadir repo
    • if so prepare a PR to be merged
    • merge the PR and move on with the steps otherwise stop here
  • Lunch MapStore2-Stable-Build
    - branch: vYYYY.XX.mm (the version tag name, e.g. v2024.01.01)
    - version: ${branch}-stable ( version to pass to the build )
    - TAG_NAME: ${branch}-stable (tag to assign to the docker hub image)
  • After "MapStore2-Stable-Build" finished, Launch MapStore2-Stable-Deploy to install the latest stable version on official demo.
    - branch: vYYYY.XX.mm (the version tag name, e.g. v2024.01.01)
    - TAG_NAME: ${branch}-stable (tag of the docker hub image, previously build)
  • Test the change has been applied, login on https://mapstore.geosolutionsgroup.com and verify that the layers from gs-stable are visible without errors (typically authentication errors that was caused by the wrong auth-key).

Create and Publish MapStoreExtension release

  • Create a draft release for MapstoreExtension with the same name and tag
    • target of the release is stable branch aligned to latest commit in stable branch of main mapstore repo
    • tag is vYYYY.XX.mm
  • Upload the SampleExtension.zip to upload on release:
    • Open the page. You will see a process running for the stable branch, triggered by "Update submodules". Wait for the end of this task.
    • When the process is succesfully finished click on the "Update submodules" last successful task. The task page will open.
    • At the bottom of the page click on "Artifacts" to download.
    • Extract from the artifacts.zip the SampleExtension.zip file
    • Upload the SampleExtension.zip to the draft release created.
  • Publish the MapStoreExtension release

Create and Publish MapStore release

  • Run Create Release workflow on github actions with the following parameters:
    • Use workflow from branch YYYY.XX.xx (the release branch)
    • Version to release YYYY.XX.mm (version without the v prefix)
  • Launch MapStore2-Stable-Releaser Jenkins job with
    • branch: vYYYY.XX.mm (the version tag name, e.g. v2024.01.01)
    • ms2Version: YYYY.XX.mm (version without the v prefix)
  • Wait the end of the 2 process

When the processes are finished, the release is ready to be published on github in draft mode.

  • Open the new release in draft from here
  • Update the link to Docker in the release notes with the link to the latest stable release (search the new tag on docker hub )
  • Update the description of the release details
  • Publish the release

Update ReadTheDocs

  • create on ReadTheDocs project the version build for vYYYY.XX.mm (click on "Versions" and activate the version of the tag, created when release was published)
  • Update Default version to point the release version in the Advanced Settings menu of the ReadTheDocs admin panel

Finalize Release

  • Run the Post Release workflow on github with the following parameters:
    • Use workflow from branch YYYY.XX.xx (the release branch)
    • Version of Java Packages to restore accordingly with release calendar with -SNAPSHOT E.g. 1.7-SNAPSHOT
  • Write to the mailing list about the current release news and the next release major changes
  • Optional - prepare a PR for updating release procedure, if needed
  • Close this issue
  • Close the related milestone YYYY.XX.mm

Other useful information

@tdipisa tdipisa added this to the 2024.02.00 milestone Sep 2, 2024
@tdipisa
Copy link
Member Author

tdipisa commented Sep 5, 2024

@offtherailz due to this #10455
The doc here should change, I think.

@tdipisa
Copy link
Member Author

tdipisa commented Sep 5, 2024

@offtherailz

Image

  • New stable branch for 2024.02.xx on MapStoreExtension created
  • CI/CD for building and deploying on QA branch 2024.02.xx currently in progress

@ElenaGallo
Copy link
Contributor

ElenaGallo commented Sep 23, 2024

@tdipisa test run completed.
@dsuren1 can you check the Show metadata URL test that failed? thanks

@dsuren1
Copy link
Contributor

dsuren1 commented Sep 23, 2024

@ElenaGallo
Kindly give it a try now. I have updated the context with missing metadata info plugin. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants