Re: last review of Reproducible Builds proposal

2019-10-05 Thread Emmanuel Bourg
Le 05/10/2019 à 19:52, Hervé BOUTEMY a écrit :
> based on the feedback I got, I updated the proposal:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318
> 
> The archives entries timestamp is now configured with 
> project.build.outputTimestamp property, in ISO-8601 format
> 
>   
> 
> 2019-10-02T08:04:00Z
>   
> 

You may want to specify explicitly that the timestamp must be formatted
with the UTC timezone (as in your example).

Would it be possible to prevent this property from being inherited?

Emmanuel Bourg

-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: last review of Reproducible Builds proposal

2019-10-05 Thread Michael Osipov

Am 2019-10-05 um 22:10 schrieb Hervé BOUTEMY:

Le samedi 5 octobre 2019 20:41:40 CEST, vous avez écrit :

Am 2019-10-05 um 19:52 schrieb Hervé BOUTEMY:

based on the feedback I got, I updated the proposal:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318

The archives entries timestamp is now configured with
project.build.outputTimestamp property, in ISO-8601 format 



  2019-10-02T08:04:00Z
  tputTimestamp>>




The shared components, plugins, parent poms and Maven core branches have
been updated to match this new proposal


If no one objects, next week-end, I'll start the (heavy) release train to
bring (binary) Reproducible Builds plugins to general availability

Really, really nice work..

thank you, it required a lot of energy for a long period of time...



I do like . Why did you make it a String?
Why not go directly with Instant? It gives your ISO 8601 for free

I tried to explain it in https://issues.apache.org/jira/browse/MSHARED-837
Plexus Date injection support is really limited: could not match the
requirements


-MM-dd'T'HH:mm:ssXXX and SimpleDateFormat will do the trick. It also 
will require to change the converter of course.


Alternatively, you could try 
https://commons.apache.org/proper/commons-lang/javadocs/api-release/src-html/org/apache/commons/lang3/time/DateFormatUtils.html#line.72 
which I have added long time ago.


Moreover, I'd like these updated plugins be part of MNG-6169.

Michael


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: last review of Reproducible Builds proposal

2019-10-05 Thread Vladimir Sitnikov
>but
>who really looks at the timestamp of entries in release zips/jars/tar.gz
>honestly?

Tomcat when it decides on what to send in the "Last-Modified" header.
For instance, current Gradle does not allow to configure the timestamp, and
for reproducible builds it always sets the timestamp to 0 or so.
It breaks Tomcat's assumptions:
https://github.com/gradle/gradle/issues/10917

Vladimir


Re: last review of Reproducible Builds proposal

2019-10-05 Thread Hervé BOUTEMY
with inheritance from parent, this question disappears: once parent pom has a 
timestamp value to have a reproducible release, child poms inherit the value 
and the reproducible feature
changing the value in child is just a little improvement to get a timestamp 
that has more meaningful value, if anybody cares about the exact value: but 
who really looks at the timestamp of entries in release zips/jars/tar.gz 
honestly?


Regards,

Hervé

Le samedi 5 octobre 2019, 20:42:04 CEST Tibor Digana a écrit :
> Hi Herve,
> 
> I want to make sure we understand correctly. So. What you want to achieve
> with this property is to stick the property to one fixed value when the
> user has supposed the archive would have same content. And opposite, means
> that the property would be real when the content of the archive should
> change.
> 
> That's technically ok that the plugins are aware of shared time stamp, but
> this looks like the problem with egg and chicken. Practically, the user
> would never be sure when is the time that the time stamp should be fixed
> value. Not sure if the user would be able to have fully working
> reproducible build.
> Perhaps the users will have exactly this question too.
> 
> Cheers
> Tibor17
> 
> On Sat, Oct 5, 2019 at 7:52 PM Hervé BOUTEMY  wrote:
> > based on the feedback I got, I updated the proposal:
> > https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318
> > 
> > The archives entries timestamp is now configured with
> > project.build.outputTimestamp property, in ISO-8601 format
> > 
> > 
> >   
> > 
> > 2019-10-02T08:04:00Z > imestamp>> 
> >   
> > 
> > 
> > 
> > The shared components, plugins, parent poms and Maven core branches have
> > been updated to match this new proposal
> > 
> > 
> > If no one objects, next week-end, I'll start the (heavy) release train to
> > bring (binary) Reproducible Builds plugins to general availability
> > 
> > Regards,
> > 
> > Hervé
> > 
> > 
> > 
> > -
> > 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



Re: last review of Reproducible Builds proposal

2019-10-05 Thread Tibor Digana
Hi Herve,

I want to make sure we understand correctly. So. What you want to achieve
with this property is to stick the property to one fixed value when the
user has supposed the archive would have same content. And opposite, means
that the property would be real when the content of the archive should
change.

That's technically ok that the plugins are aware of shared time stamp, but
this looks like the problem with egg and chicken. Practically, the user
would never be sure when is the time that the time stamp should be fixed
value. Not sure if the user would be able to have fully working
reproducible build.
Perhaps the users will have exactly this question too.

Cheers
Tibor17



On Sat, Oct 5, 2019 at 7:52 PM Hervé BOUTEMY  wrote:

> based on the feedback I got, I updated the proposal:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318
>
> The archives entries timestamp is now configured with
> project.build.outputTimestamp property, in ISO-8601 format
> 
>   
>
> 2019-10-02T08:04:00Z
>   
> 
>
> The shared components, plugins, parent poms and Maven core branches have
> been updated to match this new proposal
>
>
> If no one objects, next week-end, I'll start the (heavy) release train to
> bring (binary) Reproducible Builds plugins to general availability
>
> Regards,
>
> Hervé
>
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>


Re: last review of Reproducible Builds proposal

2019-10-05 Thread Michael Osipov

Am 2019-10-05 um 19:52 schrieb Hervé BOUTEMY:

based on the feedback I got, I updated the proposal:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318

The archives entries timestamp is now configured with 
project.build.outputTimestamp property, in ISO-8601 format

   
 
2019-10-02T08:04:00Z
   


The shared components, plugins, parent poms and Maven core branches have been 
updated to match this new proposal


