Thank you for considering contributing to my Replic project!
These guidelines are meant for new contributors, regardless of their level of proficiency; following them allows the maintainers my Replic project to more effectively evaluate your contribution, and provide prompt feedback to you. Additionally, by following these guidelines you clearly communicate that you respect the time and effort that the people developing Replic put into managing the project.
All interactions should be in English (or French for PR's review), to allow everyone to understand and participate.
The goal of this project is to create a mirror repository of an another repository (currently it will only works with Epitech's repository).
- Documentation
- How to launch the project
- How to report a bug
- How to suggest a feature or enhancement
- Where can I ask for help?
- Coding style
- Commit format
- Labels
- Branches
- Pull Requests
- Milestone
- Testing Policies
- Author
There is no documentation for the moment. But you can maybe find some documentation in the code.
To launch the project, you need to install the following dependencies:
You will also need to install the following python packages:
- PyGithub 1.58.0
- coverage 7.2.7
- pytest 7.4.0
- pycodestyle 2.10.0
You can install them with the following command:
make install
/!\ Don't forget to install Python 3.10.6 and Pip before. /!\
To execute the project, there is help for it:
usage: main.py [-h] [--friend FRIEND] [--mirror-name MIRROR_NAME] [--commit COMMIT] sshKey
A beautiful mirror-generator.
positional arguments:
sshKey SSH key(s) to be added to the mirror repository.
options:
-h, --help show this help message and exit
--friend FRIEND, -f FRIEND
Can add friend to mirror repository.
--mirror-name MIRROR_NAME, -m MIRROR_NAME
Change the mirror repository name.
--commit COMMIT, -o COMMIT
change the first commit push to the main repository
(You can also use python3 main.py -h
for more informations)
If you find a bug, you can open an issue on the repository with bug report template.
If you want to suggest a feature or enhancement, you can open an issue on the repository with feature template.
You can ask for help to me or on the issue/PR.
(When interacting with me, please be a human being)
We use pep8 coding style for this project. You can use make coding_style
to check if your code is pep8 compliant and make coding_style_details
to have more details about the pep8 errors.
In the project, we use Angular Commit Convention
Each labels must be the type of the Issue.
Branch should have an automatic namming due to branch creation via issues. But if you create a branch from nothing you must use this template:
branch-name/branch-description
If you create a PR, you must use this template:
[pr name] pr description
(In most of the case, you can reuse issue name)
For each PR we'll have a code review, the PR must be approved by myself.
Look at the Testing Policies
Don't add to Replic github project except if the PR it.
Don't add to any Milestone of the project. If you doubt, ask it to me.
You can speak in French or English in the PR because I french and it's sometimes easier for me to talk in french above all for code review.
Milestone are used to organize the project. Each milestone must have a description and a due date. A milestone should be linked to an issue or a PR. A milestone should be linked to a set of functionnalities that makes the project works or a set of functionnalities that makes the project cohérent.
If you create a milestone, you must use this template:
[milestone-name] milestone description
Library: unittest
Please do unit tests if you can. We don't have a coverage goal for the moment.
We don't force you to do functional tests other than indicated in issues but if you can do it, it's better.
We have a really basic CI at the moment.