# To force a version qualifier update add the bug here
Bug 403352 - Update all parent versions to match our build stream
Bug 430284 - Update Orbit pre-reqs to latest Orbit I-build
Bug 399749 - update to Orbit M7 S-build URL
Bug 442445 - Moving to Ant 1.9.4 for Mars
Bug 448567 - Update Orbit for M3
Bug 437486 - Add JSch 0.1.51 to Platform
Bug 467268 - Update to Orbit RC1 URL
Bug 537521 - Update to latest org.eclipse.debug.core
Needs a touch for felix.scr qualifier update