Skip to content

Document implementation details of product binary generation in SignProducts.md#5603

Merged
laeubi merged 2 commits intomainfrom
copilot/enhance-signproducts-documentation
Nov 12, 2025
Merged

Document implementation details of product binary generation in SignProducts.md#5603
laeubi merged 2 commits intomainfrom
copilot/enhance-signproducts-documentation

Conversation

Copy link
Contributor

Copilot AI commented Nov 12, 2025

The SignProducts.md documentation explained how to sign products but not why the process works. Added implementation details section documenting the code flow through Tycho and Eclipse P2 that produces the binary zip files.

Changes

  • New "Implementation Details" section documenting the complete code flow:

    • PublishProductMojoPublishProductToolImpl → P2's ProductActionEquinoxExecutableActionModuleArtifactRepositoryAttachPublishedArtifactsMojo
    • Explains where binaries are packaged as zip files (P2's AbstractPublisherAction.publishArtifact() using FileUtils.zip())
    • Clarifies how ProductBinariesWriteSession determines Maven classifiers (e.g., product.executable.win32.win32.x86_64)
    • Documents artifact storage in target/ with p2artifacts.xml and local-artifacts.properties
  • Key classes reference for both Tycho and Eclipse P2 repositories

  • Technical rationale for zip format (multiple files per platform, P2 artifact model, Maven repository compatibility)

  • Extension points that enable the signing workflow (phase reordering, classifier extraction, filesystem access, repackaging)

Helps developers understand why Step 2 extracts zip files and why Step 4 repackages them—the binaries flow through P2's publisher as temporary zips before being stored as Maven artifacts.

Original prompt

Enhance SignProducts

The SignProducts.md currently explains HOW but not WHY.

We should add a new section in the bottom "Implementation details" (or similar naming) that explains where in Tycho P2 these things are actually happen.

For this we need to carefully analyze the code flow here that leads to the zip files we later exapnd. This not only need to be analyze the code in Tycho repo, but also to checkout https://github.com/eclipse-equinox/p2.git alongside with the Tycho code to find further source references.

Be careful some code might be copied from P2 here so be aware of duplicate types. Also in some cases we extends the P2 types to make the work happen in Tycho.

The best is to start investigation at the publish-products mojo as this is where the zip file is iniatally produced tha contains the binaries.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Documented the complete code flow for product binary generation in Tycho,
explaining where and how zip files are created. This includes:
- Entry point (PublishProductMojo)
- Tycho implementation (PublishProductToolImpl, ProductBinariesWriteSession)
- P2 integration (ProductAction, ApplicationLauncherAction, EquinoxExecutableAction)
- Artifact storage (ModuleArtifactRepository)
- Maven attachment (AttachPublishedArtifactsMojo)

Also included key class references and explanation of why binaries are zip files.

Co-authored-by: laeubi <1331477+laeubi@users.noreply.github.com>
Copilot AI changed the title [WIP] Add implementation details section to SignProducts.md Document implementation details of product binary generation in SignProducts.md Nov 12, 2025
Copilot AI requested a review from laeubi November 12, 2025 08:22
@laeubi laeubi marked this pull request as ready for review November 12, 2025 12:14
@laeubi laeubi enabled auto-merge (squash) November 12, 2025 12:15
@laeubi laeubi merged commit da22e1a into main Nov 12, 2025
17 of 29 checks passed
@laeubi laeubi deleted the copilot/enhance-signproducts-documentation branch November 12, 2025 12:15
eclipse-tycho-bot pushed a commit that referenced this pull request Nov 12, 2025
@eclipse-tycho-bot
Copy link

💚 All backports created successfully

Status Branch Result
tycho-5.0.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation and see the Github Action logs for details

eclipse-tycho-bot pushed a commit that referenced this pull request Nov 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants