Policy R6 Frankfurt Independent Versioning And Release Process Plan

Consumed API from other projects

Project

API Dependency

Notes

Project

API Dependency

Notes

Portal

2.6.0



AAF

v2.1.2



Dmaap

v1.1.8



SDC

1.6.0



AAI

v16

aai-schema 1.0.3

No direct link to any libraries

SO



REST - No direct link to any libraries

VFC



REST - No direct link to any libraries

SDNR



Dmaap - No direct link to any libraries

SDNC



REST - No direct link to any libraries


Published API - These projects use the policy libraries to build their code

Project

API

Notes

Project

API

Notes

CLAMP

Policy Lifecycle API

 implemented in own java code



OOF

Legacy Policy API

implemented in own python code

SDNC

Legacy Policy API

implemented in own code

DCAE

Policy Lifecycle API

Implemented own python code



1. Follow the process as outlined here: Independent Versioning and Release Process. Policy repositories inherit from oparent so release jobs will fail if any SNAPSHOT artifact is referenced in the pom.xml's.

  • Verify there are no SNAPSHOTs and we are up-to-date with other team's released artifacts. The CI/CD daily release job does this by automatically failing if a SNAPSHOT is defined in the pom.xml's.

  • Use the Self Releases Workflow (Nexus2) to release artifacts.   Look at comments by @Jorge Hernandez  for steps.

  • Update the OOM team K8S Helm Charts.

Note: If using maven version or release plugin, also manually check the versions are set correctly in the POMs, these plugins can miss POMs especially if they do not have Java source code in them.



2. For any new changes to be done post-Release. Then the we must update to the next SNAPSHOT version:

Release Order

Repo (released version)

Notes

Example Commit(s) for upgrading versions

Release Order

Repo (released version)

Notes

Example Commit(s) for upgrading versions

1

policy/parent

3.1.3

all pom.xml's

version.properties

https://gerrit.onap.org/r/c/policy/parent/+/104021

2a

policy/docker

2.0.1

all pom.xml's

version.properties

https://gerrit.onap.org/r/c/policy/docker/+/102678

2b

policy/common

1.6.5

all pom.xml's

version.properties

In main pom.xml change the following properties

  • Ensure <parent> tag points to correct policy/parent version

https://gerrit.onap.org/r/c/policy/common/+/104047

3

policy/models

2.2.6

all pom.xml's

version.properties

In main pom.xml change the following properties

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version



  • Ensure that the policy K8S Helm charts oom/kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf

BRMS_MODELS_DEPENDENCY_VERSION

  • Ensure that the policy/engine 

    packages/install/src/files/brmsgw.conf - is pointing to the right version



https://gerrit.onap.org/r/c/policy/models/+/104232

4a

policy/api

2.2.4

all pom.xml's

version.properties

In main pom.xml change the following properties

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version

https://gerrit.onap.org/r/c/policy/api/+/104257

4b

policy/pap

2.2.3

all pom.xml's

version.properties

In main pom.xml change the following properties

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version

https://gerrit.onap.org/r/c/policy/pap/+/104262

4c

policy/drools-pdp

1.6.3

all pom.xml's

version.properties

In main pom.xml consider changing the policy.common.version property:

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version

Update policy/drools-applications files:

  • pom.xml: version.policy.drools-pdp

https://gerrit.onap.org/r/c/policy/drools-pdp/+/104291

4d

policy/apex-pdp

2.3.2

all pom.xml's

version.properties

In main pom.xml consider changing the policy.common.version property:

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version



4e

policy/xacml-pdp

2.2.2

all pom.xml's

version.properties

In main pom.xml consider changing the policy.common.version property:

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version

https://gerrit.onap.org/r/c/policy/xacml-pdp/+/104294

4f

policy/distribution

2.3.2

all pom.xml's

version.properties

In main pom.xml change the following properties

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version

https://gerrit.onap.org/r/c/policy/distribution/+/104296

5 - Dependent only on policy/drools-pdp

policy/drools-applications

1.6.4

all pom.xml's

version.properties

In main pom.xml change the following properties

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version

  • version.policy.drools-pdp

OOM:

  • Ensure that the policy K8S Helm charts oom/kubernetes/policy/charts/brmsgw/resources/config/pe/brmsgw.conf

BRMS_DEPENDENCY_VERSION

  • Ensure that the policy/engine

    • packages/install/src/files/brmsgw.conf - has the right version

https://gerrit.onap.org/r/c/policy/drools-applications/+/104408

6 - Dependent on policy/drools-applications

policy/engine

1.6.4

all pom.xml's

version.properties

BRMSGateway/config.properties

BRMSGateway/dependency.json

BRMSGateway/src/main/java/org/onap/policy/brms/api/BrmsPush.java

BRMSGateway/src/test/resources/config.properties

packages/base/src/files/install/servers/brmsgw/config.properties

packages/install/src/files/brmsgw.conf

In main pom.xml change the following properties

  • Ensure <parent> tag points to correct policy/parent version

  • policy.common.version

  • policy.models.version





When branching, its easiest to update the .gitreview file ON the new branch in order to ensure that new gerritt submissions are tracked on that branch.

If this is not done, then one should specify the branch when submitting the git review. 'git review frankfurt'

[gerrit] host=gerrit.onap.org port=29418 project=policy/engine.git defaultbranch=frankfurt



When tagging for a release the following commands should be used:

git tag -sm "6.0.0-ONAP Release" 6.0.0-ONAP git push <remote-name> 6.0.0-ONAP



Steps for Releasing and branching

Steps for Releasing and branching

1. Go to latest merged review of repo and comment “stage-release

2. It will trigger 2 Jenkins jobs - stage-master & docker-stage-master

3. Once the jobs are successful, create a yaml file for releasing maven artifacts first and raise a review

4. Once that is merged and build is successful, create another container.yaml file for releasing docker image and raise a review

NOTE: Drools-applications will require a 2nd "stage-release" to be done after step 3 due to the way it is built. The docker image requires the java artifacts to be released first, which are packaged into the image.

5. Once that is merged and build is successful, go to nexus3.onap.org and verify that the image was released 

6. Bump the snapshot version to next patch version and raise a review - I use this command “mvn versions:set -DnewVersion=2.5.1-SNAPSHOT

7. Once that is merged and build is successful, go to gerrit and create a “frankfurt” branch. 

8. Once the branch is created, bump the master branch to next minor version using the same maven command and raise a review 9. Finally go to frankfurt branch and change the .gitreview file to point to frankfurt as default branch and raise the review.