Versions Compared

Key

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

...

It is easiest to do this if you have the git repository cloned and updated

This project has no J2EE/jakarta dependencies and so works with both the 10.x.y and 11.x.y versions of jetty - subject to the version of logback deployed being pinned (see below)

Check Changes

We First, we need to track any changes to the 10 branch and and in the origin\11 branch. Cherry pick in any appropriate changes.

We need to track breaking changes in jetty itself.

Note

A potential quick cut is to difference the jetty sources between the two tags

git diff jetty-10.0.9 jetty-10.0.9 10 jetty-deploy/src/main/config/etc/jetty-deploy.xml

and so forth.

Logback Version

Check the logback version in the top level pom for the jetty project and amend as appropriate

Code Block
<logback.version>1.3.5</logback.version>

You must also override the version in start.d\idp-system.ini and in the jetty base pom

Note

The Jetty 11 and Jetty 10 versions no longer interoperate so you need to make changes in the jetty11 and the jetty 10 branches. In practise this does not need to be revised unless there is a logback issue.

SLF4J Version

Check the slf4j version in the top level pom for the jetty project and amend as appropriate

Code Block
<slf4j.version>2.0.5</slf4j.version>

You should also override the version in start.d\idp-system.ini This is defensive against Jetty 10 and Jetty 11 versions drifting apart

The change must be made in the pom as well as the start.d\idp-system.ini

start.d/idp.ini

Any changes to this file may need to be reflected in changes to the file idp.ini.rewrite.property.names and/or idp.ini.windows and/or idp-system.windows

  • Properties new to idp.ini that are occur in idp.ini.rewrite.property.names should be added to idp-system.ini if they are required

  • Properties name changes must be added to idp.ini.rewrite.property.names.  Note that the name changes are cumulative

  • Properties new to idp.ini that do not occur in idp.ini.rewrite.property.names should be added to idp.ini.windows if they are required.  Add them below the "don't change these values" lines.

...

This should track the version checked into the 10 branch

Logging versions

If you this changes then you need to change the pom. You can also overrride the version in start.d\idp-system.ini

Build

Having completed the review the artefact used to build the installer can be created.  You should change version in the pom file to reflect the Jetty version.

...

  • Java files to look are

    • jetty-server\src\main\java\org\eclipse\jetty\server\Slf4jRequestLogWriter.java

    • jetty-server\src\main\java\org\eclipse\jetty\server\CustomRequestLog.java

Build & Release

This should be done within a docker build container

Code Block
# for interactive passphrase entry (maybe not required for others)
export GPG_TTY=$(tty) 
# somewhere to store a tmp maven repo
export REPO=/tmp/rodsrepo
cd /tmp
git clone git@git.shibboleth.net:java-idp-jetty-base
cd java-idp-jetty-base
git checkout -b 10-windows --track origin/10-windows

mvn install -D maven-Dmaven.repo.local=$REPO -Prelease clean verify

mvn -Dmaven.repo.local=$REPO -DgenerateBackupPoms=false -DnewVersion=10.0.0.8-WINDOWS versions:set

# Edit pom. -D net.shibboleth.maven.enforcer.rules.checkM2=true

The built artifact can now be used in the build of the installer

Tag and push

Once the installer has been created the branch should be tagged.  The tag is associated with the Jetty version

Code Block
xml, bump dependency versions to release
# vi pom.xml

# Be sure there are not SNAPSHOT deps in any pom (from base dir).
find . -name 'pom.xml' -exec grep SNAPSHOT {} \;
# If the output contains SNAPSHOTs change to release

mvn -Dmaven.repo.local=$REPO -Prelease clean verify

git add -A
git commit -m 'Update files to be tagged for release'
git tag -s -m "Tag Windows jetty-base 3.4.0.0" 9.4.30.v20200611-jetty-distribution'Tag 10.0.0.8-WINDOWS release' 10.0.0.8-WINDOWS

mvn -Dmaven.repo.local=$REPO -DgenerateBackupPoms=false -DnewVersion=10.0.0.9-WINDOWS-SNAPSHOT versions:set

# Be sure there are SNAPSHOTs in the right places.
find . -name 'pom.xml' -exec grep SNAPSHOT {} \;

git add -A
git commit -m 'Bump version after release'

cd /tmp/java-idp-jetty-base

git checkout 10.0.0.8-WINDOWS
mvn -Dmaven.repo.local=$REPO -Prelease,sign clean verify

## commit the work
ssh -L 1581:127.0.0.1:1581 -N build.shibboleth.net -f
mvn -Dmaven.repo.local=$REPO -DskipTests -DdeployAtEnd=true -Prelease,sign deploy

git checkout 10-windows
git push origin [-n]10-windows
git push origin 910.40.300.v20200611-jetty-distribution-windows

...

8-WINDOWS