Giter Club home page Giter Club logo

clirr-gradle-plugin's Introduction

Andres' github stats

Hi! I'm an avid Open Source software developer and co-founder of the Hackergarten initiative. I love building software that can help solve problems around the world. I've been actively involved with Open Source since my first contribution to Apache Commons-Lang back in 2006. Next, I created my first pair of Open Source projects (Json-lib & EZMorph), followed by joining the Groovy (nowadays Apache Groovy) development team a year later. I'm quite proficient writing Java code, Gradle and Maven plugins, as well as JavaFX libraries. Golang is great as well!

Organizations I contribute to include:

My goal is to keep contributing to Open Source and help others do the same. With your help I'll be able to continue promoting Open Source and make the world a better place, one commit at a time. Contact me on Twitter, Mastodon

https://patreon.com/aalmiray

clirr-gradle-plugin's People

Contributors

aalmiray avatar flowdalic avatar rozza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

flowdalic rozza

clirr-gradle-plugin's Issues

Add heuristic to determine the baseline version automatically

It would be great if the plugin would automatically determine the baseline version automatically, so that I don't have to change it manually between releases.

My project only guarantees API compatibility between patchlevel releases (1.2.1, 1.2.3. 1.2.42, ...), so a simply heuristic could look like

  1. Remove the snapshot qualifier, i.e. -SNAPSHOT-X
  2. Remove all release qualifiers, i.e. -alphaX, -betaX, -rcX, where X is an arbitrary number of digits
  3. If the patchlevel number is
    • 0, then don't run clirr because there is no previous release to test against
    • otherwise decrement the patchlevel by one and run clirr against that release

Consider switching from clirr to something else, like japicmp

I โ™ฅ clirr-gradle-plugin, especially since it implemented the nice heuristic I asked for, but clirr doesn't seem to be actively developed any more.

How about switching to an alternative? I did some research, and so far, candidates, with recent commit activity, are

On a first look, japicmp looks promising.

I know that https://github.com/melix/japicmp-gradle-plugin exists, but as far as I can tell, it does not follow the nice "convention over configuration" philosophy that clirr-gradle-plugin lives. That is with japicmp-gradle-plugin, I'd have to configure a check for every jar, whereas clirr-gradle-plugin, it is just a matter of applying the plugin.

Adding new subproject causes build failure when clirr-plugin is enabled

If I add a new subproject to my gradle build which applies the clirr-plugin to all subprojects, then gradle will fail with "Could not resolve all dependencies", because it tries to resolve the baseline decency of the newly added subproject.

Of course I could configure gradle so that it won't apply the clirr plugin to the new subproject, but it feels like the better approach would be adding a new enabled property to the clirr plugin configuration. This would allow me to

clirr {
    enabled = false
}

in the subproject/build.gradle

Fails with "UnknownTaskException: Task with name 'jar' not found in root project"

I tried to add support for clirr-gradle-plugin to Smack's build system. It works for subprojects, but as soon as I move the

apply plugin: 'org.kordamp.gradle.clirr'

statement out of the subprojects block, Smack throws the above error message. Of course I want to apply the clirr plugin also on the root project, so that I can define a task like

task clirrRootReport(type: org.kordamp.gradle.clirr.ClirrReportTask) {
     dependsOn = subprojects.tasks.clirr
     reports = files(subprojects.tasks.clirr.xmlReport)
}

The current state of my clirr experiments are Flowdalic/Smack@a8e43f8.
The full error log can be found at http://dpaste.com/3YDZ2E6

I've also try to comment out the jar block in Smack's build.gradle, so that the root project has an jar artifact. Still the result is the same. Help greatly appreciated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.