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 2024.01.01 #10385

Closed
45 tasks done
tdipisa opened this issue May 30, 2024 · 7 comments
Closed
45 tasks done

Release 2024.01.01 #10385

tdipisa opened this issue May 30, 2024 · 7 comments

Comments

@tdipisa
Copy link
Member

tdipisa commented May 30, 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.

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
  • 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
  • run the build locally and attach to the release the file SampleExtension.zip from the /dist folder (or download the latest artifact).
  • 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 (the effective number of the release)
  • Launch MapStore2-Stable-Releaser Jenkins job with
    • YYYY.XX.mm for the version
    • YYYY.XX.xx for the branch to build
  • 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.01.01 milestone May 30, 2024
@tdipisa
Copy link
Member Author

tdipisa commented May 30, 2024

@offtherailz I've checked all preliminary checks on top of the list since they are already ok, I think. Please double check.

@ElenaGallo
Copy link
Contributor

ElenaGallo commented May 30, 2024

@offtherailz @tdipisa I tried several times to create a new project but this error occurs

Error: Cloning into 'C:/Users/User/Documents/GitHub/project_elena/MapStore2'...
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)       
error: 5070 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
fatal: clone of 'https:/geosolutions-it/MapStore2.git' into submodule path 'C:/Users/User/Documents/GitHub/project_elena/MapStore2' failed

@tdipisa
Copy link
Member Author

tdipisa commented May 31, 2024

@offtherailz can you please have a look at the above? Thank you

@offtherailz
Copy link
Member

Hi @ElenaGallo

It worked for me:

node createProject.js 
Project Type (standard): 
MapStore base branch (master):2024.01.xx
Project Name: test
Project Version (1.0.0): 
Project Description (Project Name): 
Repository URL: 
Output folder: ../test_prj
Out folder created (../test_prj)
Creating package.json...
package.json file created
Copying static files...
Copied .editorconfig
Copied LICENSE.txt
Copied Dockerfile
copied static files
Copying docker/geostore-datasource-ovr-h2.properties
Copying docker/geostore-datasource-ovr-postgres.properties
Copying docker/geostore-datasource-ovr.properties
Copying docker/mapstore.conf
Copying docker/wait-for-postgres.sh
Copying docker/postgres/01-init-user.sh
Copying docker/postgres/Dockerfile
docker folder
Copying template files
Copying ./project/standard/templates/.gitignore
Copying ./project/standard/templates/README.md
Copying ./project/standard/templates/api.html
Copying ./project/standard/templates/apiTemplate.html
Copying ./project/standard/templates/build.sh
Copying ./project/standard/templates/dashboard-embedded-template.html
Copying ./project/standard/templates/dashboard-embedded.html
Copying ./project/standard/templates/embedded.html
Copying ./project/standard/templates/embeddedTemplate.html
Copying ./project/standard/templates/geostory-embedded-template.html
Copying ./project/standard/templates/geostory-embedded.html
Copying ./project/standard/templates/index.html
Copying ./project/standard/templates/indexTemplate.html
Copying ./project/standard/templates/pom.xml
Copying ./project/standard/templates/prod-webpack.config.js
Copying ./project/standard/templates/unsupportedBrowser.html
Copying ./project/standard/templates/version.txt
Copying ./project/standard/templates/webpack.config.js
Copying ./project/standard/templates/js/app.jsx
Copying ./project/standard/templates/web/pom.xml
Copying ./project/standard/templates/configs/new.json
Copying ./project/standard/templates/configs/pluginsConfig.json
Copying ./project/standard/templates/js/dashboardEmbedded.jsx
Copying ./project/standard/templates/js/embedded.jsx
Copying ./project/standard/templates/js/geostoryEmbedded.jsx
Copying ./project/standard/templates/js/__tests__/app-test.js
Copying ./project/standard/templates/web/src/printing/applicationContext-print.xml
Copying ./project/standard/templates/web/src/main/resources/applicationContext.xml
Copying ./project/standard/templates/web/src/main/resources/geostore-datasource-ovr.properties
Copying ./project/standard/templates/web/src/main/resources/log4j2.properties
Copying ./project/standard/templates/web/src/main/resources/mapstore.properties
Copying ./project/standard/templates/web/src/main/resources/proxy.properties
Copying ./project/standard/templates/web/src/main/resources/sample_categories.xml
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/configs-servlet.xml
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/extensions-servlet.xml
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/web.xml
Templates copied
Creating git repo...
(node:226256) DeprecationWarning: Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.
(Use `node --trace-deprecation ...` to show where the warning was created)
initializing git repo...
MapStore2 submodule added...
git init
doing checkout to the branch: 2024.01.xx
Creating first commit...
First commit created...
git repo OK!

I tested the same with master and 2024.01.xx for version.

