Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


  1. Pre-release code changes:
    1. Switch off Wicket development mode (gui/admin-gui/src/main/webapp/WEB-INF/web.xml)
    2. Switch off checks in InternalsConfig
    3. Check versions of ConnId and the connectors. If there are any snapshorts then release these first and fix the versions.
  2. Pre-release check:
    1. Check Jenkins state
    2. Check that overlay projects work
    3. Check that WebLogic deployment works
    4. Check that dist package is built correctly, nothing is missing and that fresh midpoint starts (for 4.0.x check both Java8 and Java11)
    5. Fresh clone/pull of the source code, fresh build (delete local maven repository before build). Run all tests. Make sure that the code is ship-shape. (for 4.0.x build with Java8)
    6. Run as standalone and test Tomcat deployment (for 4.0.x check both Java8 and Java11)
    7. Check outstanding Jira issues
    8. Check that DB scripts are up-to-date
      1. ask someone to review the scripts
      2. check that there are no scripts for older releases
      3. check that config/sql has both "create" and "upgrade" scripts for every database
    9. Check changes in init objects (admin-gui/src/main/resources/initial-objects).
      1. git log --stat gui/admin-gui/src/main/resources/initial-objects
      2. Document changes in release notes
      3. Copy the new objects into config/initial-objects
    10. Review Notice file, make sure all copyright notices are there
    11. Make sure there is enough space on website to hold the release
  3. Release companion projects:
    1. midpoint-localization (also create the support branch, e.g. support-4.3, support build of midpoint will need it)
    2. midpoint-samples
  4. Do the "source code" release:
    2. Change maven version to final (non-snapshot) version (see the use of "version" plugin below), e.g. mvn versions:set -DnewVersion=4.3
    3. Change maven version also in samples/model-client-sample, weblogic-build
    4. Change plugin dependency version in infra/schema/pom.xml, model/model-client/pom.xml (usually not needed any more)
    5. Change version in build-tools/pom.xml (4.0 only)
    6. Check that there are no SNAPSHOT versions in pom.xml dependencies (mvn clean; find . -name "pom.xml" -exec grep SNAPSHOT {} \; -print)
    7. Change version in XSD schemas (especially common-*.xsd) - remove SNAPSHOT
    8. mvn versions:commit
    9. Clean local maven repo and rebuild with tests - to make sure nothing was broken by changing the version (for 3.x and 4.0.x build with java8!)
    10. git commit
    11. Git tag: v4.3 (not midpoint-v4.3 !!!): git tag -a v4.3 -m 'Version 4.3 (VersionName)'
    12. Rebuild and package midpoint: mvn clean install package -DskipTests=true (Important! for 3.x and 4.0.x build with Java8)
    13. Save the binary distribution for upload (important! build only after tagging, we need correct "git describe"):
      1. dist/target/midpoint-*-dist.*
      2. dist/midpoint-api/target/midpoint-api-4.3.jar
      3. dist/midpoint-api/target/midpoint-api-4.3-javadoc.jar
      4. infra/schema/target/ save as (rename) midpoint-4.3-schemadoc.jar
    14. Save full javadoc: (does not work for 3.x, needs rebuild with java11 for 4.0.x).
      1. dist/javadoc/target/javadoc-4.3-javadoc.jar save sa (rename) midpoint-4.3-javadoc.jar
    15. deploy midpoint (both standalone and tomcat), check that it starts OK, roughly test that GUI works
    16. Check that the version numbers are displayed correctly in the GUI (in "About")
    17. git push; git push origin v4.3
    18. Publish maven artifacts to nexus "releases" repository using mvn deploy -DskipTests=true (you need to have nexus username/password in maven settings.xml)
    19. Create a support branch, e.g. support-4.3 (if not created already): git checkout -b support-4.3; git push -u origin support-4.3; git checkout master
  5. Master branch
    1. Change maven version to next snapshot, e.g. 4.4-SNAPSHOT (also change in model-client-sample, plugins and others as described above)
    2. Update README and to indicate development branch
    3. Change version in XSD schemas (especially common-*.xsd) - e.g. to 3.5-SNAPSHOT (do we still do this (question))
    4. commit
    5. Tag the beginning of new development, e.g. v4.4devel (used in "git describe" strings): git tag -a v3.5devel -m 'Start of 3.5 development'
    6. git push, git push origin v4.4devel
    7. Update database schema version in the initialization SQL files, e.g. INSERT INTO m_global_metadata VALUES ('databaseSchemaVersion', '4.4');
  6. Support branch
    1. Change maven version to next support snapshot, e.g. 4.3.1-SNAPSHOT
    2. Update README and to indicate support branch
    3. commit
    4. Tag the beginning of support, e.g. v4.3support
    5. git push, git push origin v4.3support
    6. Reconfigure Jenkins support build plan (also add support branch to possible values of branch parameter in the midpoint-localization build).
  7. Evolveum website:
    1. Upload binary distribution to Evolveum website (download section): dist/target/midpoint-* -> static.artefacts:/var/www/
    2. Upload API javadoc to www:
      1. copy dist/midpoint-api/target/midpoint-api-3.4-javadoc.jar -> mercurius:/var/www/evolveum/downloads/midpoint/3.4
      2. server: mkdir midpoint-api-3.4-javadoc; cd midpoint-api-3.4-javadoc; unzip ../midpoint-api-3.4-javadoc.jar
    3. Upload full javadoc to www:
      1. copy target/midpoint-3.4-javadoc.jar -> mercurius:/var/www/evolveum/downloads/midpoint/3.4
      2. server: mkdir midpoint-3.4-javadoc; cd midpoint-3.4-javadoc; unzip ../midpoint-3.4-javadoc.jar
    4. Upload schemadoc to www:
      1. copy infra/schema/target/ -> mercurius:/var/www/evolveum/downloads/midpoint/3.4
      2. server: mkdir midpoint-3.4-schemadoc; cd midpoint-3.4-schemadoc; unzip ../
    5. Find someone to independently test the uploaded binary
    6. Update symlinks in /var/www/evolveum/downloads/midpoint/latest
    7. Update website links (download page, news, ...):
      1. Pages -> Download midPoint: add new row (and try not to get mad about row classes)
      2. Log out!
      3. Click through the website to verify it works.
  8. Update wiki links:
    1. Release notes (midPoint Releases): copy the "PLANNED" page to a next version, update the current version page
    2. Update midPoint History
    3. Update Roadmap
    4. Update Home
    5. Update SchemaDoc
    6. Update JavaDoc page
    7. Update Interfaces (each individual interface page)
    8. Update Identity Connectors if needed
    9. Update Script Expression Functions and subpages
    10. Update Configuration Samples
    11. Update Model Web Service Client Sample
  9. Update project versions in JIRA
  10. Update support branch name in Jenkins
  11. Update web and documents
    1. midPoint overview presentation
    2. datasheet
  12. Send announce to mailing list
  13. Write blog about new release
  14. Follow-up releases:
    1. Docker images
    2. Overlay projects
      1. set versions, tag, push, ....
      2. update Customization With Overlay Project page
    3. Schrodinger
    4. midpoint-client-java
    5. MidPoint Studio