-
Notifications
You must be signed in to change notification settings - Fork 32
OpenJdkVendor
John L. Singleton edited this page Dec 2, 2015
·
1 revision
Now that we are running with full OpenJDK 1.7, merging with vendor branches is less critical. However, we should still keep up to date with bug fixes in 1.7 and will eventually need to update to 1.8.
These instructions have not been reviewed for some time and may need updating.
OpenJML is based upon OpenJDK.
A snapshot of the OpenJDK code base relevant to OpenJML is located in an SVN vendor branch at [source:OpenJML/vendor/OpenJDK/].
When a new release of the OpenJDK is dropped, this branch is updated appropriately and committed to our repository. This is accomplished in around a dozen steps:
- Checkout and/or update a Mercurial sandbox against the OpenJDK repository.
- Ensure your SVN sandbox for the [source:OpenJML/vendor/OpenJDK/ OpenJDK vendor branch] is up-to-date. Call this revision number 'O'. (More information on the organization of the OpenJDK repository is available here.) Note that the forest extension of Mercurial is necessary to correctly access the OpenJDK repository.
- Update all files in the SVN sandbox with the corresponding files in the Mercurial sandbox. This can be accomplished with intelligent use of tar, rsync, find/rm, and other similar tools.
- Perform a diff -rq of the two trees to ensure that they are identical.
- Do not forget to
svn add
andsvn del
the resulting sandbox appropriately. - Commit the new snapshot in SVN with a message that indicates which drop we have synchronized to. Call this revision number 'N'.
- Use svn merge to merge in all changes between 'O' and 'N' from the vendor branch to your (perhaps mainline) development branch or trunk. E.g., run
svn merge -r 1253:2297 $WORKSPACE_ROOT/OpenJDK-vendor/src/share/ .
while sitting in$WORKSPACE_ROOTOpenJDK/trunk/langtools/src/share
for some appropriateWORKSPACE_ROOT
value. - Resolve all conflicts in the merge, paying careful attention to all files/lines comment with DRC, JRK, or DMZ.
- Once the merge builds in Eclipse, commit it with an appropriate message.
- Run all unit and system tests and fix all outstanding issues.
- Commit the resulting tested merge with an appropriate message.
- Profit! No, actually, announce to the jmlspecs-developer mailing list, please.