New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable single pull request merge for updatebot configurations in activiti-dependencies repository #2167

Closed
igdianov opened this Issue Nov 15, 2018 · 6 comments

Comments

2 participants
@igdianov
Member

igdianov commented Nov 15, 2018

So, that we can validate and enforce consistent versions across upstream modules in CI/CD pipelines for automated PR merge with Mergify.io

We will need to ensure same versions for activiti-build and activiti-core-common and activiti-api using Maven enforcer

We need to check that Jenkins-X uses Maven builder image with updatebot v1.1.27+ and update .updatebot.yml in each upstream repository to push versions vai single pull request in activiti-dependencies:

Tasks:

  • enable and test Maven enforcer plugin configurations in activiti-dependencies pom.xml
  • check updatebot version is v1.1.27+ in Jenkins-X cluster and upgrade Jx platform to latest version
  • add useSinglePullRequest: true for activiti-dependecies in activiti-api, activiti-core-common, activiti-build in .updatebot.yml
  • Push both activiti-build and activiti-dependencies versions into activiti-examples
  • remove activiti-build parent from activiti-dependencies
  • Realign activiti-dependencies updatebot with cloud dependencies
  • Deploy modules at the end of the multi-module build in activiti-dependencies.
github:
  organisations:
  - name: activiti
    repositories:
    - name: activiti-dependencies
      branch: develop
      useSinglePullRequest: true

image

@igdianov

This comment has been minimized.

Member

igdianov commented Nov 18, 2018

@salaboy I have created PRs for dependency convergence enforcement with single pull requests from updatebot.

The only problem is that there is no rule in Maven Enforcer to enforce same parent versions among dependencies. It is possible to create custom Maven plugins for Enforcer to validate that all required dependencies have the same root parent version: https://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html

For a simpler workaround, we can try to remove activiti-build parent from activiti-dependencies and wait for module versions to build and propagate commits into single pull request.

I also think that it makes sense to push aggregated activiti-dependencies modules versions into activiti-cloud modules only after its release to avoid triggering unnecessary builds in cloud modules, i.e. moving acitiviti-api -> activiti-cloud-api, activiti-build -> activiti-cloud-build, activiti-core-common -> activiti-cloud-service-common into activiti-dependencies .updatebot.yml

@salaboy

This comment has been minimized.

Member

salaboy commented Nov 18, 2018

Yep it make sense.. so activiti-dependencies will have no parent. And yes, we should only propagate after release.

I am asumming that with the enforcer, activiti-dependencies will be only valid as soon as all the deps align, am i right?

@igdianov

This comment has been minimized.

Member

igdianov commented Nov 18, 2018

@salaboy That's right. You can simply checkout activiti-dependencies PR, try to change current versions in properties and run mvn install. The build will fail if versions don't align. I will also need help from you to remove activiti-build parent from activiti-dependencies.

I will realign activiti-dependencies updatebot with cloud dependencies then.

@igdianov

This comment has been minimized.

Member

igdianov commented Nov 18, 2018

@salaboy I also think that we need to move updatebot push acitiviti-build -> activiti-cloud-build from activiti-build into activiti-dependencies: https://github.com/Activiti/activiti-build/blob/23a6f3d06d994db7a1ba9ab980b27fb575157c03/.updatebot.yml#L11, to prevent triggering cascaded activiti-cloud builds without proper release of activiti-dependencies.

As part of removing activiti-build parent for activiti-dependencies, I propose to add separate activiti-dependencies-build module with activiti-build:activiti-parent as a managed dependency part of activiti-dependencies aggregator pom. Then, we enable updatebot configuration to push activiti-dependencies-build -> activiti-cloud-build automatically only if there is a version change in activiti-dependencies release.

@salaboy

This comment has been minimized.

Member

salaboy commented Nov 19, 2018

@igdianov ok.. so PR is up.. the project builds correctly without the parent, because we were not using that relationship in any way.. Activiti/activiti-dependencies#70
Let's do a quick call to start testing & merging all these PRs. Ping me in Gitter when you have time.

igdianov added a commit that referenced this issue Nov 19, 2018

@salaboy salaboy added the in progress label Nov 19, 2018

Activiti 7.x automation moved this from Open to Closed Nov 20, 2018

@salaboy salaboy removed the in progress label Nov 20, 2018

salaboy added a commit that referenced this issue Nov 20, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment