Updating Platform Ant:
← Older revision
Revision as of 21:53, 2 January 2014
(6 intermediate revisions by one user not shown)
Line 13:
Line 13:
* A [https://dev.eclipse.org/ipzilla/ CQ] is opened to get legal approval to use the new version
* A [https://dev.eclipse.org/ipzilla/ CQ] is opened to get legal approval to use the new version
* Once approved, the new version is added to Orbit
* Once approved, the new version is added to Orbit
−
*
Smokes
testing and test builds are done
+
*
Smoke
testing and test builds are done
* Assuming no problems - the platform is updated
* Assuming no problems - the platform is updated
Line 58:
Line 58:
#Copy the <code>/about.html</code> file from the old version to the new version. Open it and change the date to the current date (update the copyright as needed), Update the version of Ant mentioned and update the link to the what's new for the current release.
#Copy the <code>/about.html</code> file from the old version to the new version. Open it and change the date to the current date (update the copyright as needed), Update the version of Ant mentioned and update the link to the what's new for the current release.
#Copy all of the files from the <code>.settings</code> folder of the old version into the <code>.settings</code> folder of the new version
#Copy all of the files from the <code>.settings</code> folder of the old version into the <code>.settings</code> folder of the new version
−
#Create <code>/about_files</code>, <code>/bin</code>, <code>/etc</code>, <code>/lib</code>, <code>/source-bundle</code> and <code>/source-bundle/libsrc</code>folders
+
#Create <code>/about_files</code>, <code>/bin</code>, <code>/etc</code>, <code>/lib</code>, <code>/source-bundle</code> and <code>/source-bundle/libsrc</code> folders
#Copy the <code>/MANIFEST.MF/eclipse.inf</code> file from the old version to the new version
#Copy the <code>/MANIFEST.MF/eclipse.inf</code> file from the old version to the new version
#Edit the build path properties and set the default output folder to be <code>org.apache.ant/bin-generated</code>
#Edit the build path properties and set the default output folder to be <code>org.apache.ant/bin-generated</code>
Line 106:
Line 106:
= Updating Platform Ant =
= Updating Platform Ant =
−
= Creating the CQ =
+
Depending on the scope of changes from the previous release, there could be nothing but test updates to make. In this section, I will only discuss running the test suites and the required updates to bundle versions and tests. I also am assuming you have the platform Ant source in your workspace.
+
+
Any changes you make to platform Ant should be attached to the bugzilla that was opened for updating to the new version of Apache Ant.
+
+
=
= Updating versions ==
+
+
If the new version of Apache Ant changes API or requires significant changes that make it no longer compatible with the previous version, you will have to go through all of the platform Ant bundles and makes sure they have a minimum requirement on the new version. If, however, the changes are minimal (a point release) you should not have to make any changes to the platform Ant required versions.
+
+
== Updating the tests ==
+
+
One of the first things you would have done with your new Apache Ant bundle is to run the test suites to make sure there are no regressions.
+
+
In doing so, you would find two tests that will always fail when a new version of Apache Ant is used:
+
*<code>org.eclipse.ant.tests.core.tests.OptionTests</code>
+
*<code>org.eclipse.ant.tests.ui.debug.PropertyTests</code>
+
+
The reason being that these two tests both test the version that is returned from launching Ant, so you have to update the constants in both classes to the latest version string.
+
+
= Approval for use =
+
+
Once you are happy with the new version and everything is working as expected, we have to open a CQ to get approval to add the new version to Orbit and to use it in the platform.
+
+
To get approval:
+
#Go to [https://dev.eclipse.org/ipzilla/ https://dev.eclipse.org/ipzilla/] and find the most recent approved update for Apache Ant. We want the CQ approved for use in eclipse.platform. As of this writing that is: [https://dev.eclipse.org/ipzilla/show_bug.cgi?id=7349 Apache Ant 1.9.2]
+
#Actually creating a new CQ will require a committer, so if you are not one, find one to do it for you and ask really nicely. Remind the committer (or yourself) to mention the previously approved version in the description of the new CQ (the reason we looked it up)
+
#Once the CQ is open you have to attach the source WITHOUT any embedded archives. So for our snazzy new bundle we created in the [[#
Creating
the Orbit bundle|Creating the Orbit bundle]] section, we have to remove the <code>/lib</code> folder completely before zipping it up and attaching to
the CQ
+
#The CQ will go through a few stages, but just remember if it is set back to ''awaiting_committer'' you have to address the issues raised and DO NOT forget to return it to the IP team (use the button).
+
+
Eventually the CQ will be approved and the <code>checkintocvs</code> keyword will be added. Leading to the next section, actually getting it into Orbit.
+
+
=
Put it in Orbit =
+
+
With the use of the new version approved in the [[#Approval for use|last section]], we need to commit the new bundle to Orbit. Like creating the CQ, this step requires commit rights, specifically to Orbit. If you do not have commit rights to Orbit you can find a committer to help on the [https://projects.eclipse.org/projects/tools.orbit/developers Obit committers page]. Ideally you would ask the committer listed as being responsible for the particular project, failing that asking another one won't hurt. As of this writing the the committer responsible for org.apache.ant is [https://projects.eclipse.org/content/michael-rennie-committer-eclipse-orbit-project Michael Rennie].
+
+
Once the bundle has been added to Orbit, you can delete it from your workspace and grab the version committed to Orbit!
= Testing and Test builds =
= Testing and Test builds =
+
+
Now that we have the latest and greatest new version [[#Put it in Orbit | in Orbit]], we need a test build with the latest version to make sure it works with the rest of the platform (smoke testing).
+
+
Before bugging David Williams for run a test build for the platform, go through the relevant steps on the [[Orbit_Builds | Orbit builds wiki]] to produce a testable build yourself. Once you are confident, you can request David run a build of the platform with the new version of Apache Ant.
+
+
With a freshly minted platform build in your hands, at a minimum confirm:
+
* The names of the new Apache Ant bundles (core and source) show up correctly in the About dialog
+
* Debug something to ensure the Apache Ant source can be found
+
* Open a type from Apache Ant to make sure the source can be found
+
* Close Apache Ant in your workspace and re-run the unit tests to make sure they all still pass.