JCB Packaging Engine Documentation #995
Pinned
Llewellynvdm
started this conversation in
Documentation
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
📦 Introduction
The JCB Packaging Engine is a powerful system for exporting, importing, and synchronizing component entities using Git-based repositories. It replaces the legacy ZIP-based packaging approach from Joomla 3 with a modular, repository-centric system that supports collaboration, versioning, and reuse.
This guide walks you through the entire process, from initializing repositories to pushing changes — tailored for both beginners and seasoned JCB developers.
🧱 Core Concepts
Entities That Can Be Packaged
You can package and version control the following entities:
Target Contents (Packaging Channels)
To organize packaging logic, entities are grouped into six target content types:
🚀 Getting Started with Repositories
Setting Up the Repo Index
To access the global demo repositories:
Navigate to Repositories in JCB.
Click New and fill in the following:
joomengine
repoindex
master
GitHub
repositories
global
Click Save & Close.
Initializing the Index
✔️ This pulls all the core repositories into your JCB environment.
📘 Demo Components Included
Once initialized, the following demo components become available:
These demos showcase various real-world design patterns and advanced usage of JCB.
🛠 Button Flow: Init → Reset → Push
Each packagable entity has 3 control buttons:
🔹 Init
🔹 Reset
🔹 Push
Sends your local version to the repository.
Requires:
Note: JCB will push to all active repositories matching the entity's target content.
To restrict this:
🔐 GitHub Token Setup
To push to GitHub:
Option 1: Global
Option 2: Per-Repository Override
📂 Linking & Dependency Resolution
When importing or resetting:
To control which version is used:
🧰 Developer Workflow Example
Create a New Repository for Your Work
field_types
,packages
, etc.).Push Your Entity
✔️ You’ve now contributed your entity to version control.
📤 Fork & Pull Request Workflow (For Global Repos)
To contribute to global repositories:
joomengine/packages
).⚙️ Tips & Best Practices
✅ Conclusion
The JCB Packaging Engine is designed for collaborative development, version control, and simplified sharing of reusable Joomla component structures. It provides a future-proof and modular approach to extension development.
By using
Init → Reset → Push
along with the right repository setup, you can rapidly scale and share your work within teams, client contexts, and the Joomla community.For more help, visit: https://github.com/joomengine/repoindex
Or join the discussion at: https://github.com/orgs/joomengine/discussions/995
Beta Was this translation helpful? Give feedback.
All reactions