Hi Hervé,

On 29.09.19 11:19, Hervé BOUTEMY wrote:
regarding the property name, I had an idea:

why not do like we already did for  ${project.build.sourceEncoding}, ie. mimic
a future element in pom.xml, in build?

could be project.build.timestamp?


This sounds like the best idea...


This would mean to define something like this:

<properties>
  <project.build.timestamp>..</project.build.timestamp>
</properties>

But now there are coming up some questions:

* Is that the real value to be used?
* Or should it activate the mechanism ? (boolean?)

<properties>
  <project.build.timestamp.usage>true</project.build.timestamp.usage>
</properties>


* Or should we use it by default and giving the user the opportunity
  to overrite the current timestamp by fixed timestamp for building ?
  This means we would define only the real time to be used during
  building. No need for a kind of activation etc.
  So you could call Maven via:

  mvn -Dproject.build.timestamp=... package


* Or do we need a combination of the above

  First activate, define the format and the timestamp to be used.


Furthermore do we need to define a format either which could look like this:

<properties>
  <project.build.timestamp.usage>true</project.build.timestamp.usage>
  <project.build.timestamp>..</project.build.timestamp>
  <project.build.timestamp.format>ISO-8601</project.build.timestamp.format>
</properties>


Kind regards
Karl Heinz Marbaise


Le samedi 28 septembre 2019, 17:55:24 CEST Hervé BOUTEMY a écrit :
Achieving Reproducible Builds require only one parameter: plugins that
create zip or tar archives require a fixed timestamp for entries

Putting that parameter as a pom property with a well known name and value
format permits to share the configuration between every packaging plugin.
This also has the advantage that child poms will inherit from parent value,
and eventually override.

The question is: *what property name and what value format should we keep?*

For the PoC, I chose to extrapolate from a convention from Reproducible
Builds project, which is very Linux-oriented: SOURCE_DATE_EPOCH environment
variable, that I transformed into source-date-epoch property name, keeping
the "date + %s" value
https://reproducible-builds.org/docs/source-date-epoch/


But I feel we can do a more user-readable solution by choosing another name
and format, like "reproducible-build-timestamp" with an ISO-8601 combined
date and time representation


WDYT? Any other idea?

Regards,

Hervé



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

Reply via email to