๐งฉ 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
Compare Current vs Previous Builds
Summary
Track structural and functional changes between component versions by comparing metadata from each build โ enabling changelog generation, consistency checks, and regression detection without manual audits.
๐ What This Feature Does
JCB stores snapshot metadata for each successful compilation of a component. This data includes:
- Build date and time
- Line count (PHP, HTML, INI, etc.)
- Field count
- View count
- Total number of files/folders generated
- ZIP package size
- Version number and semantic version tag
- Blueprint checksum (unique hash per blueprint state)
With this info, JCB can compare current vs previous builds to detect differences between two compiled versions.
๐งญ Where You See It
- Inside the Compiler summary screen (metrics for current and last build)
- Optionally exported as
metadata.json
with each compiled ZIP package - Available as variables in the auto-generated README
- Potential integration into external CI/CD pipelines or GitHub Actions
๐ Use Cases
- Automatically generate changelogs based on diffs
- Detect blueprint changes (e.g. new fields, removed views, altered layouts)
- Identify regressions or unexpected growth in line count or ZIP size
- Cross-check field, file, or line counts across component versions
- Audit development trends โ is your blueprint growing rapidly?
๐ How It Works
JCB compares metadata stored in your componentโs history:
- If using Git for blueprints, diffs are shown per commit
- You can use the Reset / Rebuild tools to compare output
- CLI tools or metadata exports can automate diffing across builds
๐ Pro Tip
To enable deeper comparisons:
- Keep a changelog file with each compiled version
- Export build metadata to Git
- Use JCBโs reset/fork system to store and compare blueprint variants
โ Why It Matters
Even with 100+ features, Joomla components often change subtly across versions. With automatic comparisons, JCB helps you detect:
- Regression bugs introduced accidentally
- Views accidentally removed or renamed
- Line count or field inflation
- Missed version bumps after blueprint changes
You stay informed and in control โ without needing to manually diff code or blueprint JSON exports.
๐ Conclusion
Comparison between builds is essential for quality assurance. Whether youโre releasing nightly builds, maintaining stable packages, or just checking your own work โ this feature ensures that every JCB component evolves in a predictable and traceable way.