-
Notifications
You must be signed in to change notification settings - Fork 172
EclipseLink Release Steps
There is always at least one release candidate (for example 2.7.5-RC1) before production release to give community time to test it and declare that production release is not too far. There is some time window to fix latest bugs.
- In case of changes in org.eclipse.persistence.oracle or org.eclipse.persistence.oracle.nosql modules is required to generate new Oracle bundles in "plugins/" directory. It's about following files:
- org.eclipse.persistence.oracle.nosql.source_*.jar
- org.eclipse.persistence.oracle.nosql_*.jar
- org.eclipse.persistence.oracle.source_*.jar
- org.eclipse.persistence.oracle_*.jar
It coulld be done by following command "ant -f oraclebuild.xml process-control". It builds new EclipseLink Oracle bundles and creates two commits with them. Third commit to remove old Oracle bundles must be created manually.
If command "ant -f oraclebuild.xml process-control" will fail with error message like this:
[java] Caused by: java.lang.RuntimeException: Failed to load p2 repository with ID 'Oracle-local-p2' from location file://home/felda/work/EclipseLinkProjects/eclipselinkGitHubRFelcmanFork/buildsystem/oraclelibs/p2repo
Try to delete "p2repo" directory under "oraclelibs" directory.
- decide which nightly build (git commit) will be released. Nightly builds are available at https://www.eclipse.org/eclipselink/downloads/nightly.php commits at https://github.com/eclipse-ee4j/eclipselink/commits/master
Note: as a part of nightly build URL is build date and git commit id (short version). It's required to select nightly build without any JUnit test errors (green check marks in the table in Nightly builds page)
- execute eclipselink-promote- job (for example https://ci.eclipse.org/eclipselink/job/eclipselink-promote-2.7/) Behind this job is Jenkins pipeline etc/jenkins/promote.groovy (calls promote_init.sh, promote.sh, publish_milestone.sh scripts What happens there:
- git (drom GitHub) clone/checkout (depends on GIT_REPOSITORY_URL, GIT_BRANCH variables)
- gpg key preparation (this key is provided by Eclipse.org foundation)
- download selected nightly build artifacts/bundles from Eclipse.org download server (projects-storage.eclipse.org) to Jenkins job workspace (promote_init.sh script)
- download some external dependencies. Most important are Eclipse SDK and maven-ant-tasks.
- promote.sh script call. This script create and publish EclipseLink maven artifacts into OSS Sonatype staging repository. What happens there:
- bash script will check in git repository and downloaded nightly build some job input parameters like MAJOR_VERSION, VERSION, NIGHTLY_BUILD_ID
- bash script call Ant (build-milestone target)
- Ant prepare Maven artifacts (there is template pom pom.xml.template in EclipseLink project files)
- Ant via maven-ant-tasks call Maven to sign and publish artifacts into OSS Sonatype staging repository.
- publish_milestone script call. It uploads artifacts into Eclipse.org download server (projects-storage.eclipse.org) Milestone page
- call eclipselink-update-milestone-page job at (https://ci.eclipse.org/eclipselink/job/eclipselink-update-milestone-page/) to refresh "milestone.xml" file used as a source for EclipseLink "Milestone Builds" page (https://www.eclipse.org/eclipselink/downloads/milestones.php)
Note: There is some delay (a few minutes), than changes are visible via Milestone page
- Log into OSS Sonatype repository manager at https://oss.sonatype.org/ and:
- close repository created by eclipselink-promote- job to make artifacts available in staging repo. Artifacts are available at https://oss.sonatype.org/content/groups/staging/org/eclipse/persistence/eclipselink/ almost immediately.
- release repository from staging into Maven central https://search.maven.org . Files are uploaded almost immediately but search index rebuild takes a few hours.
- add tag like 2.7.5-RC1 to the selected commit (see Pre-release steps) It could done via GitHub pages or directly via git.
- Sent e-mail to [email protected]
- Update EclipseLink pages (it's based on XML files transformed by XLS in PHP scripts) GIT project is available at https://git.eclipse.org/c/www.eclipse.org/eclipselink.git/
- Main page https://www.eclipse.org/eclipselink/#download (index.html only for latests release not 2.6 or 2.5 branches) Page update on the Web after change (commit, push) can take 2 hours
- Downloads https://www.eclipse.org/eclipselink/downloads/ (downloads/index.xml)
- Downloads for previous relesases https://www.eclipse.org/eclipselink/downloads/previous_releases.php (downloads/previous_releases.xml)
- Reference Implementation Downloads https://www.eclipse.org/eclipselink/downloads/ri.php (downloads/ri.xml)
- Releases List https://www.eclipse.org/eclipselink/releases/ (releases/index.xml)
- Javadoc API pages (location depends on major version) Note: "Nightly builds" and "Milestone builds" pages are updated by eclipselink-update-nightly-builds-page , eclipselink-update-milestone-page jobs. Other pages are managed via XML files from following git repo https://git.eclipse.org/c/www.eclipse.org/eclipselink.git/
- Main page https://www.eclipse.org/eclipselink/ - index.html
- Downloads https://www.eclipse.org/eclipselink/downloads/ - downoads/index.html
- Downloads for previous relesases https://www.eclipse.org/eclipselink/downloads/previous_releases.php - downloads/previous_releases.xml
- Reference Implementation Downloads https://www.eclipse.org/eclipselink/downloads/ri.php -downloads/ri.xml
- Add release info into EclipseLink Project page at https://projects.eclipse.org/projects/ee4j.eclipselink via link "Create a new release" in the right column.
- Prepare EclipseLink sources for a next version. In the sources find and replace old version string by new one. For example 2.7.5 by 2.7.6. It's usually about *.properties, antbuild.xml, pom.xml, MANIFEST.MF files
- Update P2 site by eclipselink-update-P2 .