fabric
fabric copied to clipboard
[Feature request]: Split the repo
What do you need?
Proposal for Repository Reorganization: Fabric Project
Background
The Fabric project has evolved significantly since its inception, growing in both scope and complexity. Initially focused on providing a repository of curated prompts, it has expanded to include a command-line script for calling the LLM wrapper and a basic Electron app for those who prefer a GUI over CLI. As the project continues to grow, it's becoming increasingly important to organize our codebase in a way that promotes clarity, ease of use, and scalability.
Proposal
I propose to reorganize the current Fabric repository into three separate repositories, each dedicated to a specific aspect of the Fabric project:
-
fabric_core: This repository will contain the core functionality of the Fabric project, including the LLM wrapper and the base code that is essential for the project's operation.
-
fabric_patterns: Dedicated to the repository of curated prompts that form the heart of the Fabric project. This will allow for easier management, contribution, and usage of the prompts independently of the other components.
-
fabric_community: This repository will house the community-driven developments, including the basic Electron app and potentially other community-contributed clients or tools in the future.
Branching Strategy for Each Repository
For each of the proposed repositories, we will adopt a simplified yet effective branching strategy to streamline development and releases:
-
main: The default branch that reflects the latest stable version of the project. It is used for production releases.
-
development: This branch is where active development takes place. Features, fixes, and improvements are merged into this branch before being tested and finalized for release to the main branch.
Rationale
This reorganization supports the project's main value - the curated prompts repository - by giving it a dedicated space that can be independently managed and scaled. Furthermore, it aligns with the best practices of software development, where separation of concerns allows for clearer focus, easier maintenance, and more straightforward contributions from the community.
By separating the CLI script and the Electron app into their own or respective repositories, we ensure that the usage of prompts remains independent of the client implementation. This not only makes the project more modular and flexible but also encourages innovation and experimentation within the community.
Really really love this.
I think I'm going to leave this here, or we can put it in Discussions. For a long-term upgrade. @danigoland has been talking about something similar for a while.
I can work on this immediately. Let me know how can I make it happen. One other repo would for the online documentation.
I think we should definitely split the repo into sub repos, I made a "fabric-patterns" repo locally with some scripts to automate the README(has a table with all of the patterns) update and a checksum file creation.
I think it makes sense to have all of the repos under a Github Org.
I also created a static repo with the template directory to be able to pull from it prompts. I already start using it in a sample app I wrote for mobile devices.
If you're going to split into several repos, you might consider moving them to a new fabric
GitHub org, so you'd end up with github.com/fabric/core, github.com/fabric/docs, github.com/fabric/patterns, etc.