Well I have a new candidate:

<artifactId>maven-bundle-plugin</artifactId>
 
Creates: Bnd-LastModified in the MANIFEST.MF

Gotta find out a way to either suppress that entry (Would be great if it could 
consume the same property)

Chris



Am 03.11.19, 20:25 schrieb "herve.bout...@free.fr" <herve.bout...@free.fr>:

    ok, Reproducible Builds are not so easy to get: each plugin that you use 
can cause an issue
    
    I really recommend you diffoscope to investigate differences, it really 
helps a lot by easily giving you precise differences
    
    Good luck for the investigations :)
    
    Regards,
    
    Hervé
    
    ----- Mail original -----
    De: "Christofer Dutz" <christofer.d...@c-ware.de>
    À: "Maven Developers List" <dev@maven.apache.org>
    Envoyé: Dimanche 3 Novembre 2019 20:16:42
    Objet: Re: last review of Reproducible Builds proposal
    
    Hi Herve,
    
    unfortunately I now have implemented some tooling to compare the stuff 
produced by the updated reproducible builds.
    And it does show quite a number of non binary equal files.
    
    Will investigate what's the difference.
    
    Chris
    
    
    
    Am 03.11.19, 11:08 schrieb "Hervé BOUTEMY" <herve.bout...@free.fr>:
    
        great feedback, thank you: this proves the initial set of only 3 
plugins is a 
        good basis.
        For checking the many output artifacts from a build, future buildinfo 
file [1] 
        should help a lot. I still have many usability concerns for Maven 
multi-module 
        builds (starting with: should we generate only the root buildinfo or 
one 
        buildinfo per Maven module?)
        Let's keep the ball rolling: today, it's plugins release day!!!
        
        Regards,
        
        Hervé
        
        [1] https://reproducible-builds.org/docs/jvm/
        
        Le vendredi 1 novembre 2019, 13:34:32 CET Christofer Dutz a écrit :
        > Hi,
        > 
        > so I just updated the versions of the 3 plugins and gave the Apache 
PLC4X
        > build a little spin ...
        > https://github.com/apache/plc4x/tree/feature/reproducible-builds
        > 
        > Did two executions of this: 
        > mvn -U -P
        > 
with-boost,with-java,with-dotnet,with-cpp,with-python,with-proxies,with-san
        > dbox,with
        > 
-DaltDeploymentRepository=snapshot-repo::default::file:./local-snapshots-di
        > r clean deploy
         (but with a different second local repo location)
        > 
        > Then I used "diff" and "cmp" to compare individual files and it 
didn't show
        > differences with the artifacts I chose ... 
         now I guess I'll have to whip
        > up some little bash script to sort of compare the artifacts from one
        > directory with the other (Unfortunately the SNAPSHOT timestamps are a
        > little annoying :-/ 
        > We do have some C++, C# and Python modules ... but I wouldn't expect 
the C++
        > and C# to be reproducible.
         
        > Chris
        > 
        > 
        > Am 01.11.19, 12:04 schrieb "Hervé BOUTEMY" <herve.bout...@free.fr>:
        > 
        >     Le vendredi 1 novembre 2019, 09:40:40 CET Christofer Dutz a écrit 
:
        > 
        >     > Hi Herve,
        >     > 
        >     > thanks for that will try it asap and report any findings back.
        >     > 
        >     > But good to know that there is a difference between JDK major 
versions
        >     > and
        >     > OSes ... so it would probably be best to stage releases on 
Linux with
        >     > an
        >     > OpenJDK of the minimum supported version?
        >     > Just thinking how to make it
        >     > possible to verify without having to buy Mac or Windows 
licenses ...
        >     > guess
        >     > on every machine you could whip up a Ubuntu VM for 
verification. Just
        >     > thinking about it ... perhaps it would be best to create a 
Docker
        >     > image for
         doing the reproducible stuff ...
        > 
        >     just to be clear: the difference is on newline only, then Windows 
vs
        > anything 
         else. You get the same result on Linux, MacOS, FreeBSD, or any
        > other Unix. 
        >     And if I want to be complete, if you get a source tarball from 
Windows,
        > 
         extract it to a Linux/MacOS/... box and build with "mvn -
        >     Dline.separator='\r\n'", in general, you get the same result as a 
build
        > under 
         Windows: I tested multiple times, it worked, but we'll see if it
        > works always or just "in general"
        >     
        > 
        >     > Are there any plans on creating a plugin to allow verification?
        >     > 
        >     > Sort of something like this:
        >     > "mvn package release:verify-reproduicble
        >     > -DstagingRepoUrl=a.b.c.de/repo/blahblahblah"
        >     > (Which doesn't deploy the
        >     > artifacts, but instead download them and do a binary 
comparison) 
        > 
        >     yes, but for now it was completely another form: this is the 
"Buildinfo
        > file" 
         proposal https://reproducible-builds.org/docs/jvm/
        >     that I stopped to work on 1 year ago given I had no chance to get 
the
        > same 
         output: it's now a good time to restart working on it as next steps 
        >     
        > 
        >     > Also it could be great if the release-plugin could 
automatically set
        >     > the
        >     > property:
        >     > a) if it finds the "project.build.outputTimestamp" set to some
        >     > placeholder value b) if some switch tells it to prepare a
        >     > reproducible
        >     > build by using some sort of "switch" parameter 
        >     > Guess that would sort of close the loop to get the biggest 
benefit out
        >     > of
        >     > the reproducible builds.
        > 
        >     +1
        >     issue has been created
        > https://issues.apache.org/jira/browse/MRELEASE-1029
         But I didn't work on
        > it yet, help welcome
        >     
        > 
        >     > I would be happy to help as I think this is one
        >     > of the greatest new features. (Ok ... perhaps besides the
        >     > sound-output-extension I learned about yesterday ;-) ) 
        > 
        >     +1
        >     the current step is important, but it's only the beginning of the 
story
        > from 
         an effective usage perspective
        >     
        >     Regards,
        >     
        >     Hervé
        >     
        > 
        >     > 
        >     > Chris
        >     > 
        >     > 
        >     > Am 01.11.19, 09:24 schrieb "Hervé BOUTEMY" 
<herve.bout...@free.fr>:
        >     > 
        >     > 
        >     >     Le jeudi 31 octobre 2019, 17:26:52 CET Christofer Dutz a 
écrit :
        >     > 
        >     > 
        >     > 
        >     >     > Hi all,
        >     >     > 
        >     >     > as I can see you're voting on releasing the reproducible 
build
        >     >     > extended
        >     >     > plugin versions.
        >     > 
        >     > 
        >     > 
        >     >      Is there any documentation on how to use this new
        >     > 
        >     > 
        >     > 
        >     >     > feature?
        >     >     > 
        >     >     > I had a look at the confluence page, but that seemed like 
a
        >     >     > brainstorming
        >     >     > session.
        >     > 
        >     > 
        >     > 
        >     >     ok, the Wiki page [1] started as a brainstorming session, 
was
        >     >     updated to
        >     > 
        >     > a proposal (the "Output Archive Entries Timestamp" parapgraph).
        > 
        >      And now I
        > 
        >     > probably should order paragraph a little bit, and add a "Making 
your
        >     > build
        >     > reproducible" section for end uses to have a quick explanation. 
        >     > 
        >     >     I'll write the explanation here as a first try before 
working on
        >     >     the
        >     > 
        >     > Wiki:
        > 
        >      
        > 
        >     >     1. upgrade your plugins to reproducible version, 
particularly
        >     > 
        >     > mpaven-source-plugin, maven-jar-plugin and 
maven-assembly-plugin to
        >     > vesion
        >     > 3.2.0
        > 
        >      2. add project.build.outputTimestamp property with the timestamp
        > 
        >     > value that will be used in zip/jar/tar archives: <properties>
        >     > 
        >     >        
        >     > 
        >     > 
<project.build.outputTimestamp>2019-10-02T08:04:00Z</project.build.out
        >     > putTi
         mestamp>
        > 
        >      </properties>
        > 
        >     >     
        >     >     Notice:
        >     >     - there is no Maven version prerequisite, everything 
happens at
        >     >     plugins
        >     > 
        >     > level
        > 
        >      - Reproducible Builds require to have no version ranges in
        > 
        >     > dependencies, generally gives different result on Unixes vs 
Windows,
        >     > and
        >     > generally depend on the major version of JDK used to compile 
