I spent a day yesterday working on getting DTP build going again. I initially started by looking at the existing build system. It’s the old-school tag and map files approach, which is quite complex and it doesn’t appear to be compatible with Windows.
In the interest of quickly getting a DTP build up and running, I chose to leverage Sapphire build system that I wrote and maintain. It is a drop-in-replacement for any PDE Build based system and is very easy to use both on Hudson and on a developer’s machine. This build system is used to build Sapphire and Oracle’s Eclipse tools. It is known to work on Windows, Linux and Mac.
Perhaps the biggest difference from the current build system is that the qualifier is always the time stamp of the build, rather than a Git label. This removes a lot of complexity from the build and also makes it easier for committers to push changes as there is no map files to update.
The DTP build is now up-n-running. I temporarily used Sapphire HIPP instance since I don’t have access to the DTP one.
https://hudson.eclipse.org/sapphire/job/dtp/
I have verified the following:
1. The number of artifacts and repository size matches DTP 1.12 release
2. Can install DTP into Mars.1
3. Can install DTP into Neon M1
To try the build yourself on your dev machine, follow these instructions:
1. Start with a clean folder, which we will call ROOT
2. Clone all DTP Git repos into ROOT, such that each repo has it’s own sub-folder named using the repository name
3. Extract the attached zip file into ROOT
4. Ensure that you have Ant installed and it’s on the path (I tested with Ant 1.9.4)
5. Ensure that you have JDK 8 installed and it’s on the path to run the build
6. Set JDK_5_HOME, JDK_6_HOME, JDK_7_HOME and JDK_8_HOME environment variables. You may be able to cheat and set 6 and 7 to the same path as 8, but the build will definitely need a correct 5 and a correct 8. This can be simplified by moving all DTP plugins to require Java 8 for Neon, since that’s what’s required by the platform anyway.
7. Ensure that you have a network connection as the build will need to download items to build the target platform
8. Run “ant clean-start” from ROOT
Once the build completes, you will have the following artifacts:
1. ROOT/build/repository – the p2 repo
2. ROOT/build/packages – the zipped copy of the p2 repo
3. ROOT/dev-eclipse – an Eclipse install with everything necessary to work on DTP
4. ROOT/dev-target – an Eclipse install with DTP and source bundles for everything
The artifacts in the built repository are conditioned, signed (if built on eclipse.org Hudson) and packed. The repository includes a welcome page and index files.
Sapphire build system includes other facilities that are currently disabled in the DTP build, such as automatic computation and setting of dependency version ranges.
This message is getting long enough... If you want to move forward with this approach and want to make me a committer on DTP, I can have the build running on DTP HIPP very quickly and will continue to maintain DTP build for as long as it uses this build system.
Thanks,
- Konstantin