both worked for me, on my linux machine.
Maybe we should ask a test for it to windows users too? To verify it is not an issue of the OS?

@tdipisa
Copy link
Member Author

tdipisa commented May 31, 2024

@MV88 can you please do a try?

@MV88
Copy link
Contributor

MV88 commented May 31, 2024

no issue on my side as well

node ./createProject.js
Project Type (standard):
MapStore base branch (master):2024.01.xx
Project Name: release_project_test
Project Version (1.0.0):
Project Description (Project Name):
Repository URL:
Output folder: ../release_project_test
Out folder created (../release_project_test)
Creating package.json...
package.json file created
Copying static files...
Copied .editorconfig
Copied LICENSE.txt
Copied Dockerfile
copied static files
Copying docker/geostore-datasource-ovr-h2.properties
Copying docker/wait-for-postgres.sh
Copying docker/postgres/01-init-user.sh
Copying docker/geostore-datasource-ovr.properties
Copying docker/geostore-datasource-ovr-postgres.properties
Copying docker/mapstore.conf
Copying docker/postgres/Dockerfile
docker folder
Copying template files
Copying ./project/standard/templates/.gitignore
Copying ./project/standard/templates/build.sh
Copying ./project/standard/templates/dashboard-embedded.html
Copying ./project/standard/templates/api.html
Copying ./project/standard/templates/apiTemplate.html
Copying ./project/standard/templates/dashboard-embedded-template.html
Copying ./project/standard/templates/embedded.html
Copying ./project/standard/templates/geostory-embedded.html
Copying ./project/standard/templates/prod-webpack.config.js
Copying ./project/standard/templates/geostory-embedded-template.html
Copying ./project/standard/templates/embeddedTemplate.html
Copying ./project/standard/templates/webpack.config.js
Copying ./project/standard/templates/indexTemplate.html
Copying ./project/standard/templates/version.txt
Copying ./project/standard/templates/index.html
Copying ./project/standard/templates/js/app.jsx
Copying ./project/standard/templates/pom.xml
Copying ./project/standard/templates/README.md
Copying ./project/standard/templates/js/geostoryEmbedded.jsx
Copying ./project/standard/templates/js/embedded.jsx
Copying ./project/standard/templates/js/dashboardEmbedded.jsx
Copying ./project/standard/templates/web/pom.xml
Copying ./project/standard/templates/configs/pluginsConfig.json
Copying ./project/standard/templates/js/__tests__/app-test.js
Copying ./project/standard/templates/configs/new.json
Copying ./project/standard/templates/unsupportedBrowser.html
Copying ./project/standard/templates/web/src/main/resources/sample_categories.xml  
Copying ./project/standard/templates/web/src/main/resources/proxy.properties       
Copying ./project/standard/templates/web/src/printing/applicationContext-print.xml 
Copying ./project/standard/templates/web/src/main/resources/geostore-datasource-ovr.properties
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/configs-servlet.xml
Copying ./project/standard/templates/web/src/main/resources/applicationContext.xml 
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/loadAssets-servlet.xml
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/extensions-servlet.xml
Copying ./project/standard/templates/web/src/main/resources/log4j2.properties      
Copying ./project/standard/templates/web/src/main/resources/mapstore.properties    
Copying ./project/standard/templates/web/src/main/webapp/WEB-INF/web.xml
Templates copied
Creating git repo...
(node:35760) DeprecationWarning: Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.(Use `node --trace-deprecation ...` to show where the warning was created)
initializing git repo...
MapStore2 submodule added...
git init
doing checkout to the branch: 2024.01.xx
Creating first commit...
First commit created...
git repo OK!

@offtherailz
Copy link
Member

@tdipisa Release done. Up to you to update release notes and send the email to the mailing list tomorrow.

@tdipisa tdipisa closed this as completed Jun 6, 2024
mahmoudadel54 added a commit to mahmoudadel54/MapStore2 that referenced this issue Jun 6, 2024
…s edits in dashboards

Description:
- fix the issue of misleading persistence of CSW advanced settings edits in dahsboards instead of showing the default csw with its default advanced settings
MV88 pushed a commit that referenced this issue Jun 17, 2024
…boards (#10412)

Description:
- fix the issue of misleading persistence of CSW advanced settings edits in dahsboards instead of showing the default csw with its default advanced settings
mahmoudadel54 added a commit to mahmoudadel54/MapStore2 that referenced this issue Jun 21, 2024
…s edits in dashboards (geosolutions-it#10412)

Description:
- fix the issue of misleading persistence of CSW advanced settings edits in dahsboards instead of showing the default csw with its default advanced settings
MV88 pushed a commit that referenced this issue Jun 25, 2024
…ed settings edits in dashboards (#10412) (#10439)

Description:
- fix the issue of misleading persistence of CSW advanced settings edits in dahsboards instead of showing the default csw with its default advanced settings
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