Please note we have a code of conduct, please follow it in all your interactions with the project. To contribute to this project directly send in a pull request. Here are some guidelines for this:
You should first fork a repository on GitHub. This step is needed only once. See complete help in GitHub.
You should clone your fork. This step is needed only once. Using try as example;
git clone [email protected]:YOUR-NAME/try.git
cd docs
git remote add upstream https://github.com/oscghana.git
git fetch upstream
Create a branch per set of changes; e.g. to fix a problem or add a feature;
git checkout -b BRANCH-NAME
Your BRANCH-NAME can be anything, other than master. The scope is your forked repository. The branch name will be shown on pull-requests.
Change files, and commit. Commit messages are kept by git, and are used later when problems are being solved. When writing a commit message;
- start with one line summary of the change;
- leave a blank line after the summary;
- explain the problem that is solved, unless the summary makes it obvious;
- when the problem was introduced by a previous commit, mention the hash;
- when the problem is in an issue or ticket, add "Fixes #34";
- avoid mentioning GitHub or other pull-requests, as these are not kept in git;
- avoid mentioning any tasks or irrelevant words ; use pull-request comments instead; and
- make use of british english in spellings imperative mood
Make one or more commits and push the branch to your repository;
git push origin BRANCH-NAME
Send a pull-request for your branch. Navigate to your repository page in GitHub, switch to the branch you made, and then press the Pull Request button.
When writing a pull-request message;
- if there is only one commit, begin with the GitHub default of the commit message, otherwise write a summary of the series of commits;
- link to any relevant pull-requests, issues, or tickets; and
A review will happen in the pull-request, and a reviewer will either;
- merge, squash, or rebase your commits;
- merge your commits with their own changes;
- ask you to make changes; or
- close and reject your pull-request giving reasons.
When they ask you for changes, you may have to change both files, commits or commit messages.
When squashing commits to different files, use interactive rebase.
git rebase -i master
After resolving any conflicts, push the changes to the same branch;
git push --force origin
Then respond on the pull-request.
When there has been upstream commits while your pull-request was open, you should rebase your pull-request;
git pull --rebase upstream
Then push the changes to the same branch;
git push --force origin
The pull-request will be updated.
When there has been upstream commits since your fork was made, you should bring these into your fork:
git checkout master
git pull upstream
git checkout BRANCH-NAME
We encourage testing before merging a pull-request.
So instead of merging directly with the "merge" button on GitHub, we may do a local merge, then test, then push.
See GitHub help on merging a pull-request.
The GitHub page for the pull-request will provide you the right commands to do the local merge, similar to the following.
Get the changes from that branch to a new local branch:
git checkout -b SOME-USER-topic1 master
git pull https://github.com/SOME-USER/doc.git topic1
Test! If everything is fine, merge:
git checkout master
git rebase SOME-USER-topic1
git push origin master
-
The project should be an open source project. (Do well to have a well outlined contribution procedure to help others easily contribute)
-
Verify that the project yet to be added does not already exist in the project list.
-
You can easily verify from the website by searching for the project name with additional filters if required.
-
Or open the projects.json and search through.
-
-
Ensure that you are the rightful owner/author of the project yet to be added. If you are a contributor/maintainer or any other, ensure you have been permitted to share the projet on this platform.
-
In projects.json, add a
JSON
entry of the project.-
Your
JSON
entry should have :- Project name
- URL to your Github project repository
- Project description
- Github Username
- Github Usernames of other contributors
- Author's country of origin (Must be African)
- Twitter handle
-
Example of a
JSON
entry:{ "name": "made-in-africa", "github_url": "https://github.com/by-africans/open-source-projects", "description": "A list of projects by Africans", "author_github": "by-africans", "other_contributors": ["by-africans", "fosuniverse"], "author_country": "Ghana", "author_twitter": "by_Africans" }
-
We use GitHub issues to track public bugs related to byafricans.org . Report a bug by opening a new issue; it's that easy!
Below is a list of African countries. Do well to make reference to the list to add up to you JSON entry.
- Algeria
- Angola
- Benin
- Botswana
- Burkina Faso
- Burundi
- Cabo Verde
- Cameroon
- Central African Republic (CAR)
- Chad
- Comoros
- Congo, Democratic Republic of the
- Congo, Republic of the
- Cote d'Ivoire
- Djibouti
- Egypt
- Equatorial Guinea
- Eritrea
- Swaziland
- Ethiopia
- Gabon
- Gambia
- Ghana
- Guinea
- Guinea-Bissau
- Kenya
- Lesotho
- Liberia
- Libya
- Madagascar
- Malawi
- Mali
- Mauritania
- Mauritius
- Morocco
- Mozambique
- Namibia
- Niger
- Nigeria
- Rwanda
- Sao Tome and Principe
- Senegal
- Seychelles
- Sierra Leone
- Somalia
- South Africa
- South Sudan
- Sudan
- Tanzania
- Togo
- Tunisia
- Uganda
- Zambia
- Zimbabwe
NOTE: Pull requests are usually reviewed within 24 hours. Once your pull request is merged, you should see your project on the site a few minutes after.