Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-papyrus.dev] Important: Version Management Changes

Hello, Team,

Now that we have been putting so much effort into the refactoring of APIs, it has been decided by the project leadership that as of the Neon Release, Papyrus will be adhering to the Eclipse Guidelines for Version Numbering [1].

Accordingly, we will no longer be bulk updating the versions of all bundles and features with every release. Instead, version numbers will evolve individually according to the nature of their changes, in API and behaviour. All bundles and features had already been bulk updated to version 1.2.0 earlier in the Neon development stream; these are unchanged except where versions are updated to 2.0.0 to reflect API breakage from refactorings and other changes.

Project Configuration Changes

Changes have been merged into the master branch for the Main and Developer plug-ins to help us keep rigorous control over our versions:

  • all projects are configured with the PDE API Tooling builder. This flags various problems in versioning, such as a bundle version that needs to be changed, missing @since Javadoc tags for new APIs, etc. This does require developers to point the tooling at a baseline of the previous Papyrus version for comparison. This is as simple as, for example, configuring your Neon workspace to use a Mars installation of Papyrus as the baseline

  • all projects are also configured with the Oomph Version Management builder. This performs additional version validation that PDE does not, for example consistency of feature versions with contained bundle versions, consistency of POM versions with their corresponding plug-in/feature manifests, and more. For those that use the Papyrus Setup model to provision their environments, the requisite tools will be installed for you. Otherwise, you will get none of this Oomph goodness (you won’t see any change in PDE/JDT behaviour)

  • the Developer Tools menu actions that bulk update versions of Papyrus plug-ins and features, as well as bundle dependency version, are removed.

  • new actions are added in the Developer Tools to assist in maintaining clean bundle dependencies:
    • in the Plug-in Tools context menu for plug-in projects and MANIFEST.MF files
      • an Update Dependency Ranges action that sets all bundle dependencies to have version ranges compatible with the current version of each dependency in the workspace or PDE Target. Certain bundles are excluded that are known not to follow Eclipse’s semantic versioning, such as Guava and ICU4J
      • an Optimize Bundle Dependencies action that computes the minimal bundle dependencies that need to be re-exported to cover imported APIs that are exposed by the bundle’s own exported API
    • in the ibis-head menu in the main menu bar, a Synchronize POM Versions menu that ensures all plug-in and feature projects have version numbers in the POM to match the version number in the Eclipse manifest

Tests Changes

A few of the JUnit tests in the BundleTests class are removed because they are no longer appropriate:

  • versionTest — bundle versions now evolve organically for each bundle
  • papyrusDependencyVersionTest — all Papyrus bundles no longer have the same version
  • reexportDependencies — re-exports are now employed where necessary to export a bundle’s complete API

Documentation Changes

Some of our procedural documentation in the Wiki is updated to reflect these changes:

If there’s any other documentation that needs updating, please let me know or, better, just edit it. 😀

Build Changes

Note that the build system is not yet updated to integrate version validation via PDE API Tools and Oomph, but this is in the plan. So, for now, we are relying on developers using these tools in their workbenches to ensure consistency before pushing changes to the central repository.

Thanks,

Christian



  1. https://wiki.eclipse.org/Version_Numbering  ↩

  2. https://wiki.eclipse.org/index.php?title=Papyrus/Code_Standards  ↩

  3. https://wiki.eclipse.org/index.php?title=Papyrus_Developer_Guide/Build_Process:_How_To  ↩


Back to the top