๐งฉ Architecture & Core Logic
- Super Powers
- Joomla Powers
- Compile Native Components, Plugins & Modules
- Multi-Version Support
- Conditional Logic Injection
- Reusable Admin Views
- Dynamic GET Builder
- Round-Trip Code Integration
- Custom Admin Views
- Site Views
- Dynamic Dashboards
- Model Linking Between Views
- Shared Field Reuse Across Views
- Drag & Drop Field Mapping
- Dynamic Field Visibility
- Independent Packaging
๐ Joomla CMS Integration
๐งฑ Custom Code System (Powerful Dual Feature)
๐ Field Type System
๐ Snippets, Templates, Layouts, Libraries
- Snippets Reusable Html Blocks
- Layouts Reusable Php Render Templates
- Templates Page Level Views Linked To Custom Admin Site Views
- Libraries JS CSS Assets Linked To UI
- CDN Local Toggle For Library Delivery
- Media Folder Injection With Override Support
- Repository Push Pull Reset Workflow
- Init Snippets Layouts Templates Via Gui
๐ฆ Packages
๐งฉ Architecture & Core Logic
๐ File & Code Management
๐ง Code Reuse & Blueprints
๐ Joomla CMS Integration
๐จ Visual GUI & UX
๐ Internationalization
๐ฆ Packaging & Distribution
โ๏ธ Compiler Engine Features
๐งฑ Custom Code System
๐ Field Type System
๐ Dynamic GET (Visual SQL Engine)
๐ Snippets, Templates, Layouts, Libraries
๐ Documentation & Metadata
๐ Analytics & Insights
๐งฉ Architecture & Core Logic
- Super Powers
- Joomla Powers
- Compile Native Components, Plugins & Modules
- Multi-Version Support
- Conditional Logic Injection
- Reusable Admin Views
- Dynamic GET Builder
- Round-Trip Code Integration
- Custom Admin Views
- Site Views
- Dynamic Dashboards
- Model Linking Between Views
- Shared Field Reuse Across Views
- Drag & Drop Field Mapping
- Dynamic Field Visibility
- Independent Packaging
๐ Joomla CMS Integration
- Token Integration
- ACL Per View, Field, Item
- Field-Based Joomla Config Generation
- Support For Joomla Categories/Tags/Custom Fields
- CLI-Ready Components
- Joomla Update Server Integration
- Version-Aware Language String Compilation
- Remote Publishing to Custom Repo Update Streams
๐ Field Type System
- Field Types Define Templates And Data Types
- Gui Defined Rules Required Unique Nullable
- Save Get Hooks Per Field
- Database Schema Auto Generated From Field Settings
- Per Display Field Rendering Config List Edit
- Create Dynamic Models With Modals Selectors
- Conditional Js And Css Per Field
๐ Snippets, Templates, Layouts, Libraries
- Snippets Reusable Html Blocks
- Layouts Reusable Php Render Templates
- Templates Page Level Views Linked To Custom Admin Site Views
- Libraries JS CSS Assets Linked To UI
- CDN Local Toggle For Library Delivery
- Media Folder Injection With Override Support
- Repository Push Pull Reset Workflow
- Init Snippets Layouts Templates Via Gui
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.