If we were pursuing a donation of the plugin to the Avro project, I could
definitely make some time available to guide (or even directly assist) with
the transition.

The main area that requires consideration is the policy for version
support/compatibility.  What versions of Gradle/Avro/Java do you want to
support for new plugin releases?  Do you only publish a single variant, or
do you publish multiple variants to expand your version coverage?  What do
you do when one of the dependencies makes a breaking change?

Historically, my answer has been that I publish a single variant that
supports the latest released version of each dependency, with best-effort
compatibility with previous versions (and CI coverage to allow for accurate
documentation of what the supported ranges are).  When a dependency
releases a breaking change, I cut support for previous versions (and
document the last plugin version that supported the previous version).

I have plans for an approach that would allow for a single Gradle plugin
release to support "all" Avro versions, and a prototype branch
demonstrating the technique, but have been unable to put adequate time
together to port the whole plugin over to that approach.  At that point,
the question would be simplified to what Avro versions and what Gradle
versions are supported, separately, rather than the combination thereof.

On Thu, Sep 8, 2022 at 12:32 PM Ryan Skraba <[email protected]> wrote:

> Hello David!  This is a very generous offer -- I think it's really
> quite nice to consider donating it to the Apache Avro community,
> especially since it looks like it's a well-appreciated feature and
> you've put quite a bit of effort into it!
>
> I personally think this would be a welcome addition to the Avro
> project.  We've accepted code donations in the past, we usually
> discuss it on the mailing list among devs and then call a vote (See
> the Rust SDK[1]).
>
> I downloaded, compiled and tested the project in a matter of minutes,
> which is really promising!  We currently use Maven (of course) for all
> of our Java code, but I don't see it being a blocker to introduce
> Gradle to build a Gradle plugin.
>
> You mentioned not having as much time to dedicate to this, but you
> probably have some useful insights!  Are you looking for someone to
> just take the existing repo as-is, and repackage/adapt it into the
> existing Avro project, or would you have some time (even limited) to
> help guide us into putting it in place?  Is there anything we should
> especially consider?
>
> All my best, Ryan
>
> [1]: https://lists.apache.org/thread/m3r4svytnn6do9tw0476nwttgtcp60qj
> "Rust donation vote."
>
>
>
>
>
>
> On Wed, Sep 7, 2022 at 3:16 PM David M. Carr <[email protected]> wrote:
> >
> > In case someone on the list is interested:
> > https://github.com/davidmc24/gradle-avro-plugin/discussions/208
> >
> > Alternatively, if the Apache Avro project itself is interested in having
> an
> > official Gradle plugin, the source is freely available and already Apache
> > licensed.
> >
> > --
> > David M. Carr
> > [email protected]
>


-- 
David M. Carr
[email protected]

Reply via email to