NOTE: This Plugin is decommissioned as of the start of the El Alto release.

Overview

Per the Independent Versioning and Release Process, each team is to declare their release artifact versions in the ONAP version manifest, located at https://git.onap.org/integration/tree/version-manifest/src/main/resources.

The ONAP Integration team has provided a Maven plugin to help individual projects detect when their external (cross-project) dependencies have become out of date.  Each project team should use this plugin periodically to identify any out-of-date dependencies that should be upgraded.

The version manifest CSV itself is packaged into the the plugin artifact, so that we can identify the exact manifest version using the plugin version number.

Running the Plugin

To use the latest available Version Manifest plugin, run the following command:

mvn org.onap.integration:version-manifest:version-check

The most recent plugin snapshot version containing the latest java-manifest.csv file can be found by checking Nexus at https://nexus.onap.org/#nexus-search;gav~org.onap.integration~version-manifest~~~ (in the Snapshots repository)

You can then use that specific version (e.g. 4.0.0-SNAPSHOT) of the Version Manifest plugin by running the following:

mvn org.onap.integration:version-manifest:4.0.0-SNAPSHOT:version-check

These assume that you have the ONAP nexus repos defined in your ~/m2/settings.xml so that Maven can download the plugin artifacts.

Interpreting the Output

Here is a sample output provided by the plugin:

[INFO] --- version-manifest:0.1.0:version-check (default-cli) @ clds ---
[INFO] Manifest version: 2017-09-06T20:21:07+0000 6fd61b5fa717862fa554fa4c4a076f56be3aaac1 ssh://ecomp-jobbuilder@gerrit.onap.org:29418/integration
[INFO] 
[WARNING] The following dependencies should be updated to match the version manifest:
[WARNING]   org.onap.oparent:oparent                                  1.0.0-SNAPSHOT -> 0.1.1
[WARNING] 
[WARNING] The following dependencies are missing in the version manifest:
[WARNING]   org.onap.oparent:checkstyle                               1.0.0-SNAPSHOT ->     ?
[WARNING]   org.onap.policy.common:ONAP-Logging                                1.1.0 ->     ?
[WARNING]   org.onap.policy.engine:ControlloopPolicy                  1.1.0-SNAPSHOT ->     ?
[WARNING]   org.onap.policy.engine:PolicyEngineAPI                             1.1.0 ->     ?
[WARNING]  

Line 1 shows the version of the version-manifest plugin that was invoked.  Here it is "0.1.0-SNAPSHOT".

Line 2 shows the git commit hash of the manifest version that was incorporated into this specific version of the plugin.

For warnings in the first section "should be updated to match the version manifest", please change your dependency to the version declared in the manifest.

For warnings in the second section "are missing in the version manifest", please contact the upstream team to get them to release their artifacts per Independent Versioning and Release Process and update the version manifest with the updated version numbers.


  • No labels

3 Comments

  1. Is this plugin maintained? The latest version is out of date, version 3.0.0 was never released, and 3.0.0-SNAPSHOT does not work.

  2. Hi,

    Currently running this plugin and it is outputting

    [INFO] --- version-manifest:3.0.0:version-check (default-cli) @ validation ---
    [INFO] Manifest version: 2018-11-28T23:17:32+0000 ec746e068a0afd52240278034640c09785a63b8a git://cloud.onap.org/mirror/integration.git

    Am I correct in saying the manifest file in use is 'java-manifest.csv' in the integration project and if so why is version with time/date stamp '2018-11-28T23:17:32+0000' being used?
    Above it states "version manifest CSV itself is packaged into the the plugin artifact" so does that mean plugin is possibly out of date?



    1. Examined the source in integration repo and the answers to my own questions are yes and yes.

      To use latest java-manifest.csv file it might be best to just build an updated version-manifest jar file locally, i.e.

      ./integration/version-manifest > mvn install -Denforcer.skip=true -Dexec.skip=true

      Then run it using the snapshot installed in your local maven repo, i.e.

      ./sdc > mvn org.onap.integration:version-manifest:X.Y.Z-SNAPSHOT:version-check

      Just be aware their could be out of date warnings, e.g.

      [WARNING] The following dependencies should be updated to match the version manifest:
      [WARNING] org.onap.dmaap.messagerouter.dmaapclient:dmaapClient 1.1.3 -> 1.0.0

      But latest version of org.onap.dmaap.messagerouter.dmaapclient:dmaapClient in nexus.onap.org is 1.1.9 at time of writing this comment.