As work continues on creating Digital Shopfront CMS (which you can get biweekly updates on my YouTube channel), I wanted to take a moment to explain the repository structure.
I’m not under any delusion that suddenly a ton of people will descend on it to help out, but I figure taking the time to explain some things now will help in the long run. If there is some sort of mass influx of contributors in the future, at least I’ll have somewhere to point them to explain things.
And it might be helpful for you if you’re trying to figure out the best structure for your project.
So let’s dive in.
Why Use GitLab Over GitHub?
So the first question I know I’ll get is why I’m using GitLab over GitHub.
I’ve kind of explained that in a previous blog post, but the short answer is that I started using it when GitHub didn’t have private repositories, and I’ve really just stuck with it ever since.
I find that it’s much easier to organize and keep track of all of my projects. I love the group structure so that I can keep large projects separate from each other. If you check out the repo, you’ll see through the breadcrumbs that there are more projects for other things, such as the Crosswinds Framework as well as many private repositories.
Plus, I love the label structure, namely that I can define labels at a top group level and every project will automatically have access to those labels. And the issue Kanban boards are much easier to use.
In short, I find it a much better user experience for what I like to do.
Digital Shopfront Group Structure
I tried to create the structure of the group in an easy to follow manner.
So under the main group, there is a group for the CMS Core, the packages for the CMS and the website/marketing for the CMS (although that is private at the moment).
The names of the subgroups should give away what will go inside of those. Anything for the core of Digital Shopfront CMS will go in the core group, while packages for the CMS (like components, icons, accessibility, SEO, etc.) will go in the packages group.
There will likely be additional groups for plugins and themes with further subdivision by category/type.
How You Can Contribute to the Project
The quickest way to get started contributing to Digital Shopfront is to check out the contributing doc in the repository group. But here’s a quick overview.
First off, you don’t have to contribute code to contribute to the project. Writing documentation, testing the CMS and even sharing the project through social media or your blog is contributing. And every bit helps. So don’t feel like you have to be an expert programmer to contribute.
And second, don’t be a jerk and be respectful to others who are contributing. I feel like this should both be the bare minimum and something I shouldn’t have to say, but considering gestures wildly everything going on in the world these days, it has to be said. I’m not going to tolerate people who are jerks and make others feel unsafe. You can see specifics in the contributing doc.
But other than that, feel free to take a look at any open issue and work on it. For core issues, I would definitely appreciate a heads up on any issue you want to tackle so we can talk about it and what I had in mind.
So have at it!
Future of the Repository
So what is the future for the Digital Shopfront CMS repository?
Well, there will definitely be more packages being added to that group as more of the CMS gets built.
There will also be groups and repositories for plugins/extensions that get built over time. Those will likely be further grouped by topics (i.e. ecommerce, marketing, analytics, etc.).
And then, of course, there will be repositories for the themes that are built.
But outside of that, I’m not sure what the repository structure will be like. Hopefully there are some people that come aboard and we can decide that together.