If no one objects, next week-end, I'll start the (heavy) release train to bring 
(binary) Reproducible Builds plugins to general availability


Really, really nice work..

I do like . Why did you make it a String? 
Why not go directly with Instant? It gives your ISO 8601 for free


Michael


-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



last review of Reproducible Builds proposal

2019-10-05 Thread Hervé BOUTEMY
based on the feedback I got, I updated the proposal:
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682318

The archives entries timestamp is now configured with 
project.build.outputTimestamp property, in ISO-8601 format

  

2019-10-02T08:04:00Z
  


The shared components, plugins, parent poms and Maven core branches have been 
updated to match this new proposal


If no one objects, next week-end, I'll start the (heavy) release train to bring 
(binary) Reproducible Builds plugins to general availability

Regards,

Hervé



-
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org



Re: [DISCUSS] Maven 3.7.0

2019-10-05 Thread Alexander Ashitkin
Totally support java 8. There is nothing to discuss here. Not sure everyone 
realizes that, but it's 2019 already. 

Regarding the new features:
1) as you mentioned the new model, i think it will be good to introduce simple 
build graph balancing hints in the model. It is possible to examine critical 
path of the build, but not much you can do about that. Maven by itself has no 
knowledge of critical path and as developer i have no any tools to apply this 
knowledge. Though theoretically simple priority attribute at project level 
could help scheduler to work on a critical path first. 
2) i like idea of grade api/implementation dependencies model in terms of java 
modules system compatibility. So you expose api and hide implementation. It 
feels like new packaging for jigsaw modules are very welcome.
3) i feel like model have to be reworked to immutable form, so concurrent code 
is easier to write. Current modello objects look unsafe in concurrent code. 
Though correct implementation is possible of course, but it takes a lot of 
efforts to examine correctness. Makes sense to rework current model to builders 
+ immutable thread safe domain objects
4) From cache implementation perspective - i'd like to have metadata support on 
plugin parameters and project properties. That simplifies understanding of 
plugins behavior.

Thank you
Aleks

On 2019/09/28 12:05:34, "Robert Scholte"  wrote: 
> Hi,
> 
> TLDR; introduce maven.experimental.buildconsumer and push Java requirement  
> to Java 8
> 
> now that Maven 3.6.2 is out for a couple of weeks, it seems like we didn't  
> face real regressions.
> The only one might be tricky is the issue related to Tycho.
> 
> However, I think we're ready to push Maven to the next level.
> 
> For those actively reading this list, they should recognize the need for  
> splitting up the pom as it is on the local system versus the pom being  
> uploaded. Once we truly control this mechanism we can think of  
> improvements on model 5.0.0 and new fileformats.
> 
> I've created and implemented MNG-6656[1]. It also contains a zip with an  
> example (original, patched, README) to understand what's happening.
> 
> In order to make this successful, we need IDEs and CI Servers to  
> understand and support these changes. The likely need to implement one of  
> the interfaces[2].
> The new interface uses Java8 Functions (and especially SAXEventFactory is  
> way easier to read+maintain with Java 8). I've tried to keep Maven Java 7  
> compatible, but that was too hard to do.
> So I'd like to use this opportunity to move Maven forward and start  
> requiring Java 8.
> 
> There are some other improvements I'd like to add (those messages will  
> follow), so this will imply that it will take some time before we do a new  
> release.
> 
> WDTY,
> Robert
> 
> [1] https://issues.apache.org/jira/browse/MNG-6656
> [2] https://github.com/apache/maven/compare/MNG-6656?expand=1
> 
> -
> 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



Re: Proposal: maven release lifecycle

2019-10-05 Thread Tibor Digana
Marco, did you mean the SCM graph?

Notice that companies have plenty of different ones.
The plugin should be so much flexible that it would not have a problem to
understand any of the graph and support it.

On Sat, Oct 5, 2019 at 4:15 PM Marco Schulz 
wrote:

> I mention a ship lifecycle 
>
> Sent from Outlook Mobile
>
> 
> From: Stephen Connolly 
> Sent: Saturday, October 5, 2019 2:49:51 AM
> To: Maven Developers List 
> Subject: Re: Proposal: maven release lifecycle
>
> On Sat 5 Oct 2019 at 08:14, Romain Manni-Bucau 
> wrote:
>
> > I like the words but fail to see the missing pieces (understand actions
> to
> > do).
> >
> > Typically today when i release at work i use release plugin enriched with
> > github page deployment for the doc using antora + a ftp update of my
> server
> > output capture to have a mock backing openapi/swagger ui + docker ilage
> > deployment on docker hub + an intellij plugin deployment on jetbrains
> > marketplace etc...adding a flyway migration with a rolling update in a
> k8s
> > cluster is trivial (ops need to say yes though ;)).
> >
> > So technically it is verbose but doable.
> >
> > Custom lifecycle definition is not neat, custom build tasks require a
> build
> > hack or using groovy plugin but it works.
>
>
> Such a pity my ship-maven-plugin never gained traction
>
>
> >
> > Typically, an extension could enable all that based on convention, just
> > injecting needed plugins based on the file presence and values of the
> > distribution urls.
> >
> > This is why i ended up thinking we are more on 1. Sugar in release plugin
> > and 2. Maybe on a generic extension cretion (it replaces rigid lifecycle
> > for such cases these days due to their writing easiness)
> >
> > Am I missing something?
> >
> > Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
> > écrit :
> >
> > > Hello Romain, hello Tibor
> > >
> > > Thanks for your feedback. I had yesterday a very interesting
> conversation
> > > with
> > > Karl Heinz. He gave me some very informative links about deeply maven
> > > insights.
> > > Before I saw his talk on youtube I thought I have a good knowledge
> about
> > > maven
> > > ;-)  now I was lerning a lot of new things.
> > >
> > > He defined Maven as an plugin execution framework. I like to extend
> this
> > > definition: Maven is a process engine framework and define industrial
> > > defacto
> > > standards for the software development process. And with this idea in
> > mind
> > > I
> > > think it could be great to define more workflows in a equal manner like
> > the
> > > build lifecycle. The basic proposal is a first draft and I know some
> > > points are
> > > missing. I tried to keep the release process as simple as possible. Two
> > > positions in this definition was impotent for me.
> > >
> > > Often companies don't really have well structured release processes.
> For
> > > that
> > > reason I would be great to have a workable standard. I have a small
> Java
> > > project
> > > on GitHub, an sometimes I also deploy to maven central. If you do this
> > the
> > > first
> > > time a bit complicated process. And publishing on maven central is
> also a
> > > release process. So I had the intention to define some ordered steps
> like
> > > in the
> > > build lifecycle to prepare and publish a release.
> > >
> > > Let me describe an example scenario for a release: After mvn build was
> > > successful executed all unit tests are passed, the sprint is finished
> and
> > > as
> > > build manager we want to release our artifact. Very important would be
> an
> > > option
> > > to take the results from the build lifecycle and prepare the release.
> As
> > > first
> > > we need to see that the planned artifact version is not exist in any
> > > configured
> > > public repository and the pom contains all mandatory information for
> > > publishing
> > > on maven central(validate). To secure a reproducible build, in a second
> > > step we
> > > enforce that no SNAPSHOT artifacts are involved, the correct maven
> > version
> > > is
> > > used etc. (the existing enforcer plugin do a great job). After the
> > > preconditions
> > > are fine we can execute external acceptance tests like JGiven. In
> another
> > > step
> > > the JavaDoc got generated. the pgp plugin sing the artifacts and check
> > > that the
> > > public key is available. The SCM plugin create a tag for the released
> > > revision.
> > > Difficult parts are auto increment the version number and auto check
> the
> > > scm if
> > > the release is produced with the last revision of the code. This
> actions
> > > are by
> > > my experience a bit error prune.
> > > A release process could have some vocabulary like prepare, perform,
> > > deploy. This
> > > are just conventions, like it is used in the build lifecycle. To
> realize
> > > this
> > > idea, many already existing plugins can used, like the release plugin.
> In
> > > this
> > > proposal I was also not mentions 

