Thinking more about this. If the director receives both an -u <feature> and -i<feature> on the same <feature>, it will come up with a plan for an update if a newer version is available. So perhaps its as simple as doing that on all features (except the product itself).
Ideally, I think you should abandon the buckminster install and instead just use the director. An initial install of a fully configured buckminster can be made with one single director call using repeated -i <feature> [ -i <feature> ... ], i.e.,
director
-i org.eclipse.buckminster.cmdline.product
-i org.eclipse.buckminster.core.headless.feature.feature.group
-i org.eclipse.buckminster.pde.headless.feature.featuregroup
-i ...
-r <repo>
The trick for update is to just append '.feature.group' at the end of each feature. A call like this:
director
-u org.eclipse.buckminster.core.headless.feature.feature.group
-i org.eclipse.buckminster.core.headless.feature.feature.group
-u org.eclipse.buckminster.pde.headless.feature.featuregroup
-i org.eclipse.buckminster.pde.headless.feature.featuregroup
-u ... -i ...
-r <repo>
will result in an update if updates are available.
Fix released to TRUNK revision 20055. Will be available in version 1.0.0.
Now there is a new checkbox in the Tool configuration (update before build).
If this checkbox is set, the installation will be updated automatically before every build run.
If new features are added into the JSON file, they will be installed, if features get removed from the JSON file, they get also removed from the buckminster installation.
As long as there are no updates/new features available the update check should finish rather quickly (a few seconds) so the impact on the overall build time should be low.