GitRoot

craft your forge, build your project, grow your community freely

Contribution guidelines

Any issues or suggestions are welcome at https://gitroot.dev.

Code of conduct

Interaction within this project is covered by the Code of Conduct.

Scope and design goals of GitRoot

GitRoot has a finite scope. Its purpose is to manage repositories and users. Everything else should be added into plugins. Contributions contradicting this purpose are unlikely to be accepted.

GitRoot is responsible for security, and managing user permissions. If your contribution is not related to this, you should write a plugin.

If you are unable to write the plugin you need, please open an issue to discuss whether GitRoot can handle the work.

Plugins hosted on GitRoot itself should be open-source and serve the community. Contributions to create a new plugin may be refused at any time, for any reason (we don’t have the manpower required to maintain all plugins).

Creating issue/feature request/other

To discuss about anything you should create an “issue”. To do that, clone and make a file:

After that a maintainer will review your branch and merge it into the default branch.

These instructions follow the classic usage of any GitRoot instance.

Adding code

To add some code into GitRoot project (called pull-request, merge-request or request-merge) , you need to create a branch with a unique name, and push it. Then, pull the changes made by the grafter plugin. By the way, this is what we call a graft in GitRoot.

You need to link an issue to any graft by moving the issues/issue.md to another directory (close today but can change). Review the instructions in the graft itself.

Graft file can be found in grafts/nameBranch.md. You can only find this file after you have pushed and pulled your branch.

Grafts do not need to be perfect. Not all the tests need to pass. A graft that is 80% complete is much better than no graft at all. We can work together to make the graft merge-ready, or the maintainers can finalise the graft for you.

The following steps are generally necessary for making a graft :

Set up local development

Follow instrcutions in the README.md

Make changes

This is the tricky part for which there is no development guide. You need to make changes somewhere in the code. If possible, do the following :

Commit and push to submit a graft

GitRoot is designed to help you for this stage. Commit and push you branch. Then pull changes to your branch and follow instructions in the newly created grafts/nameBranch.md file.