Sounds fine to me. I'll update the ticket with a link to this thread and a
summary of the "dependsOn" feature discussed here.


Cheers,
Paul


On Sun, Jun 8, 2014 at 9:02 AM, Jason van Zyl <ja...@takari.io> wrote:

> Agreed. Explicit order values are not good.
>
> It should be like the reactor in which the order is the topologically
> sorted list of projects. The executions in a phase should be the same,
> specify your dependencies and let the core topologically sort the
> executions and run them in the right order.  I think an attribute like
> dependsOn="${anotherExecutionId}" is in an execution element is fine.
>
> On Jun 8, 2014, at 9:42 AM, Igor Fedorenko <i...@ifedorenko.com> wrote:
>
> > More I think about it, less I like the idea of explicit order values. I
> > think this will be rather inconvenient to setup and error prone to
> > maintain.
> >
> > Initial setup will require some tooling to see executions in a
> > particular case with their default ordering values. Not the end of the
> > world, but somebody will have to implement the tooling and the users
> > will know how to find it.
> >
> > More problematic will be ongoing changes to the project itself
> > and its parents. When I need to add/remove executions in a parent, I
> > will have to review all projects that inherit from it to ensure order is
> > still correct. I work on a monster codebase with 600+ modules now, I
> > just don't see how this is workable.
> >
> > If executions are enabled through a profile, especially rarely activated
> > profile, configuring expected order becomes really cumbersome.
> > Think of -Prelease profile, that adds gpg mojo to package phase...
> > good luck troubleshooting why signed jars do not match their gpg
> > signatures during the release.
> >
> > I think we need to find a way to make before/after hints work. I don't
> > have a proposal yet, but I wonder, is this not the same problem as
> > ordering modules in the reactor? When there are no dependencies, modules
> > are built in their specified order, but the order changes when there are
> > dependencies.
> >
> > --
> > Regards,
> > Igor
> >
> > On 2014-06-05, 11:11, Paul Benedict wrote:
> >> Igor, I can come up with three possible solutions which one I prefer.
> >>
> >> 1) Unspecified order plugins are all given highest precedence; specified
> >> plugins come after.
> >> 2) Unspecified order plugins are all given lowest precedence; specified
> >> plugins come before.
> >> 3) Unspecified order plugins are given a default precedence in steps of
> 100
> >> (ordered by declaration); specified plugins can be before, middle,
> after by
> >> choosing the appropriate number.
> >>
> >> I like #3. In your example, I would assign jarsigner precedence value
> 150
> >> to fit between pack200:normalize and pack200:goal.
> >>
> >>
> >>
> >>
> >> Cheers,
> >> Paul
> >>
> >>
> >> On Thu, Jun 5, 2014 at 9:38 AM, Paul Benedict <pbened...@apache.org>
> wrote:
> >>
> >>> Good question. I haven't thought of that. In all the examples presented
> >>> thus far, the developer had control over all the <id> executions and
> >>> explicitly ordered them. This won't be the case all the time. What
> happens
> >>> when you mix ordering and unspecified?
> >>>
> >>>
> >>> Cheers,
> >>> Paul
> >>>
> >>>
> >>> On Thu, Jun 5, 2014 at 9:12 AM, Igor Fedorenko <i...@ifedorenko.com>
> >>> wrote:
> >>>
> >>>> Mojo executions bound to in packaging type lifecycle mapping have
> fixed
> >>>> "default-<goal>" ids. To continue my Tycho pack200 example, I will
> need
> >>>> to insert jarsigner between pack200:normalize and pack200:pack goals.
> >>>> If pack200:normalize and pack200:pack goals are bound to the default
> >>>> lifecycle, can you explain how to achieve desired execution order with
> >>>> <id>s?
> >>>>
> >>>> --
> >>>> Regards,
> >>>> Igor
> >>>>
> >>>>
> >>>> On 2014-06-05, 9:52, Paul Benedict wrote:
> >>>>
> >>>>> After giving it some more thought, I think interpolating the <id> is
> less
> >>>>> disruptive than a new attribute. I am sure once POM 5 exists, there
> will
> >>>>> be
> >>>>> an official way.
> >>>>>
> >>>>> Lastly, I am not not a fan of the "step-#" naming because it's a
> prefix
> >>>>> but
> >>>>> it is more descriptive; I would prefer to just simply allow the
> developer
> >>>>> to suffix with a -# (dash number). Thoughts on which nomenclature is
> >>>>> better?
> >>>>>
> >>>>>
> >>>>> Cheers,
> >>>>> Paul
> >>>>>
> >>>>>
> >>>>> On Wed, Jun 4, 2014 at 10:59 AM, Igor Fedorenko <i...@ifedorenko.com
> >
> >>>>> wrote:
> >>>>>
> >>>>>  I am not sure xml attributes are necessary a hack. Whether to put
> >>>>>> before/after hints into xml element or attribute is really a matter
> of
> >>>>>> taste, imho.
> >>>>>>
> >>>>>> I don't want to restart the whole "pom v 5" discussion again, but I
> was
> >>>>>> under impression we agreed to preserve format published to maven
> >>>>>> repository but allow changes in the format used during the build.
> Which
> >>>>>> I believe implies that entire <build> section (or whaterver pom 5
> will
> >>>>>> end up using to represent build configuration) will be stripped out
> of
> >>>>>> pom.xml files before they are deployed.
> >>>>>>
> >>>>>> So I think it is okay to use xml attributes to represent
> before/after
> >>>>>> hints today and we can decide to change this to something else when
> we
> >>>>>> get to pom 5.
> >>>>>>
> >>>>>> --
> >>>>>> Regards,
> >>>>>> Igor
> >>>>>>
> >>>>>>
> >>>>>> On 2014-06-04, 11:39, Paul Benedict wrote:
> >>>>>>
> >>>>>>  Thanks for your reply Jason.
> >>>>>>>
> >>>>>>> So it seems there are some possibilities for this ticket: either
> >>>>>>> interpreting the <id> to infer order (the patch) or stuffing this
> into
> >>>>>>> an
> >>>>>>> attribute (per Igor). Regarding the latter, the attribute route is
> >>>>>>> clearly
> >>>>>>> to avoid adding a new POM element, but aren't both a bit
> "hackish"? The
> >>>>>>> desired solution, I think, would be to make this a POM element, but
> >>>>>>> past
> >>>>>>> discussions inform me that's clearly off the table.
> >>>>>>>
> >>>>>>>
> >>>>>>> Cheers,
> >>>>>>> Paul
> >>>>>>>
> >>>>>>>
> >>>>>>> On Wed, Jun 4, 2014 at 10:20 AM, Jason van Zyl <ja...@takari.io>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>   I'm opposed to random creation of a DAG for executions across
> all the
> >>>>>>>
> >>>>>>>> phases. This just creates a giant mess. That said _within_ a given
> >>>>>>>> phase
> >>>>>>>> if
> >>>>>>>> there was a topological sorting of executions where one execution
> can
> >>>>>>>> state
> >>>>>>>> that it depends on another I think is reasonable. Definitive
> ordering
> >>>>>>>> within a phase, I think, is useful.
> >>>>>>>>
> >>>>>>>> On Jun 4, 2014, at 10:22 AM, Paul Benedict <pbened...@apache.org>
> >>>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>   I find that solution interesting because, in a way, it kind of
> >>>>>>>> returns
> >>>>>>>>
> >>>>>>>>> us
> >>>>>>>>> to the days of Maven 1.x where you can run things pre/post goal.
> I am
> >>>>>>>>> pretty sure Jason wanted to get rid of that perspective with
> this 2.x
> >>>>>>>>> design, but maybe things are coming full circle?
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Cheers,
> >>>>>>>>> Paul
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Wed, Jun 4, 2014 at 9:19 AM, Igor Fedorenko <
> i...@ifedorenko.com>
> >>>>>>>>>
> >>>>>>>>>  wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>   Yes, I was also thinking before/after as a way to solve this.
> We
> >>>>>>>>> can
> >>>>>>>>>
> >>>>>>>>>> probably use xml attributes without breaking compat with
> artifact
> >>>>>>>>>> consumers, so I think this can be done in Maven 3.x.
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Regards,
> >>>>>>>>>> Igor
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On 2014-06-04, 10:09, Robert Scholte wrote:
> >>>>>>>>>>
> >>>>>>>>>>   Hi Paul,
> >>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> that's my understanding as well.
> >>>>>>>>>>> But even in a single pom you can have issues.
> >>>>>>>>>>> Consider 2 plugins, with both 2 goals and you want to run it
> like
> >>>>>>>>>>>
> >>>>>>>>>>> (phase=pre-integration-test)
> >>>>>>>>>>> pluginA:preSomething
> >>>>>>>>>>> pluginB:preStuff
> >>>>>>>>>>>
> >>>>>>>>>>> (phase=post-integration-test)
> >>>>>>>>>>> pluginB:postStuff
> >>>>>>>>>>> pluginA:postSomething
> >>>>>>>>>>>
> >>>>>>>>>>> Since plugins should be unique within the build-section, it's
> not
> >>>>>>>>>>> possible to have a clean solution for this.
> >>>>>>>>>>>
> >>>>>>>>>>> Instead of the step-X solution of MNG-4727 I think you should
> be
> >>>>>>>>>>> able
> >>>>>>>>>>>
> >>>>>>>>>>>  to
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>  run it before or after a specified goal.
> >>>>>>>>>
> >>>>>>>>>> We could think of using a convention for the execution-id, or
> >>>>>>>>>>> define a
> >>>>>>>>>>> new element in the pom-5.0.0
> >>>>>>>>>>>
> >>>>>>>>>>> thanks,
> >>>>>>>>>>>
> >>>>>>>>>>> Robert
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> Op Wed, 04 Jun 2014 15:57:08 +0200 schreef Paul Benedict
> >>>>>>>>>>> <pbened...@apache.org>:
> >>>>>>>>>>>
> >>>>>>>>>>> Anyone have thoughts on this ticket? There is a submitted
> patch, as
> >>>>>>>>>>> the
> >>>>>>>>>>>
> >>>>>>>>>>>  last comment says -- it's part of another ticket that was
> marked
> >>>>>>>>>>>> as
> >>>>>>>>>>>> duplicate.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Though, I am a bit confused. I thought plugin execution was
> >>>>>>>>>>>> already
> >>>>>>>>>>>> defined
> >>>>>>>>>>>> by the sequential order listed in the POM. Am I incorrect? If
> so,
> >>>>>>>>>>>> I
> >>>>>>>>>>>>
> >>>>>>>>>>>>  still
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>  don't know if that's "good enough" when using POM inheritance.
> >>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>>> Cheers,
> >>>>>>>>>>>> Paul
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>  ------------------------------------------------------------
> >>>>>>>>>>> ---------
> >>>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >>>>>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>   ------------------------------------------------------------
> >>>>>>>>>>>
> >>>>>>>>>> ---------
> >>>>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >>>>>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>  Thanks,
> >>>>>>>>
> >>>>>>>> Jason
> >>>>>>>>
> >>>>>>>> ----------------------------------------------------------
> >>>>>>>> Jason van Zyl
> >>>>>>>> Founder,  Apache Maven
> >>>>>>>> http://twitter.com/jvanzyl
> >>>>>>>> http://twitter.com/takari_io
> >>>>>>>> ---------------------------------------------------------
> >>>>>>>>
> >>>>>>>> A language that doesn’t affect the way you think about
> programming is
> >>>>>>>> not
> >>>>>>>> worth knowing.
> >>>>>>>>
> >>>>>>>>    -- Alan Perlis
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
>  ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >>>> For additional commands, e-mail: dev-h...@maven.apache.org
> >>>>
> >>>>
> >>>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > For additional commands, e-mail: dev-h...@maven.apache.org
> >
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> http://twitter.com/jvanzyl
> http://twitter.com/takari_io
> ---------------------------------------------------------
>
> First, the taking in of scattered particulars under one Idea,
> so that everyone understands what is being talked about ... Second,
> the separation of the Idea into parts, by dividing it at the joints,
> as nature directs, not breaking any limb in half as a bad carver might.
>
>   -- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander)
>
>
>
>
>
>
>
>
>
>

Reply via email to