(see "Out
        >     > of
        >     > Scope" paragraph) 
        >     > 
        >     >     You have the basis configured, the output should be 
reproducible
        >     >     now.
        >     >     If something is still not reproducible, use diffoscope to 
find
        >     >     the
        >     > 
        >     > unstable output, find the plugin that generated this output and 
check
        >     > if
        >     > there is a reproducible version available: if not, please open 
an
        >     > issue to
        >     > help plugin maintainers improving Reproducible Builds support at
        >     > every
        >     > plugin level.
        > 
        >      
        > 
        >     >     [1] 
        >     > 
        >     > 
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=74682
        >     > 318
        > 
        >      
        > 
        >     >     
        >     >     
        >     >      
        >     > 
        >     > 
        >     > 
        >     >     > I would love to add this to the PLC4X build asap.
        >     > 
        >     > 
        >     > 
        >     >     I'd love to have feedback
        >     >     Don't hesitate to ping me.
        >     > 
        >     > 
        >     > 
        >     >     > 
        >     >     > So I would like to test the release-candidates and vote 
too.
        >     > 
        >     > 
        >     > 
        >     >     I would love to have many tester and votes :)
        >     >     
        >     > 
        >     > 
        >     > 
        >     >     > 
        >     >     > Chris
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > Am 16.10.19, 14:42 schrieb "Hervé BOUTEMY"
        >     >     > <herve.bout...@free.fr>:
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     >     Le mercredi 16 octobre 2019, 13:40:48 CEST Andreas 
Sewe a
        >     >     >     écrit :
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     >     > Emmanuel Bourg wrote:
        >     >     >     > 
        >     >     >     > 
        >     >     >     > 
        >     >     >     > > Le 16/10/2019 à 08:35, Hervé BOUTEMY a écrit :
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > >> last question: now that we seem to fully 
understand
        >     >     >     > >> each
        >     >     >     > >> other,
        >     >     >     > >> does it
        >     >     >     > >> mean that you don't need any more "seconds since 
the
        >     >     >     > >> epoch"
        >     >     >     > >> format
        >     >     >     > >> support for the property?
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > If Maven supports the SOURCE_DATE_EPOCH 
environment
        >     >     >     > > variable
        >     >     >     > > I
        >     >     >     > > don't
        >     >     >     > > think that's necessary, otherwise it would be 
nice to be
        >     >     >     > > able
        >     >     >     > > to
        >     >     >     > > invoke
        >     >     >     > > 
        >     >     >     > > Maven with:
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > >    mvn package
        >     >     >     > >    
-Dproject.build.outputTimestamp=$SOURCE_DATE_EPOCH
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > 
        >     >     >     > > and this means supporting a timestamp formatted as
        >     >     >     > > seconds
        >     >     >     > > since
        >     >     >     > > the
        >     >     >     > > epoch.
        >     >     >     > 
        >     >     >     > 
        >     >     >     > 
        >     >     >     > 
        >     >     >     > +1
        >     >     >     > 
        >     >     >     > The above would be a nice, simple way of bridging 
the gap
        >     >     >     > between
        >     >     >     > SOURCE_DATE_EPOCH and project.build.outputTimestamp.
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     >     told like that, ok, why not
        >     >     >     
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     >     > 
        >     >     >     > If it is not too much trouble to implement the "\d+ 
->
        >     >     >     > seconds
        >     >     >     > since
        >     >     >     > epoch" heuristic, them I would love to see it 
included.
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     >     ok, I'll do and prepare the release
        >     >     >     
        >     >     >     Regards,
        >     >     >     
        >     >     >     Hervé
        >     >     >     
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     >     > 
        >     >     >     > Best wishes,
        >     >     >     > 
        >     >     >     > Andreas
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     > 
        >     >     >     
        >     >     >     
        >     >     >     
        >     >     >     
        >     >     >     
        >     >     >     
------------------------------------------------------------
        >     >     >     ------
        >     >     >     ---
        >     >     >     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
        >     >     
        >     >     
        >     > 
        >     > 
        > 
        >     
        >     
        >     
        >     
        >     
        >     
---------------------------------------------------------------------
        >     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
    
    
    ---------------------------------------------------------------------
    To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
    For additional commands, e-mail: dev-h...@maven.apache.org
    
    

Reply via email to