Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Making Builds Reproducible
Making Builds Reproducible
Background
In order to build non-SDK projects offline -- a requirement of our buildsystem for security purposes -- we must do the following:
- check out releng plugin
- add a fetch target
In an ideal world, all it would take to build a project on top of the SDK would be something like this:
- assume SDK is available
- check out project releng plugin
- ideally there would be no custom build.xml which is essentially a shell for PDE build
- (if things need to be done that are special, can they not
- java -cp $SDK/startup.jar org.eclipse.core.launcher.Main -application org.eclipse.ant.core.antRunner -Dcomponent=<whatever> -DbaseLocation=$SDK -DskipFetch=true
In practice, we run into common gotchas such as:
- customTargets.xml attempts to fetch dependencies with no flags to override this behaviour
- ex. getBaseBuilder is in postFetch unconditionally - I have to patch this out
- inconsistent flags to avoid fetching
- ie. we would like there to be