[ENHANCEMENT]: Export and Import JCB-Packages #1214
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Enhancement Details
Is there currently a feature in Joomla 5 / JCB 5 to export and import JCB packages, similar to the functionality in Joomla 3 / JCB 3?
If not, will this functionality be implemented in JCB 5 and what is the estimated timeline?"
Best regards
heinzarden
I am referring to a previous comment:
"Llewellyn hat 2024-04-28 20:00:35 +00:00 kommentiert
This feature will also be removed to get the next stable version released, but it is also a very important part of JCB, and will be added back soon as we can.
Currently the normal Joomla upgrade path is the best way to move your JCB instance to the next version of Joomla and JCB. So making a clone of your development system (so you have the original Joomla 3 "with JCB 3" system as back-up to fallback unto), and then migrate it to Joomla 4, and then to Joomla 5, and then install JCB 5.0.0-rc1 and you will have migrated JCB to the newest version and still have all your component in JCB."
Which part of the extension will be affected by this enhancement?
No response
Additional Context
No response
We understand the importance of seamless component migration in JCB and want to assure the community that this feature is not only coming back but will be significantly improved. Our current development efforts are focused on rethinking the entire process of exporting and importing components, making it more robust, flexible, and scalable.
Progress & Key Improvements
Advanced Demo Component:
To bridge the gap in the meantime, we have significantly enhanced the demo component that ships with JCB. The latest version—JCB 5.1.1 Alpha 4—introduces the most advanced demo component we’ve ever released, showcasing JCB’s full capabilities, from basic to advanced features. This helps users understand how JCB works and provides a solid foundation for component development.
Global Unique IDs for Seamless Data Migration:
A major shift has been made in how entities within JCB link to each other. Previously, internal ID-based linking made data movement cumbersome. Now, fields, admin views, and components are connected via global unique IDs (GUIDs) instead of database IDs. This ensures that data can be transferred between different JCB installations without ID conflicts, making migrations much smoother.
Repository-Based Export & Import System:
We have already implemented a new approach to managing and sharing field types via a global repository. In the field type area, users now see an init, push, and reset system that connects to a shared repository.
This same architecture will be expanded to layouts, templates, admin views, and entire components, eventually allowing full component export/import through repositories. This will introduce multiple backup options at different levels, enabling granular control over component migration.
Future Vision: Complete Component Portability
With the repository-based system in place, JCB will support component-level migration, allowing users to push and pull entire components with all relationships intact. Thanks to the GUID-based architecture, we can eliminate ID conflicts and introduce mechanisms for merging or updating existing elements intelligently.
Ongoing Development & Prioritization
While we have already laid the groundwork for this system—first in the Power area, then in field types, and soon for layouts and templates—fully implementing it at the component level is a significant task. We are actively working on it but are balancing this effort with ongoing client projects. This means we cannot commit to a specific release date, but we are prioritizing it because we recognize its transformative impact on JCB.
Latest Updates: Joomla 5 Modal Select Field
In parallel with these improvements, we have successfully implemented the modal select field type for Joomla 5 components in the latest alpha release. This is a significant enhancement over the previous custom field type for creating table relationships, and we expect it to become the preferred method for such tasks moving forward.
Conclusion
The return of JCB’s export/import feature is not only certain but will be significantly better than before. By transitioning to GUID-based linking and a repository-driven migration system, we are ensuring that JCB remains the most powerful and flexible component builder available. This change will make it easier to move fields, layouts, admin views, and entire components across different systems while avoiding ID conflicts and streamlining collaboration.
We appreciate the community’s patience as we implement these improvements, and we are excited about the future of JCB. Stay tuned for further updates as we continue rolling out these advancements!
🚀 JCB Packaging Is Back – Reinvented, Repository-Driven, and Smarter Than Ever
We're happy to confirm that JCB's packaging system has not only returned but has been completely reengineered to offer a smarter, scalable, and repository-integrated workflow for exporting, importing, and sharing JCB assets.
This feature is fully available in the current beta version (5.1.1 Beta 2) and will be part of the next stable release. It's a huge step forward for portability, collaboration, and version-controlled development in Joomla.
✨ What Is JCB Packaging?
JCB Packaging is the name for what was previously known as “export/import.” It allows you to push and pull JCB data entities fields, layouts, templates, admin views, site views, libraries, and entire components to and from Git-based repositories such as GitHub and Gitea.
The system is smartly hierarchical:
This granular yet cohesive approach provides incredible flexibility for:
🧠 Key Technological Improvements
✅ 1. GUID-Based Linking
JCB now uses Globally Unique Identifiers (GUIDs) instead of numeric database IDs to track and associate relationships between entities. This eliminates ID conflicts when moving data between systems and makes cross-system compatibility seamless.
✅ 2. Native Repository Integration
The push/pull/reset operations are now embedded throughout JCB. Each entity type (components, views, fields, layouts, etc.) can be individually connected to a repository, either public or private.
This makes version control, collaboration, and rollback easier and safer than ever before.
🔄 How It Works: One Unified Contribution Workflow
JCB does not use ZIPs anymore. Instead, all packaging is handled via Git, and the workflow is consistent across all packaging systems:
Fork the Core Repository
👉 https://github.com/joomengine/packages
👉 https://github.com/joomengine/snippets
Add Your Fork to JCB
In the Repositories area of JCB, create a new repository entry.
Set the Content Type (e.g.,
Packages
,Snippets
,Field Types
, etc.).Provide:
main
)Push from Within JCB
Open a Pull Request
🧪 Get Involved: Help Us Test It
JCB 5.1.1 Beta 2 includes the fully functional packaging engine. This version ships with three demo components already available in the core package repository:
👉 https://github.com/joomengine/packages
You can explore, pull, and learn from them directly within JCB.
If you’ve upgraded via the official path (JCB 3 → JCB 4 → JCB 5), this repository will already be available in your instance. If not, you can manually add it via the repository manager in JCB.
We’re encouraging the community to:
🎁 The Demo Component
A significantly enhanced Advanced Demo Component is included in this release. It showcases JCB's full capabilities, including:
You can pull it directly from the packages repository if you missed it during install.
🐞 Reporting Issues or Requesting Features
💡 For bugs or technical issues, please open an issue here:
👉 https://git.vdm.dev/joomla/Component-Builder/issues
🧠 For discussions, ideas, and collaboration:
👉 https://github.com/orgs/joomengine/discussions
📦 In Summary
This is a major leap forward in how we build, maintain, and share components with JCB.
We’re excited to see how the community adopts and extends this new packaging system — and we welcome your participation in shaping its future!