Re: Proposal: maven release lifecycle

2019-10-05 Thread Tibor Digana
Release lifecycle does not exist yet.
There's only "default", "clean", "site".

Therefore i would prefer to have this in CLI, i.e.
$ maven release

>> nowdays needs (release, js build, cloud deployment, gh-pages, etc...)
We cannot be technology specific but we can provide customization of the
release lifecycle.

The outcome of this discussion should be some frame-work as well as list of
items where we can agree and start writing Wiki page.
We do not have to go deeply "how" to do.
We should agree on "what" to do at least.



On Sat, Oct 5, 2019 at 4:08 PM Romain Manni-Bucau 
wrote:

> Personally Id like to keep current release lifecycle, it is the most
> generic one we can get but we need to let users create their own chain of
> mojo very easily in the pom.
>
> It is trivial to do with a custom descriptor and extension but it must be
> built in cause of nowdays needs (release, js build, cloud deployment,
> gh-pages, etc...)
>
> Le sam. 5 oct. 2019 à 15:18, Tibor Digana  a
> écrit :
>
> > I have never seen a documentation for ship-maven-plugin.
> > It could be a good motivation for us.
> >
> > I can say for myself, my requirements are to the new lifecycle and plugin
> > goal release:release:
> > 1. executes phases from clean to deploy
> > 2. installation of "release" artifacts is skipped (snapshots are not
> > skipped)
> > 3. unit and integration tests are executed only once and not two times
> >
> > Tagging and SCM checkout are just fine.
> >
> > Second lifecycle for release without scm checkout and deployment. The
> test
> > would be executed once, tagging and both commit messages are the must.
> >
> > WDYT? How you would like to see the release lifecysle?
> > Notice that we should not say how the project should look like in the
> > customer. The customer may have reasons to use his project structures as
> > they are and the architecture too. So we should NOT define these
> > structures!
> >
> >
> > On Sat, Oct 5, 2019 at 2:47 PM Marco Schulz 
> > wrote:
> >
> > > All this points are in my opinion an indicator that a release is a
> > complex
> > > process and very difficult to handle in just a plugin. To maintain all
> > that
> > > different points a relesaplugin will ver a ueber (god) plugin.
> > >
> > > Docker for example is another big toic we need to think about.
> > >
> > > rwgards and anice weekend to all
> > > . marco
> > >
> > > Sent from Outlook Mobile
> > >
> > > 
> > > From: Romain Manni-Bucau 
> > > Sent: Saturday, October 5, 2019 2:06:27 AM
> > > To: Maven Developers List 
> > > Cc: users 
> > > Subject: Re: Proposal: maven release lifecycle
> > >
> > > I like the words but fail to see the missing pieces (understand actions
> > to
> > > do).
> > >
> > > Typically today when i release at work i use release plugin enriched
> with
> > > github page deployment for the doc using antora + a ftp update of my
> > server
> > > output capture to have a mock backing openapi/swagger ui + docker ilage
> > > deployment on docker hub + an intellij plugin deployment on jetbrains
> > > marketplace etc...adding a flyway migration with a rolling update in a
> > k8s
> > > cluster is trivial (ops need to say yes though ;)).
> > >
> > > So technically it is verbose but doable.
> > >
> > > Custom lifecycle definition is not neat, custom build tasks require a
> > build
> > > hack or using groovy plugin but it works.
> > >
> > > Typically, an extension could enable all that based on convention, just
> > > injecting needed plugins based on the file presence and values of the
> > > distribution urls.
> > >
> > > This is why i ended up thinking we are more on 1. Sugar in release
> plugin
> > > and 2. Maybe on a generic extension cretion (it replaces rigid
> lifecycle
> > > for such cases these days due to their writing easiness)
> > >
> > > Am I missing something?
> > >
> > > Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
> > > écrit :
> > >
> > > > Hello Romain, hello Tibor
> > > >
> > > > Thanks for your feedback. I had yesterday a very interesting
> > conversation
> > > > with
> > > > Karl Heinz. He gave me some very informative links about deeply maven
> > > > insights.
> > > > Before I saw his talk on youtube I thought I have a good knowledge
> > about
> > > > maven
> > > > ;-)  now I was lerning a lot of new things.
> > > >
> > > > He defined Maven as an plugin execution framework. I like to extend
> > this
> > > > definition: Maven is a process engine framework and define industrial
> > > > defacto
> > > > standards for the software development process. And with this idea in
> > > mind
> > > > I
> > > > think it could be great to define more workflows in a equal manner
> like
> > > the
> > > > build lifecycle. The basic proposal is a first draft and I know some
> > > > points are
> > > > missing. I tried to keep the release process as simple as possible.
> Two
> > > > positions in this definition was impotent for me.
> > > >
> > > > Often companies don't really 

Re: Proposal: maven release lifecycle

2019-10-05 Thread Marco Schulz
All this points are in my opinion an indicator that a release is a complex 
process and very difficult to handle in just a plugin. To maintain all that 
different points a relesaplugin will ver a ueber (god) plugin.

Docker for example is another big toic we need to think about.

rwgards and anice weekend to all
. marco

Sent from Outlook Mobile


From: Romain Manni-Bucau 
Sent: Saturday, October 5, 2019 2:06:27 AM
To: Maven Developers List 
Cc: users 
Subject: Re: Proposal: maven release lifecycle

I like the words but fail to see the missing pieces (understand actions to
do).

Typically today when i release at work i use release plugin enriched with
github page deployment for the doc using antora + a ftp update of my server
output capture to have a mock backing openapi/swagger ui + docker ilage
deployment on docker hub + an intellij plugin deployment on jetbrains
marketplace etc...adding a flyway migration with a rolling update in a k8s
cluster is trivial (ops need to say yes though ;)).

So technically it is verbose but doable.

Custom lifecycle definition is not neat, custom build tasks require a build
hack or using groovy plugin but it works.

Typically, an extension could enable all that based on convention, just
injecting needed plugins based on the file presence and values of the
distribution urls.

This is why i ended up thinking we are more on 1. Sugar in release plugin
and 2. Maybe on a generic extension cretion (it replaces rigid lifecycle
for such cases these days due to their writing easiness)

Am I missing something?

Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
écrit :

> Hello Romain, hello Tibor
>
> Thanks for your feedback. I had yesterday a very interesting conversation
> with
> Karl Heinz. He gave me some very informative links about deeply maven
> insights.
> Before I saw his talk on youtube I thought I have a good knowledge about
> maven
> ;-)  now I was lerning a lot of new things.
>
> He defined Maven as an plugin execution framework. I like to extend this
> definition: Maven is a process engine framework and define industrial
> defacto
> standards for the software development process. And with this idea in mind
> I
> think it could be great to define more workflows in a equal manner like the
> build lifecycle. The basic proposal is a first draft and I know some
> points are
> missing. I tried to keep the release process as simple as possible. Two
> positions in this definition was impotent for me.
>
> Often companies don't really have well structured release processes. For
> that
> reason I would be great to have a workable standard. I have a small Java
> project
> on GitHub, an sometimes I also deploy to maven central. If you do this the
> first
> time a bit complicated process. And publishing on maven central is also a
> release process. So I had the intention to define some ordered steps like
> in the
> build lifecycle to prepare and publish a release.
>
> Let me describe an example scenario for a release: After mvn build was
> successful executed all unit tests are passed, the sprint is finished and
> as
> build manager we want to release our artifact. Very important would be an
> option
> to take the results from the build lifecycle and prepare the release. As
> first
> we need to see that the planned artifact version is not exist in any
> configured
> public repository and the pom contains all mandatory information for
> publishing
> on maven central(validate). To secure a reproducible build, in a second
> step we
> enforce that no SNAPSHOT artifacts are involved, the correct maven version
> is
> used etc. (the existing enforcer plugin do a great job). After the
> preconditions
> are fine we can execute external acceptance tests like JGiven. In another
> step
> the JavaDoc got generated. the pgp plugin sing the artifacts and check
> that the
> public key is available. The SCM plugin create a tag for the released
> revision.
> Difficult parts are auto increment the version number and auto check the
> scm if
> the release is produced with the last revision of the code. This actions
> are by
> my experience a bit error prune.
> A release process could have some vocabulary like prepare, perform,
> deploy. This
> are just conventions, like it is used in the build lifecycle. To realize
> this
> idea, many already existing plugins can used, like the release plugin. In
> this
> proposal I was also not mentions external plugins to use like flyway, for
> database versioning and so on. A lot of things ar imaginable.
>
> In future more lifecycles or workflows could be possible. For example a
> deploy
> lifecycle and so on. And then maven transform from a plugin execution
> framework
> to a process management framework, like Jason van Zyl described in his book
> better build with maven.
>
> warm regards to all
> .marco
>
>
>
>
> On Fri, 2019-10-04 at 11:28 +0200, Romain Manni-Bucau wrote:
> > @Tibor: I agree merging both in one 

Re: Proposal: maven release lifecycle

2019-10-05 Thread Marco Schulz
I mention a ship lifecycle 

Sent from Outlook Mobile


From: Stephen Connolly 
Sent: Saturday, October 5, 2019 2:49:51 AM
To: Maven Developers List 
Subject: Re: Proposal: maven release lifecycle

On Sat 5 Oct 2019 at 08:14, Romain Manni-Bucau 
wrote:

> I like the words but fail to see the missing pieces (understand actions to
> do).
>
> Typically today when i release at work i use release plugin enriched with
> github page deployment for the doc using antora + a ftp update of my server
> output capture to have a mock backing openapi/swagger ui + docker ilage
> deployment on docker hub + an intellij plugin deployment on jetbrains
> marketplace etc...adding a flyway migration with a rolling update in a k8s
> cluster is trivial (ops need to say yes though ;)).
>
> So technically it is verbose but doable.
>
> Custom lifecycle definition is not neat, custom build tasks require a build
> hack or using groovy plugin but it works.


Such a pity my ship-maven-plugin never gained traction


>
> Typically, an extension could enable all that based on convention, just
> injecting needed plugins based on the file presence and values of the
> distribution urls.
>
> This is why i ended up thinking we are more on 1. Sugar in release plugin
> and 2. Maybe on a generic extension cretion (it replaces rigid lifecycle
> for such cases these days due to their writing easiness)
>
> Am I missing something?
>
> Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
> écrit :
>
> > Hello Romain, hello Tibor
> >
> > Thanks for your feedback. I had yesterday a very interesting conversation
> > with
> > Karl Heinz. He gave me some very informative links about deeply maven
> > insights.
> > Before I saw his talk on youtube I thought I have a good knowledge about
> > maven
> > ;-)  now I was lerning a lot of new things.
> >
> > He defined Maven as an plugin execution framework. I like to extend this
> > definition: Maven is a process engine framework and define industrial
> > defacto
> > standards for the software development process. And with this idea in
> mind
> > I
> > think it could be great to define more workflows in a equal manner like
> the
> > build lifecycle. The basic proposal is a first draft and I know some
> > points are
> > missing. I tried to keep the release process as simple as possible. Two
> > positions in this definition was impotent for me.
> >
> > Often companies don't really have well structured release processes. For
> > that
> > reason I would be great to have a workable standard. I have a small Java
> > project
> > on GitHub, an sometimes I also deploy to maven central. If you do this
> the
> > first
> > time a bit complicated process. And publishing on maven central is also a
> > release process. So I had the intention to define some ordered steps like
> > in the
> > build lifecycle to prepare and publish a release.
> >
> > Let me describe an example scenario for a release: After mvn build was
> > successful executed all unit tests are passed, the sprint is finished and
> > as
> > build manager we want to release our artifact. Very important would be an
> > option
> > to take the results from the build lifecycle and prepare the release. As
> > first
> > we need to see that the planned artifact version is not exist in any
> > configured
> > public repository and the pom contains all mandatory information for
> > publishing
> > on maven central(validate). To secure a reproducible build, in a second
> > step we
> > enforce that no SNAPSHOT artifacts are involved, the correct maven
> version
> > is
> > used etc. (the existing enforcer plugin do a great job). After the
> > preconditions
> > are fine we can execute external acceptance tests like JGiven. In another
> > step
> > the JavaDoc got generated. the pgp plugin sing the artifacts and check
> > that the
> > public key is available. The SCM plugin create a tag for the released
> > revision.
> > Difficult parts are auto increment the version number and auto check the
> > scm if
> > the release is produced with the last revision of the code. This actions
> > are by
> > my experience a bit error prune.
> > A release process could have some vocabulary like prepare, perform,
> > deploy. This
> > are just conventions, like it is used in the build lifecycle. To realize
> > this
> > idea, many already existing plugins can used, like the release plugin. In
> > this
> > proposal I was also not mentions external plugins to use like flyway, for
> > database versioning and so on. A lot of things ar imaginable.
> >
> > In future more lifecycles or workflows could be possible. For example a
> > deploy
> > lifecycle and so on. And then maven transform from a plugin execution
> > framework
> > to a process management framework, like Jason van Zyl described in his
> book
> > better build with maven.
> >
> > warm regards to all
> > .marco
> >
> >
> >
> >
> > On Fri, 2019-10-04 at 11:28 +0200, Romain Manni-Bucau wrote:
> > > 

Re: Proposal: maven release lifecycle

2019-10-05 Thread Romain Manni-Bucau
Personally Id like to keep current release lifecycle, it is the most
generic one we can get but we need to let users create their own chain of
mojo very easily in the pom.

It is trivial to do with a custom descriptor and extension but it must be
built in cause of nowdays needs (release, js build, cloud deployment,
gh-pages, etc...)

Le sam. 5 oct. 2019 à 15:18, Tibor Digana  a écrit :

> I have never seen a documentation for ship-maven-plugin.
> It could be a good motivation for us.
>
> I can say for myself, my requirements are to the new lifecycle and plugin
> goal release:release:
> 1. executes phases from clean to deploy
> 2. installation of "release" artifacts is skipped (snapshots are not
> skipped)
> 3. unit and integration tests are executed only once and not two times
>
> Tagging and SCM checkout are just fine.
>
> Second lifecycle for release without scm checkout and deployment. The test
> would be executed once, tagging and both commit messages are the must.
>
> WDYT? How you would like to see the release lifecysle?
> Notice that we should not say how the project should look like in the
> customer. The customer may have reasons to use his project structures as
> they are and the architecture too. So we should NOT define these
> structures!
>
>
> On Sat, Oct 5, 2019 at 2:47 PM Marco Schulz 
> wrote:
>
> > All this points are in my opinion an indicator that a release is a
> complex
> > process and very difficult to handle in just a plugin. To maintain all
> that
> > different points a relesaplugin will ver a ueber (god) plugin.
> >
> > Docker for example is another big toic we need to think about.
> >
> > rwgards and anice weekend to all
> > . marco
> >
> > Sent from Outlook Mobile
> >
> > 
> > From: Romain Manni-Bucau 
> > Sent: Saturday, October 5, 2019 2:06:27 AM
> > To: Maven Developers List 
> > Cc: users 
> > Subject: Re: Proposal: maven release lifecycle
> >
> > I like the words but fail to see the missing pieces (understand actions
> to
> > do).
> >
> > Typically today when i release at work i use release plugin enriched with
> > github page deployment for the doc using antora + a ftp update of my
> server
> > output capture to have a mock backing openapi/swagger ui + docker ilage
> > deployment on docker hub + an intellij plugin deployment on jetbrains
> > marketplace etc...adding a flyway migration with a rolling update in a
> k8s
> > cluster is trivial (ops need to say yes though ;)).
> >
> > So technically it is verbose but doable.
> >
> > Custom lifecycle definition is not neat, custom build tasks require a
> build
> > hack or using groovy plugin but it works.
> >
> > Typically, an extension could enable all that based on convention, just
> > injecting needed plugins based on the file presence and values of the
> > distribution urls.
> >
> > This is why i ended up thinking we are more on 1. Sugar in release plugin
> > and 2. Maybe on a generic extension cretion (it replaces rigid lifecycle
> > for such cases these days due to their writing easiness)
> >
> > Am I missing something?
> >
> > Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
> > écrit :
> >
> > > Hello Romain, hello Tibor
> > >
> > > Thanks for your feedback. I had yesterday a very interesting
> conversation
> > > with
> > > Karl Heinz. He gave me some very informative links about deeply maven
> > > insights.
> > > Before I saw his talk on youtube I thought I have a good knowledge
> about
> > > maven
> > > ;-)  now I was lerning a lot of new things.
> > >
> > > He defined Maven as an plugin execution framework. I like to extend
> this
> > > definition: Maven is a process engine framework and define industrial
> > > defacto
> > > standards for the software development process. And with this idea in
> > mind
> > > I
> > > think it could be great to define more workflows in a equal manner like
> > the
> > > build lifecycle. The basic proposal is a first draft and I know some
> > > points are
> > > missing. I tried to keep the release process as simple as possible. Two
> > > positions in this definition was impotent for me.
> > >
> > > Often companies don't really have well structured release processes.
> For
> > > that
> > > reason I would be great to have a workable standard. I have a small
> Java
> > > project
> > > on GitHub, an sometimes I also deploy to maven central. If you do this
> > the
> > > first
> > > time a bit complicated process. And publishing on maven central is
> also a
> > > release process. So I had the intention to define some ordered steps
> like
> > > in the
> > > build lifecycle to prepare and publish a release.
> > >
> > > Let me describe an example scenario for a release: After mvn build was
> > > successful executed all unit tests are passed, the sprint is finished
> and
> > > as
> > > build manager we want to release our artifact. Very important would be
> an
> > > option
> > > to take the results from the build lifecycle and prepare the release.

