Remove the CanonicalizerPlugin!

Description

Corda has a script plugin in the buildSrc directory called CanonicalizerPlugin, which describes itself as:

Custom Gradle plugin that attempts to make the resulting jar file deterministic.
Ie. same contract definition should result when compiled in same jar file.
This is done by removing date time stamps from the files inside the jar.

However, Gradle supports deterministic jars already via these options to the Jar task:

  • preserveFileTimestamps = false

  • reproducibleFileOrder = true

so use these options instead, and then the CanonicalizerPlugin can DIE!

The CanonicalizerPlugin is used by the following modules:

  • finance/workflows

  • finance/contracts

  • confidential-identities

  • isolated

  • perftestcordapp (Enterprise)

i.e. the CorDapp modules. In fact, this "reproducible Jars" functionality should be part of the cordapp Gradle plugin!

Status

Assignee

Chris Rankin

Reporter

Chris Rankin

Labels

Feature Team

Select team

Story Points

None

Fix versions

None

Ported to...

None

Priority

Medium
Configure