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 2022.02.01 #8660

Closed
72 of 73 tasks
offtherailz opened this issue Oct 4, 2022 · 1 comment
Closed
72 of 73 tasks

Release 2022.02.01 #8660

offtherailz opened this issue Oct 4, 2022 · 1 comment
Assignees
Labels
Milestone

Comments

@offtherailz
Copy link
Member

offtherailz commented Oct 4, 2022

Additional changes to do on release:

  • Make sure that the mapstore-services uses a new release (changes applied to snapshot)

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.

New major branch creation

If major release (YYYY.XX.00) follow these sub-steps:

  • create a branch YYYY.XX.xx from master branch (xx is really xx, example: 2018.01.xx). This is the new stable branch
  • Change MapStore2-QA-Build by updating the branch parameter in the build configuration page to YYYY.XX.xx
  • on MapStore stable branch
    • Fix pom.xml files to make sure that no -SNAPSHOT dependencies are used anymore.
  • on MapStore master branch
    • increase version of java modules. (mvn versions:set -DnewVersion=<SNAPSHOT_VERSION> -DprocessAllModules -DgenerateBackupPoms=false). Where <SNAPSHOT_VERSION> increases the major number. (e.g. 1.3-SNAPSHOT --> 1.4-SNAPSHOT)
    • Manually update project pom templates to use mapstore-services of <SNAPSHOT_VERSION> to the new one. (projects/templates/web/pom.xml).
    • Increment version of package.json on master 0.<x-incremented>.0
  • Create on ReadTheDocs project the version build for YYYY.XX.xx (click on "Versions" and activate the version of the branch)
  • create a branch with the same name (YYYY.XX.xx) in MapStoreExtension repository.

Before the Release

  • Check pom.xml dependencies are all in fixed stable versions ( no -SNAPSHOT usage release).
  • Check that MapStoreExtension repository is aligned and working
  • Make sure that the issues of the current release are connected to the current milestone on github.
  • 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 npm start:app, then check that an empty homepage loads correctly
    • Test Binary (take the mapstore2-<RELEASE_BRANCH>-qa-bin.zip, from latest build)

The following procedure allow you to migrate issues from zenhub release to github milestone.

  • assign the label "current-release" to all the issues and PRs of the current zenhub release
  • use the label to filter the issues on github and assign to all the issues and Prs the milestone created
  • remove assignments of "current-release"

Release

  • on master branch do and merge a PR for updating:
    • "default stable branch" used in createProject.js script , in particular the utility/projects/projectLib.js file and commit
    • CHANGELOG.md for master and stable Instructions
  • On stablebranch, do and merge a PR for updating:
  • "default stable branch" used in createProject.js script , in particular the utility/projects/projectLib.js file and commit
  • Check pom.xml dependencies stable versions ( no -SNAPSHOT usage release).
  • Update the version of java modules on the stable branch to a stable, incremental version. Run mvn versions:set -DnewVersion=<SNAPSHOT_VERSION> -DprocessAllModules -DgenerateBackupPoms=false to update package version, where <VERSION> is the version of the java packages (e.g. 1.3.1). (mvn:release:prepare may also work. TODO: check this command)
  • Manually update project pom templates to use mapstore-services of <VERSION>. project/standard/templates/web/pom.xml
  • Release a stable mapstore-services. (from 2022.01.xx also mapstore-webapp (java/web) should be deployed for new project system).
    • Use mvn clean install deploy -f java/pom.xml to deploy mapstore-services and mapstore-webapp.

MapStore Stable publishing

  • When publishing stable, merge this PR https://github.com/geosolutions-it/mapstore-datadir/pull/4 and run the proper jenkins job during the deploy to update also the data dir.
  • 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
  • Launch the MapStore2-Stable-Build and wait for the MapStore2-Stable-EndPointsTests to complete as well
  • test the change has been applied, login on 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).

Build and publishing release

  • Create a github draft release
    • branch YYYY.XX.xx
    • tag vYYYY.XX.mm (create a new tag from UI after entering this value)
    • release name equal to tag vYYYY.XX.mm
    • description describe the major changes and add links of the Changelog paragraph.
  • Launch MapStore2-Stable-Releaser Jenkins job with YYYY.XX.mm for the version and YYYY.XX.xx for the branch to build and wait the end). Note: Using the MapStore2 Releaser allows to write the correct version number into the binary packages. In the overview of this job you can find and download :
    • the latest mapstore.war
    • the latest binary mapstore2-YYYY.XX.mm-bin.zip
    • the printing bundle mapstore-printing.zip
    • Upload to draft release
      • the updated binary mapstore2-YYYY.XX.mm-bin.zip
      • the mapstore.war package
      • mapstore-printing.zip on github release
  • Publish the release
  • 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)

Build 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
    • Update revision of mapstore to the release tag vYYYY.XX.mm
    • run the build locally and attach to the release the file SampleExtension.zip from the /dist folder
    • create a PR for the changes of the revision to the MapstoreExtension repo
    • Merge the PR
    • Publish the release
    • Link the MapStore extension release in the MapStore release

Finalize Release

  • Prepare a PR MapStore stable branch YYYY.XX.xx in order to :
    • reset versions of java modules to -SNAPSHOT (mvn versions:set -DnewVersion=<SNAPSHOT_VERSION> -DprocessAllModules -DgenerateBackupPoms=false) where <SNAPSHOT_VERSION> is the version to set. (e.g. 1.2-SNAPSHOT). Make sure that only mapstore-services has changed
    • on package.json increasing the minor "version" number. 0.x.<number-of-minor-version>
  • 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
  • At the end of the process, merge this PR for the update of the educational. https://github.com/geosolutions-it/educational/pull/786
@offtherailz offtherailz added this to the 2022.02.01 milestone Oct 4, 2022
@tdipisa
Copy link
Member

tdipisa commented Nov 7, 2022

@offtherailz due to #8772
we have to release 1.4.1 of the mapstore-services.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3 participants