Re: Proposal: maven release lifecycle

2019-10-05 Thread Tibor Digana
I have never seen a documentation for ship-maven-plugin.
It could be a good motivation for us.

I can say for myself, my requirements are to the new lifecycle and plugin
goal release:release:
1. executes phases from clean to deploy
2. installation of "release" artifacts is skipped (snapshots are not
skipped)
3. unit and integration tests are executed only once and not two times

Tagging and SCM checkout are just fine.

Second lifecycle for release without scm checkout and deployment. The test
would be executed once, tagging and both commit messages are the must.

WDYT? How you would like to see the release lifecysle?
Notice that we should not say how the project should look like in the
customer. The customer may have reasons to use his project structures as
they are and the architecture too. So we should NOT define these structures!


On Sat, Oct 5, 2019 at 2:47 PM Marco Schulz 
wrote:

> All this points are in my opinion an indicator that a release is a complex
> process and very difficult to handle in just a plugin. To maintain all that
> different points a relesaplugin will ver a ueber (god) plugin.
>
> Docker for example is another big toic we need to think about.
>
> rwgards and anice weekend to all
> . marco
>
> Sent from Outlook Mobile
>
> 
> From: Romain Manni-Bucau 
> Sent: Saturday, October 5, 2019 2:06:27 AM
> To: Maven Developers List 
> Cc: users 
> Subject: Re: Proposal: maven release lifecycle
>
> I like the words but fail to see the missing pieces (understand actions to
> do).
>
> Typically today when i release at work i use release plugin enriched with
> github page deployment for the doc using antora + a ftp update of my server
> output capture to have a mock backing openapi/swagger ui + docker ilage
> deployment on docker hub + an intellij plugin deployment on jetbrains
> marketplace etc...adding a flyway migration with a rolling update in a k8s
> cluster is trivial (ops need to say yes though ;)).
>
> So technically it is verbose but doable.
>
> Custom lifecycle definition is not neat, custom build tasks require a build
> hack or using groovy plugin but it works.
>
> Typically, an extension could enable all that based on convention, just
> injecting needed plugins based on the file presence and values of the
> distribution urls.
>
> This is why i ended up thinking we are more on 1. Sugar in release plugin
> and 2. Maybe on a generic extension cretion (it replaces rigid lifecycle
> for such cases these days due to their writing easiness)
>
> Am I missing something?
>
> Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
> écrit :
>
> > Hello Romain, hello Tibor
> >
> > Thanks for your feedback. I had yesterday a very interesting conversation
> > with
> > Karl Heinz. He gave me some very informative links about deeply maven
> > insights.
> > Before I saw his talk on youtube I thought I have a good knowledge about
> > maven
> > ;-)  now I was lerning a lot of new things.
> >
> > He defined Maven as an plugin execution framework. I like to extend this
> > definition: Maven is a process engine framework and define industrial
> > defacto
> > standards for the software development process. And with this idea in
> mind
> > I
> > think it could be great to define more workflows in a equal manner like
> the
> > build lifecycle. The basic proposal is a first draft and I know some
> > points are
> > missing. I tried to keep the release process as simple as possible. Two
> > positions in this definition was impotent for me.
> >
> > Often companies don't really have well structured release processes. For
> > that
> > reason I would be great to have a workable standard. I have a small Java
> > project
> > on GitHub, an sometimes I also deploy to maven central. If you do this
> the
> > first
> > time a bit complicated process. And publishing on maven central is also a
> > release process. So I had the intention to define some ordered steps like
> > in the
> > build lifecycle to prepare and publish a release.
> >
> > Let me describe an example scenario for a release: After mvn build was
> > successful executed all unit tests are passed, the sprint is finished and
> > as
> > build manager we want to release our artifact. Very important would be an
> > option
> > to take the results from the build lifecycle and prepare the release. As
> > first
> > we need to see that the planned artifact version is not exist in any
> > configured
> > public repository and the pom contains all mandatory information for
> > publishing
> > on maven central(validate). To secure a reproducible build, in a second
> > step we
> > enforce that no SNAPSHOT artifacts are involved, the correct maven
> version
> > is
> > used etc. (the existing enforcer plugin do a great job). After the
> > preconditions
> > are fine we can execute external acceptance tests like JGiven. In another
> > step
> > the JavaDoc got generated. the pgp plugin sing the artifacts and check
> > that the
> > 

Re: Proposal: maven release lifecycle

2019-10-05 Thread Stephen Connolly
On Sat 5 Oct 2019 at 08:14, Romain Manni-Bucau 
wrote:

> I like the words but fail to see the missing pieces (understand actions to
> do).
>
> Typically today when i release at work i use release plugin enriched with
> github page deployment for the doc using antora + a ftp update of my server
> output capture to have a mock backing openapi/swagger ui + docker ilage
> deployment on docker hub + an intellij plugin deployment on jetbrains
> marketplace etc...adding a flyway migration with a rolling update in a k8s
> cluster is trivial (ops need to say yes though ;)).
>
> So technically it is verbose but doable.
>
> Custom lifecycle definition is not neat, custom build tasks require a build
> hack or using groovy plugin but it works.


Such a pity my ship-maven-plugin never gained traction


>
> Typically, an extension could enable all that based on convention, just
> injecting needed plugins based on the file presence and values of the
> distribution urls.
>
> This is why i ended up thinking we are more on 1. Sugar in release plugin
> and 2. Maybe on a generic extension cretion (it replaces rigid lifecycle
> for such cases these days due to their writing easiness)
>
> Am I missing something?
>
> Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
> écrit :
>
> > Hello Romain, hello Tibor
> >
> > Thanks for your feedback. I had yesterday a very interesting conversation
> > with
> > Karl Heinz. He gave me some very informative links about deeply maven
> > insights.
> > Before I saw his talk on youtube I thought I have a good knowledge about
> > maven
> > ;-)  now I was lerning a lot of new things.
> >
> > He defined Maven as an plugin execution framework. I like to extend this
> > definition: Maven is a process engine framework and define industrial
> > defacto
> > standards for the software development process. And with this idea in
> mind
> > I
> > think it could be great to define more workflows in a equal manner like
> the
> > build lifecycle. The basic proposal is a first draft and I know some
> > points are
> > missing. I tried to keep the release process as simple as possible. Two
> > positions in this definition was impotent for me.
> >
> > Often companies don't really have well structured release processes. For
> > that
> > reason I would be great to have a workable standard. I have a small Java
> > project
> > on GitHub, an sometimes I also deploy to maven central. If you do this
> the
> > first
> > time a bit complicated process. And publishing on maven central is also a
> > release process. So I had the intention to define some ordered steps like
> > in the
> > build lifecycle to prepare and publish a release.
> >
> > Let me describe an example scenario for a release: After mvn build was
> > successful executed all unit tests are passed, the sprint is finished and
> > as
> > build manager we want to release our artifact. Very important would be an
> > option
> > to take the results from the build lifecycle and prepare the release. As
> > first
> > we need to see that the planned artifact version is not exist in any
> > configured
> > public repository and the pom contains all mandatory information for
> > publishing
> > on maven central(validate). To secure a reproducible build, in a second
> > step we
> > enforce that no SNAPSHOT artifacts are involved, the correct maven
> version
> > is
> > used etc. (the existing enforcer plugin do a great job). After the
> > preconditions
> > are fine we can execute external acceptance tests like JGiven. In another
> > step
> > the JavaDoc got generated. the pgp plugin sing the artifacts and check
> > that the
> > public key is available. The SCM plugin create a tag for the released
> > revision.
> > Difficult parts are auto increment the version number and auto check the
> > scm if
> > the release is produced with the last revision of the code. This actions
> > are by
> > my experience a bit error prune.
> > A release process could have some vocabulary like prepare, perform,
> > deploy. This
> > are just conventions, like it is used in the build lifecycle. To realize
> > this
> > idea, many already existing plugins can used, like the release plugin. In
> > this
> > proposal I was also not mentions external plugins to use like flyway, for
> > database versioning and so on. A lot of things ar imaginable.
> >
> > In future more lifecycles or workflows could be possible. For example a
> > deploy
> > lifecycle and so on. And then maven transform from a plugin execution
> > framework
> > to a process management framework, like Jason van Zyl described in his
> book
> > better build with maven.
> >
> > warm regards to all
> > .marco
> >
> >
> >
> >
> > On Fri, 2019-10-04 at 11:28 +0200, Romain Manni-Bucau wrote:
> > > @Tibor: I agree merging both in one "super" command can be neat (I
> always
> > > run both at once typically) but I disagree with last parts "skip the
> > test"
> > > - maven is also there to enforce tests as a good practise, if you don't
> > > automatically 

Re: Proposal: maven release lifecycle

2019-10-05 Thread Romain Manni-Bucau
I like the words but fail to see the missing pieces (understand actions to
do).

Typically today when i release at work i use release plugin enriched with
github page deployment for the doc using antora + a ftp update of my server
output capture to have a mock backing openapi/swagger ui + docker ilage
deployment on docker hub + an intellij plugin deployment on jetbrains
marketplace etc...adding a flyway migration with a rolling update in a k8s
cluster is trivial (ops need to say yes though ;)).

So technically it is verbose but doable.

Custom lifecycle definition is not neat, custom build tasks require a build
hack or using groovy plugin but it works.

Typically, an extension could enable all that based on convention, just
injecting needed plugins based on the file presence and values of the
distribution urls.

This is why i ended up thinking we are more on 1. Sugar in release plugin
and 2. Maybe on a generic extension cretion (it replaces rigid lifecycle
for such cases these days due to their writing easiness)

Am I missing something?

Le sam. 5 oct. 2019 à 08:23, Marco Schulz  a
écrit :

