Skip to main content

Version-Aware Build ID Assignment

Ensuring that every package you release is identifiable, verifiable, and maintainable

What It Does

Whenever you compile a component in JCB, it generates a build ID that includes:

  • The semantic version (e.g. 1.2.4)
  • A unique hash or timestamp
  • A reference to the compiler and JCB version used

This build ID is:

  • Embedded into the componentโ€™s manifest XML
  • Shown in the JCB compiler UI
  • Optionally injected into the codebase as a constant or variable

Where It Appears

  • In your componentโ€™s manifest.xml file (as version, build metadata, or changelog)
  • In the JCB backend under Compiler โ†’ Build Summary
  • Inside the compiled PHP files (e.g. defined constant or injected comment)
  • Optionally written into logs, dashboards, or update server metadata

Why It Matters

  • โœ… Traceability: Every package has a traceable identity, even if its version number hasnโ€™t changed. You can always determine which compile produced which output.
  • โœ… CI/CD Integration: Automate deployments with confidence, using build IDs to tag releases in Git, on update servers, or in changelogs.
  • โœ… User Support: Support teams can instantly identify what version and build a customer is running โ€” even if manually modified.
  • โœ… Multi-Version Awareness: For J3, J4, and J5 builds, each version-specific compile will include its own build ID โ€” helpful for maintaining compatibility without confusion.

Configuration Options

In JCB you can:

  • Enable/disable build ID generation in the compiler settings
  • Choose a format (e.g. timestamped, UUID, hash of source)
  • Set naming conventions for output ZIP files (e.g. mycomponent_1.2.4+build20250702.zip)
  • Include/exclude build metadata in source comments

Use Cases

  • ๐Ÿ” Daily builds with unique IDs for QA teams
  • ๐Ÿ“ฆ Nightly builds for public testing
  • ๐ŸŒ Publish build ID to update servers or changelogs
  • ๐Ÿงช Compare builds even when version numbers remain the same
  • ๐Ÿ› ๏ธ Restore or rollback to a specific build in distributed environments

Best Practices

  • Keep build ID tracking enabled for production builds
  • Use semantic versioning + build metadata for clarity
  • Store build IDs alongside Git commits or packaging logs
  • Display the current build ID inside the componentโ€™s About screen

Conclusion

Version-aware build IDs are a subtle but powerful feature that bring professionalism, reproducibility, and clarity to your component lifecycle. Whether working alone or in a team, they help ensure that every package you release is identifiable, verifiable, and maintainable.

Summary

JCB automatically generates unique build identifiers that are tied to the version number and timestamp of each compiled package. This ensures traceability, reproducibility, and clarity in distributed builds โ€” especially across teams, environments, or CI/CD pipelines.