Correcting my prior comment: the nightmare I was referring to was the
ugliness we did and un-did related to the never-released receivers and
'component' companions.  Definitely feels like deja vu.

https://github.com/apache/log4j-component/blob/trunk/pom.xml

apache-log4j-companions-parent etc etc


On 1/22/18, Matt Sicker <boa...@gmail.com> wrote:
> Using Maven profiles could help, though when tagging a release, if we
> didn't release every module within, then it'd get out of sync anyways. Then
> it would still require building every single component in each release,
> even when said components haven't changed at all.
>
> On 22 January 2018 at 15:50, Gary Gregory <garydgreg...@gmail.com> wrote:
>
>> Coming back around to the idea of One Repo to Rule Them All*TM* ... what
>> if
>> we used Maven profiles to separate out the "main" build from "other"
>> builds?
>>
>> All that is needed to move modules from one build to another is just to
>> edit the profile!
>>
>> Gary
>>
>> On Mon, Jan 22, 2018 at 12:48 PM, Ralph Goers
>> <ralph.go...@dslextreme.com>
>> wrote:
>>
>> > I don’t see why this work would require 3.0 as we aren’t planning on
>> > breaking any contracts to do this.
>> >
>> > As I’ve said, I am not tied to each plugin having its own repo. I am OK
>> > with these options; a) each plugin has its own repo and site and is
>> > released independently, b) we use the plugins repo and move all the
>> > more
>> > lightly used components there. It would have its own site, or c) we
>> > group
>> > plugins by how they are related (RDBMS, NoSQL, “Transport” (Flume or
>> > similar) with each having its own site.
>> >
>> > Obviously I do not consider continuing to add new plugins to the main
>> > build as one of the options.
>> >
>> > Ralph
>> >
>> > > On Jan 22, 2018, at 12:36 PM, Matt Sicker <boa...@gmail.com> wrote:
>> > >
>> > > This whole conversation just reminds me of all the times in the past
>> > > I
>> > > suggested full modularization of the core API/SPI. I think such an
>> effort
>> > > would make sense in a 3.0 release.
>> > >
>> > > In 2.x, perhaps what we can do is define a stable plugin API based on
>> > what
>> > > we already have. Since we're still supporting Java 7, I'd suggest we
>> make
>> > > abstract classes be the stable part of the API since we don't have
>> > default
>> > > methods on interfaces here.
>> > >
>> > > And yes, the GitBox integration thing sounds neat, particularly for
>> code
>> > > review, though that's a separate topic entirely.
>> > >
>> > > On 22 January 2018 at 00:37, Gary Gregory <garydgreg...@gmail.com>
>> > wrote:
>> > >
>> > >> On Sun, Jan 21, 2018 at 4:14 PM, Ralph Goers <
>> > ralph.go...@dslextreme.com>
>> > >> wrote:
>> > >>
>> > >>> I am very much against the idea of a single repo. Yes, you can have
>> > >>> multiple projects in the repo but I am not sure how that can be
>> sanely
>> > >>> released. I much prefer the model that Maven has taken. They are
>> > >>> now
>> > >> using
>> > >>> gitbox [1] which seems to allow GitHub to be the primary repo.
>> > >>
>> > >>
>> > >> GitHub is a distracting tangent here IMO. I really like GitHub's
>> > >> code
>> > >> commenting feature, but it should not matter if we use Apache's Git
>> > hosted
>> > >> repos or GitHub's. So I'm not sure why we are mixing GitHub in the
>> > >> conversation... ;-)
>> > >>
>> > >> Gary
>> > >>
>> > >>
>> > >>> Every Maven plugin is individually released. Scroll down the link
>> below
>> > >> to
>> > >>> the Maven section and you can see all the plugin repos.
>> > >>>
>> > >>> The upside to this is that it are:
>> > >>>        1. It is far easier to perform releases of the individual
>> > >>> components.
>> > >>>        2. It is much easier to accept plugin contributions.
>> > >>> The downsides are:
>> > >>>        1. A page like https://maven.apache.org/plugins/ <
>> > >>> https://maven.apache.org/plugins/> is needed to keep track of the
>> > plugin
>> > >>> versions.
>> > >>>        2. It could make sense to have log4j-parent and log4j-bom
>> > >>> projects. The first to help keep the builds similar and the second
>> > >>> to
>> > >> help
>> > >>> customers pick up the latest versions.
>> > >>>
>> > >>> Ralph
>> > >>>
>> > >>> [1] https://gitbox.apache.org/repos/asf <https://gitbox.apache.org/
>> > >>> repos/asf>
>> > >>>
>> > >>>> On Jan 21, 2018, at 8:55 AM, Gary Gregory <garydgreg...@gmail.com>
>> > >>> wrote:
>> > >>>>
>> > >>>> Hi All,
>> > >>>>
>> > >>>> I am writing this to in an effort to understand how we can manage
>> and
>> > >>> grow
>> > >>>> Log4j. I use the term 'grow' not in the 'bigger is better' sense
>> > >>>> but
>> > >> more
>> > >>>> in the maturing sense.
>> > >>>>
>> > >>>> I am prompted to write this by Ralph's comment that log4j-core and
>> the
>> > >>> main
>> > >>>> repo is too big and that releases take too long make, partially
>> > >> prompted
>> > >>> by
>> > >>>> my addition of a new module called log4j-jdbc-dbcp2 which
>> > >>>> currently
>> > >>>> contains one small class with a dependency on Apache Commons DBCP
>> > >>>> 2.
>> > >>>>
>> > >>>> I would like to express my gratitude at Ralph's efforts to
>> revitalized
>> > >>>> Log4j and performing most release management duties. Thank you
>> Ralph!
>> > >>>>
>> > >>>> I can see two main orthogonal issues:
>> > >>>> - The size of the git repo.
>> > >>>> - The size of the log4j-core module.
>> > >>>>
>> > >>>> Ralph has proposed that new modules like log4j-jdbc-dbcp2 be moved
>> to
>> > >>>> another 'plugin' repo.
>> > >>>>
>> > >>>> I really dislike this idea:
>> > >>>> - The plugin repo has never been released. Not that one releases a
>> > repo
>> > >>> but
>> > >>>> you get the point.
>> > >>>> - How do you keep things in sync between repos and code when we
>> > >>>> have
>> > no
>> > >>>> official 'core' SPI.
>> > >>>>
>> > >>>> For my money, we should keep _everything_ in one repo. Good enough
>> for
>> > >>>> Google, so good enough for me. What we release out of that repo is
>> > >>>> a
>> > >>>> different story and what I would like to discuss next.
>> > >>>>
>> > >>>> This is not the same as Maven plugins IMO but the case could be
>> > >>>> made
>> > >> for
>> > >>> it
>> > >>>> I suppose where a lot/most plugins live in their own repos. It is
>> not
>> > >> the
>> > >>>> same as with Maven IMO because our plugins rely on log4j-core and
>> it's
>> > >>>> guts, for which we only make loose compatibility guarantees -- as
>> > >> opposed
>> > >>>> to log4j-core where we are strict(er). Maven OTOH, has a API for
>> > plugin
>> > >>>> auteurs.
>> > >>>>
>> > >>>> For example, log4j-jdbc-dbcp2 replies on the guts of log4j-core
>> > >>>> and
>> we
>> > >>> have
>> > >>>> no 'official' core SPI, so splitting it off into a separate repo
>> would
>> > >>>> greatly increase the risk of it falling out of sync. It is just so
>> > much
>> > >>>> more easier to maintain when it is all in one repo.
>> > >>>>
>> > >>>> My proposal is to:
>> > >>>>
>> > >>>> - Put everything back into one repo (Chainsaw too?)
>> > >>>> - Define a core SPI for plugin writers where we make some
>> > >>>> statement
>> > >> about
>> > >>>> BC, more than the casual 'we try not break stuff.'
>> > >>>> - Defining what Log4j project 'components' we have and release
>> > >>>> based
>> > on
>> > >>>> that. For example, today, all of the main Log4j repo is one
>> component
>> > >>> with
>> > >>>> many modules. Chainsaw would be another component of the Log4j
>> > project.
>> > >>>> Maybe we need to redefine components: API, File, JDBC and so on. A
>> > >>>> component can have one of more module
>> > >>>> - Got for there.
>> > >>>>
>> > >>>> Thoughts? Help me flush this out?
>> > >>>>
>> > >>>> Thank you for reading!
>> > >>>> Gary
>> > >>>
>> > >>>
>> > >>
>> > >
>> > >
>> > >
>> > > --
>> > > Matt Sicker <boa...@gmail.com>
>> >
>> >
>> >
>>
>
>
>
> --
> Matt Sicker <boa...@gmail.com>
>

Reply via email to