> Hello Romain, hello Tibor
>
> Thanks for your feedback. I had yesterday a very interesting conversation
> with
> Karl Heinz. He gave me some very informative links about deeply maven
> insights.
> Before I saw his talk on youtube I thought I have a good knowledge about
> maven
> ;-)  now I was lerning a lot of new things.
>
> He defined Maven as an plugin execution framework. I like to extend this
> definition: Maven is a process engine framework and define industrial
> defacto
> standards for the software development process. And with this idea in mind
> I
> think it could be great to define more workflows in a equal manner like the
> build lifecycle. The basic proposal is a first draft and I know some
> points are
> missing. I tried to keep the release process as simple as possible. Two
> positions in this definition was impotent for me.
>
> Often companies don't really have well structured release processes. For
> that
> reason I would be great to have a workable standard. I have a small Java
> project
> on GitHub, an sometimes I also deploy to maven central. If you do this the
> first
> time a bit complicated process. And publishing on maven central is also a
> release process. So I had the intention to define some ordered steps like
> in the
> build lifecycle to prepare and publish a release.
>
> Let me describe an example scenario for a release: After mvn build was
> successful executed all unit tests are passed, the sprint is finished and
> as
> build manager we want to release our artifact. Very important would be an
> option
> to take the results from the build lifecycle and prepare the release. As
> first
> we need to see that the planned artifact version is not exist in any
> configured
> public repository and the pom contains all mandatory information for
> publishing
> on maven central(validate). To secure a reproducible build, in a second
> step we
> enforce that no SNAPSHOT artifacts are involved, the correct maven version
> is
> used etc. (the existing enforcer plugin do a great job). After the
> preconditions
> are fine we can execute external acceptance tests like JGiven. In another
> step
> the JavaDoc got generated. the pgp plugin sing the artifacts and check
> that the
> public key is available. The SCM plugin create a tag for the released
> revision.
> Difficult parts are auto increment the version number and auto check the
> scm if
> the release is produced with the last revision of the code. This actions
> are by
> my experience a bit error prune.
> A release process could have some vocabulary like prepare, perform,
> deploy. This
> are just conventions, like it is used in the build lifecycle. To realize
> this
> idea, many already existing plugins can used, like the release plugin. In
> this
> proposal I was also not mentions external plugins to use like flyway, for
> database versioning and so on. A lot of things ar imaginable.
>
> In future more lifecycles or workflows could be possible. For example a
> deploy
> lifecycle and so on. And then maven transform from a plugin execution
> framework
> to a process management framework, like Jason van Zyl described in his book
> better build with maven.
>
> warm regards to all
> .marco
>
>
>
>
> On Fri, 2019-10-04 at 11:28 +0200, Romain Manni-Bucau wrote:
> > @Tibor: I agree merging both in one "super" command can be neat (I always
> > run both at once typically) but I disagree with last parts "skip the
> test"
> > - maven is also there to enforce tests as a good practise, if you don't
> > automatically test it you can configure maven to skip tests for the
> release
> > but it is at your own risk, can be fine or not - and "skip the deploy" -
> > here again you can configure maven to do it if you need but maven must
> > respect the build attached artifact.
> >
> > Romain Manni-Bucau
> > @rmannibucau  |  Blog
> > 

Re: Proposal: maven release lifecycle

2019-10-05 Thread Marco Schulz
Hello Romain, hello Tibor

Thanks for your feedback. I had yesterday a very interesting conversation with
Karl Heinz. He gave me some very informative links about deeply maven insights.
Before I saw his talk on youtube I thought I have a good knowledge about maven
;-)  now I was lerning a lot of new things.

He defined Maven as an plugin execution framework. I like to extend this
definition: Maven is a process engine framework and define industrial defacto
standards for the software development process. And with this idea in mind I
think it could be great to define more workflows in a equal manner like the
build lifecycle. The basic proposal is a first draft and I know some points are
missing. I tried to keep the release process as simple as possible. Two
positions in this definition was impotent for me.

Often companies don't really have well structured release processes. For that
reason I would be great to have a workable standard. I have a small Java project
on GitHub, an sometimes I also deploy to maven central. If you do this the first
time a bit complicated process. And publishing on maven central is also a
release process. So I had the intention to define some ordered steps like in the
build lifecycle to prepare and publish a release.

Let me describe an example scenario for a release: After mvn build was
successful executed all unit tests are passed, the sprint is finished and as
build manager we want to release our artifact. Very important would be an option
to take the results from the build lifecycle and prepare the release. As first
we need to see that the planned artifact version is not exist in any configured
public repository and the pom contains all mandatory information for publishing
on maven central(validate). To secure a reproducible build, in a second step we
enforce that no SNAPSHOT artifacts are involved, the correct maven version is
used etc. (the existing enforcer plugin do a great job). After the preconditions
are fine we can execute external acceptance tests like JGiven. In another step
the JavaDoc got generated. the pgp plugin sing the artifacts and check that the
public key is available. The SCM plugin create a tag for the released revision. 
Difficult parts are auto increment the version number and auto check the scm if
the release is produced with the last revision of the code. This actions are by
my experience a bit error prune.
A release process could have some vocabulary like prepare, perform, deploy. This
are just conventions, like it is used in the build lifecycle. To realize this
idea, many already existing plugins can used, like the release plugin. In this
proposal I was also not mentions external plugins to use like flyway, for
database versioning and so on. A lot of things ar imaginable. 

In future more lifecycles or workflows could be possible. For example a deploy
lifecycle and so on. And then maven transform from a plugin execution framework
to a process management framework, like Jason van Zyl described in his book
better build with maven.

warm regards to all
.marco




On Fri, 2019-10-04 at 11:28 +0200, Romain Manni-Bucau wrote:
> @Tibor: I agree merging both in one "super" command can be neat (I always
> run both at once typically) but I disagree with last parts "skip the test"
> - maven is also there to enforce tests as a good practise, if you don't
> automatically test it you can configure maven to skip tests for the release
> but it is at your own risk, can be fine or not - and "skip the deploy" -
> here again you can configure maven to do it if you need but maven must
> respect the build attached artifact.
> 
> Romain Manni-Bucau
> @rmannibucau  |  Blog
>  | Old Blog
>  | Github  |
> LinkedIn  | Book
> 
> 
> 
> Le ven. 4 oct. 2019 à 11:22, Tibor Digana  a écrit :
> 
> > It would be worth to add a new goal called "release" to the
> > maven-release-plugin which merges "prepare" and "perform".
> > We developers in companies use both goals prepare and perform immediately
> > together because for us two goals do not make sense.
> > Two goals make sense for those who can wait days to start manual tests of
> > the TAG but we don't!
> > 
> > We are testing the JAR libraries beforehand and then we evaluate the
> > quality/manual tests with SNAPSHOT whether it makes sense to start the
> > release process in CLI.
> > If there are web archives, the prepare phase would be enough because
> > deployment in Nexus is useless nothing but the TAG itself and Continuous
> > Delivery.
> > 
> > On Fri, Oct 4, 2019 at 8:34 AM Romain Manni-Bucau 
> > wrote:
> > 
> > > Hi Marco,
> > > 
> > > I have 2 thoughts reading your post:
> > > 
> > > 1. Should be enforced by an extension (sonatype plugin if target is
> > > central?)
> > > 2.