Open mockitoguy opened 7 years ago
@mstachniuk, how does this one sound? Check out the "future" section, this feature can turn out into something huge!!!
It sounds great! It's a huge. Let's maybe starts from something simpler. New successful release of mockito-release-tools automatically bump version of tool in mockito-release-tools-example, make some small change and release it! @szczepiq What do you think?
👍
I've implemented automated E2E smoke testing in my gradle-nexus-staging-plugin and I feel much more relaxed releasing new versions. Having those testing automated is crucial to provide reliable Continuous Delivery.
It would be great if clients of release automation could automatically validate if their changes work with selected open source projects on GitHub.
@szczepiq Again, we share the vision of the future of CD :)
@szpak, we share the vision, now it's time to start working together :) Join us and we'll be unstoppable! 4 of us cranking great release automation toolkit!!!
https://github.com/Codearte/gradle-nexus-staging-plugin is a great plugin. We could merge our efforts :)
Let's maybe starts from something simpler. New successful release of mockito-release-tools automatically bump version of tool in mockito-release-tools-example, make some small change and release it! @szczepiq What do you think?
Sounds great! We'll have more example projects, for different use cases (for example: minimal configuration, based on defaults VS full configuration; with notable releases VS without notable releases; with bintray VS with just maven central). So it would be good if the impl was generic enough to handle more 'test' projects in the future :D
@mstachniuk, assigned to you, feel free to unassign if you choose to work on something else.
I updated the description with a suggested solution.
Current status:
Check my changes on ms
branch feel free to continue if you wish.
For now E2ETestingPlugin
makes a few things:
mockito-release-tools-example-pristine
*-pristine
dir to *-work
dir./gradlew publishToMavenLocal testRelease ...
in *-work
dirFor testing purposes you need to apply E2E plugin in *.gradle
file and try run runTestReleaseMockito-release-tools-example
task
Producer-client lifecycle
Above are the problems of the challenges of the producer-client lifecycle. Let's figure out a set of plugins an features that will streamline evolution and adoption of new versions.
Suggested implementation
Let's try to identify a scalable solution that can evolve into a general-purspose feature that allows convenient evolution of versions of OSS libraries. Below is the result of our internal discussions with @mstachniuk and @wwilk:
Suggested solution would scale because
Starting point
To get started, let's get a single client local e2e test (example project) hooked up in the release-tools project. For version bumping, we can use Mockito's pattern of keeping the version of tools in gradle.properties file.
Future
In future this could potentially turn into more general capability we would add to release tools. It would be great if clients of release automation could automatically validate if their changes work with selected open source projects on GitHub. For example, I would love if every change of Mockito was tested with some other GitHub projects like guava. This potentially can be extremely useful feature.