I agree with Ralph here. I'm sure we'll figure out rather quickly which
modules are easy to put into rarely updated repositories.

On 24 April 2017 at 11:39, Ralph Goers <ralph.go...@dslextreme.com> wrote:

> I would prefer a hybrid approach.  First things should be moved to
> separate modules. Then, if they don’t seem to be modified frequently they
> can be moved to a separate repo. For example, I think it would be OK for
> the Flume Appender to be in a separate repo. It hasn’t changed in quite a
> while and I can’t remember the last time it was modified due to changes in
> Log4j it has and while continue to change with changes made in Flume
> releases.  I imagine we have quite a few components that are similar.
>
> Ralph
>
> > On Apr 24, 2017, at 8:39 AM, Gary Gregory <garydgreg...@gmail.com>
> wrote:
> >
> > On Apr 24, 2017 2:38 AM, "Mikael Ståldal" <mikael.stal...@magine.com>
> wrote:
> >
> > I fully agree with Matt's both proposals.
> >
> > I'm skeptic to creating more repositories (than we already have) though.
> I
> > think that we should start by splitting out modules from log4j-core and
> > keep those modules in the main repository with synchronized versioning
> and
> > releases, at least for the 2.9 release. We can always move those modules
> to
> > other repositories later if we want to.
> >
> >
> > I do not like more repos either. Since we have already gone down the more
> > modules road, I say we keep going.
> >
> > Gary
> >
> >
> > It is a lot of administrative work to create a new repository (as we have
> > seen for log4j-scala), I don't want us to do all that work over and over
> > again unless really necessary.
> >
> > We have a JIRA ticket for this:
> > https://issues.apache.org/jira/browse/LOG4J2-1650
> >
> > I have already started by breaking out log4j-server:
> > https://issues.apache.org/jira/browse/LOG4J2-1851
> >
> > I think the next step is to break out plugins (layouts and appenders)
> with
> > optional 3rd party dependencies into their own modules.
> >
> >
> > On Sun, Apr 23, 2017 at 7:45 PM, Matt Sicker <boa...@gmail.com> wrote:
> >
> >> I think I brought this topic up like 3 years ago when I was working on
> >> initial OSGi support, but now that we have 3 more years worth of code
> >> additions and optional features, I think this might be a more
> appropriate
> >> time to discuss it again in light of experience.
> >>
> >> Building log4j-core itself already takes a long time, and many plugins
> >> aren't updated very often at all. In the past, requiring users to simply
> >> add log4j-core plus any transitive dependencies to use optional features
> >> seemed to work well enough, but I still think that's a confusing
> >> distribution mechanism as demonstrated by the numerous bug reports and
> >> Stack Overflow posts regarding missing transitive dependencies for
> various
> >> features. I spent some time experimenting with Log4j Boot a little while
> >> ago to help alleviate this problem, but this may be unnecessary if we
> can
> >> agree to modularize log4j-core itself.
> >>
> >> I have two different proposals, both of which can be used at the same
> > time.
> >>
> >> 1. Split out everything from log4j-core that requires 3rd party
> >> dependencies (except for AsyncLogger, though perhaps we could consider
> >> shading and renaming those classes like some other low level libraries
> do
> >> with JCTools). Ideally, I'd like to see each module have required
> >> dependencies instead of optional ones, so that if, for instance, I
> include
> >> a "log4j-config-yaml" dependency, I know that Log4j will support YAML
> >> configuration without having to specify the individual Jackson
> >> dependencies.
> >>
> >> 2. Split out from log4j-core a sort of log4j-spi module which defines
> >> interfaces, abstract classes, and annotations for plugins that would be
> >> promoted to the same level of backwards compatibility guarantees as
> >> log4j-api. This would aid in cementing what we really wish to maintain
> >> compatibility with in the backend while allowing other modules to have
> > less
> >> strict guarantees.
> >>
> >> With proposal #1, I'd think that we could more easily start moving
> modules
> >> into separate repositories and release trains. Without #2, though, this
> >> makes version support more annoying to handle, but that's what we'll
> face
> >> regardless as we separate more repositories. If we go this route, then
> >> there will be no need for a Log4j Boot subproject.
> >>
> >> What do you all think?
> >>
> >> --
> >> Matt Sicker <boa...@gmail.com>
> >>
> >
> >
> >
> > --
> > [image: MagineTV]
> >
> > *Mikael Ståldal*
> > Senior software developer
> >
> > *Magine TV*
> > mikael.stal...@magine.com
> > Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
> >
> > Privileged and/or Confidential Information may be contained in this
> > message. If you are not the addressee indicated in this message
> > (or responsible for delivery of the message to such a person), you may
> not
> > copy or deliver this message to anyone. In such case,
> > you should destroy this message and kindly notify the sender by reply
> > email.
>
>
>


-- 
Matt Sicker <boa...@gmail.com>

Reply via email to