EDT:How to commit code to EDT
Hello EDT developers,
This is Matt Heitz, a developer and committer for EDT. I'm in the process of setting up our builds. I'm writing to explain how to get your changes into a build. All committers should read and understand this note.
Use the UTF-8 encoding for your .java files. You can set UTF-8 as the default for your workspace.
Builds don't simply compile the latest code from CVS. A special file called a map file identifies the plugins to be built. There's an entry for each plugin naming the CVS tag for that plugin's code. (A CVS tag is simply a label on a particular version of a file.) The build will include the tagged files from each plugin in the map file. This means that to get a change into the build, you must commit your file to CVS, put a new tag on it AND all of the other files in the plugin, and update the map file with the new tag. That's a lot of work, which is why people have written a tool to automate most of the process.
The tool is in the org.eclipse.releng.tools plugin. You can find it by going to http://download.eclipse.org/eclipse/downloads if you use Eclipse 3.6, or http://archive.eclipse.org/eclipse/downloads/index.php if you use an older version of Eclipse. Click on the link for the release you're using and you'll find org.eclipse.releng.tools at the bottom of the page. To install it, unzip it into your dropins folder and restart Eclipse.
You need to check out the org.eclipse.edt.releng plugin from CVS, because it contains our map file. (Releng is short for "release engineering". Most of the files that control EDT builds are in org.eclipse.edt.releng.)
To release a change into the build follow these steps:
- Select all plugins that have uncommitted changes, and org.eclipse.edt.releng.
- Right click (while on any selected plugin) and chose Team->Synchronize with Repository. This step makes sure you are getting the latest map file and checks for any conflicts before you commit.
- In the Team Synchronizing perspective, commit your changes and at the same time update changes from other developers into your workspace. Perform merges if needed.
- Go back to the Java Perspective. If there are any errors, correct them and go back to step 1.
- With the same set of plugins from step 1 still selected, you are now ready to Team-Release them. Right click (while on any selected plugin) and select Team->Release....
- The Release wizard is displayed. Select "Specify the map project you want to use" and select org.eclipse.edt.releng. Click Next.
- The wizard displays the list of projects in your workspace that have entries in the map file. In the Project Selection Dialog, verify that the plugins with your changes are checked in the Project Selection dialog. Click Next.
- Specify a release tag for your changes. Your project(s) will be tagged with this tag and the map file will be updated with it as well. The format of a tag should be 'v' followed by a timestamp in YYYYMMDDHHMM format, using 00 to 23 for the hour. For example, the tag for changes made on December 21st 2012, at 11:59pm is v201212212359. The timestamp must be in the Eastern U.S. timezone. If you're located elsewhere, go to http://www.timeanddate.com/worldclock/city.html?n=179 for the current time in New York.
- The next page allows you to view the changes to the map file. Click Next.
- Enter a commit comment on the last page of the wizard. Click Finish.
Note: do not use Team->Release if you're making changes to org.eclipse.edt.releng.
Once I've got them configured properly, our Nightly builds run at 9 PM Eastern U.S. time.
Please let me know if you have any questions.