├── .all-contributorsrc ├── .gitbook └── assets │ ├── 52054757972_a14c3175e6_o.jpg │ ├── NXTBC.png │ ├── OSCA Chapters Design Guide.pdf │ ├── OSCA Logo_Colored.png │ ├── nxtbc.png │ ├── osca-logo.png │ └── osca-logo_colored.png ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── greetings.yml ├── LICENSE ├── README.md ├── SUMMARY.md ├── about ├── community-code-of-conduct.md ├── faqs.md ├── guidelines.md ├── introduction.md ├── organization.md ├── team.md ├── terminology.md ├── the-osca-way │ ├── README.md │ ├── community-guidelines.md │ ├── core-contributors-communication.md │ ├── core-contributors-expenses.md │ ├── core-contributors-guidelines.md │ ├── governance.md │ └── values.md └── values.md ├── community ├── chapters │ ├── README.md │ ├── chapter-leads-application.md │ ├── chapter-leads-onboarding-guide.md │ ├── chapter-leads-onboarding.md │ ├── chapters-design-guide.md │ └── global-chapters-events.md ├── features.md ├── open-source-events.md ├── open-source-jobs.md └── roadmap.md ├── contributing ├── design │ ├── README.md │ ├── guidelines.md │ └── style-guide.md ├── documentation │ ├── README.md │ ├── guidelines.md │ ├── style-guide.md │ └── useful-resources.md ├── engineering │ ├── README.md │ ├── conventions.md │ └── guidelines.md └── issue-labels.md ├── expenses-and-getting-paid ├── edit-an-expense.md ├── expense-comments.md └── submitting-expenses.md ├── finance ├── approving-expenses.md ├── events.md ├── expense-policy.md ├── expenses-and-getting-paid │ ├── README.md │ ├── approving-expenses.md │ ├── edit-an-expense.md │ ├── scope.md │ └── submitting-expenses.md ├── faq.md └── tiers-and-goals.md ├── financial-contributors ├── individuals.md └── organizations.md ├── oss-programs ├── google-season-of-docs.md ├── google-summer-of-code.md ├── hacktoberfest.md ├── osca-open-source-challenge.md └── outreachy.md └── projects ├── osca-chapters-directory.md ├── osca-design.md ├── osca-discord-bot.md ├── osca-documentation.md ├── osca-twitter-bot.md └── osf-website.md /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | "README.md" 4 | ], 5 | "imageSize": 100, 6 | "commit": false, 7 | "contributors": [ 8 | { 9 | "login": "BolajiAyodeji", 10 | "name": "Bolaji Ayodeji", 11 | "avatar_url": "https://avatars2.githubusercontent.com/u/30334776?v=4", 12 | "profile": "https://bolajiayodeji.com", 13 | "contributions": [ 14 | "doc" 15 | ] 16 | }, 17 | { 18 | "login": "kodekage", 19 | "name": "Prosper Opara", 20 | "avatar_url": "https://avatars3.githubusercontent.com/u/30195980?v=4", 21 | "profile": "https://kodekage.tech", 22 | "contributions": [ 23 | "doc" 24 | ] 25 | }, 26 | { 27 | "login": "samswag", 28 | "name": "Samson Goddy", 29 | "avatar_url": "https://avatars3.githubusercontent.com/u/6048601?v=4", 30 | "profile": "http://samsongoddy.com", 31 | "contributions": [ 32 | "doc" 33 | ] 34 | }, 35 | { 36 | "login": "Kolokodess", 37 | "name": "Ada Nduka Oyom", 38 | "avatar_url": "https://avatars0.githubusercontent.com/u/13289217?v=4", 39 | "profile": "http://medium.com/kolokodess", 40 | "contributions": [ 41 | "doc" 42 | ] 43 | }, 44 | { 45 | "login": "Yomdroid", 46 | "name": "Ogheneyoma Obomate Okobiah", 47 | "avatar_url": "https://avatars0.githubusercontent.com/u/32799642?v=4", 48 | "profile": "https://github.com/Yomdroid", 49 | "contributions": [ 50 | "doc" 51 | ] 52 | }, 53 | { 54 | "login": "perriefidelis", 55 | "name": "Peace Ojemeh", 56 | "avatar_url": "https://avatars1.githubusercontent.com/u/30669761?v=4", 57 | "profile": "http://peaceojemeh.com/", 58 | "contributions": [ 59 | "doc" 60 | ] 61 | } 62 | ], 63 | "contributorsPerLine": 7, 64 | "projectName": "documentation", 65 | "projectOwner": "oscafrica", 66 | "repoType": "github", 67 | "repoHost": "https://github.com", 68 | "skipCi": true 69 | } 70 | -------------------------------------------------------------------------------- /.gitbook/assets/52054757972_a14c3175e6_o.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oscafrica/documentation/018e186ec4669eaf0f58a0dcfe15e68b7b5acfbf/.gitbook/assets/52054757972_a14c3175e6_o.jpg -------------------------------------------------------------------------------- /.gitbook/assets/NXTBC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oscafrica/documentation/018e186ec4669eaf0f58a0dcfe15e68b7b5acfbf/.gitbook/assets/NXTBC.png -------------------------------------------------------------------------------- /.gitbook/assets/OSCA Chapters Design Guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oscafrica/documentation/018e186ec4669eaf0f58a0dcfe15e68b7b5acfbf/.gitbook/assets/OSCA Chapters Design Guide.pdf -------------------------------------------------------------------------------- /.gitbook/assets/OSCA Logo_Colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oscafrica/documentation/018e186ec4669eaf0f58a0dcfe15e68b7b5acfbf/.gitbook/assets/OSCA Logo_Colored.png -------------------------------------------------------------------------------- /.gitbook/assets/nxtbc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oscafrica/documentation/018e186ec4669eaf0f58a0dcfe15e68b7b5acfbf/.gitbook/assets/nxtbc.png -------------------------------------------------------------------------------- /.gitbook/assets/osca-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oscafrica/documentation/018e186ec4669eaf0f58a0dcfe15e68b7b5acfbf/.gitbook/assets/osca-logo.png -------------------------------------------------------------------------------- /.gitbook/assets/osca-logo_colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oscafrica/documentation/018e186ec4669eaf0f58a0dcfe15e68b7b5acfbf/.gitbook/assets/osca-logo_colored.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: osca 2 | github: oscafrica 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 3 | 4 | #### What does this PR do 5 | 6 | #### Description of Task to be completed 7 | 8 | #### How should this be manually tested 9 | 10 | #### What are the relevant issues this PR belongs to 11 | 12 | # 13 | 14 | #### Any background context you want to add 15 | 16 | #### Screenshots 17 | -------------------------------------------------------------------------------- /.github/workflows/greetings.yml: -------------------------------------------------------------------------------- 1 | name: Greetings 2 | 3 | on: [pull_request, issues] 4 | 5 | jobs: 6 | greeting: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/first-interaction@v1 10 | with: 11 | repo-token: ${{ secrets.GITHUB_TOKEN }} 12 | issue-message: 'Hey, there! :wave:, We welcome all kinds of contributions, please feel free to contribute and/or ask questions.'' Someone will attend to your issue soon. :relaxed:' 13 | pr-message: 'Hey, there! :wave:, We welcome all kinds of contributions, please feel free to contribute and/or ask questions.'' Someone will attend to your PR soon. :relaxed:' 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Home 2 | 3 | ![](.gitbook/assets/NXTBC.png) 4 | 5 | [![All Contributors](https://img.shields.io/badge/all\_contributors-6-orange.svg?style=flat-square)](./#contributors-) [![Financial Contributors on Open Collective](https://opencollective.com/osca/all/badge.svg?label=financial+contributors)](https://opencollective.com/osca) [![OpenCollective](https://opencollective.com/osca/backers/badge.svg)](./#backers) [![OpenCollective](https://opencollective.com/osca/sponsors/badge.svg)](./#sponsors) 6 | 7 | *** 8 | 9 | **Open Source Community Africa** is for open-source lovers, enthusiasts, advocates, and experts within and across Africa with the sole aim of increasing the rate of credible contributions by African software developers, designers, writers, and everyone involved in the sphere of technology to open source projects both locally and globally, changing the perception of Africans from just the billion users to the **NEXT BILLION CREATORS**. 10 | 11 | Welcome to our documentation guide for members looking to know more about **Open Source Community Africa** and also make a contribution to any of our projects. To suggest changes, click the GitHub icon on any docs page and make a pull request. If you're unsure how to do that, kindly read the [documentation contribution guidelines](https://docs.oscafrica.org/\~/changes/xMDCL5DzAhhQl0q8bjTh/contributing/documentation/guidelines). 12 | 13 | > PS: This documentation is a work in progress; please be patient with us as we slowly fill up empty pages and add a contribution guideline. Feel free to give us feedback for now. Thank you. 14 | 15 | If you need any help, please contact us at [community@oscafrica.org](mailto:community@oscafrica.org) or join the `#documentation` channel on our [Discord](https://bit.ly/osca-discord) server. Cheers! 16 | 17 |
18 | 19 | 20 | 21 |
22 | 23 | ## Get Started 24 | 25 | Want to know more about Open Source Community Africa? Read the following sections: 26 | 27 | {% content-ref url="about/introduction.md" %} 28 | [introduction.md](about/introduction.md) 29 | {% endcontent-ref %} 30 | 31 | {% content-ref url="about/community-code-of-conduct.md" %} 32 | [community-code-of-conduct.md](about/community-code-of-conduct.md) 33 | {% endcontent-ref %} 34 | 35 | {% content-ref url="about/terminology.md" %} 36 | [terminology.md](about/terminology.md) 37 | {% endcontent-ref %} 38 | 39 | ## Browsing Categories 40 | 41 | Want to know more about Open Source Community Africa branding guidelines? Read the section below: 42 | 43 | {% content-ref url="about/guidelines.md" %} 44 | [guidelines.md](about/guidelines.md) 45 | {% endcontent-ref %} 46 | 47 | Got a question or inquiry? Read Read the section below: 48 | 49 | {% content-ref url="about/faqs.md" %} 50 | [faqs.md](about/faqs.md) 51 | {% endcontent-ref %} 52 | 53 | Want to know more about Open Source Community Africa team? Read the section below: 54 | 55 | {% content-ref url="about/team.md" %} 56 | [team.md](about/team.md) 57 | {% endcontent-ref %} 58 | 59 | Want to know more about Open Source Community Africa values and processes? Read the section below: 60 | 61 | {% content-ref url="about/the-osca-way/" %} 62 | [the-osca-way](about/the-osca-way/) 63 | {% endcontent-ref %} 64 | 65 | Want to know more about Open Source Community Africa community? Read our **COMMUNITY** section: 66 | 67 | {% content-ref url="broken-reference" %} 68 | [Broken link](broken-reference) 69 | {% endcontent-ref %} 70 | 71 | Want to know more about Open Source Community Africa finance processes? Read the section below: 72 | 73 | {% content-ref url="broken-reference" %} 74 | [Broken link](broken-reference) 75 | {% endcontent-ref %} 76 | 77 | Want to know more about Open Source Community Africa partnerships and external OSS programs? Read the section below: 78 | 79 | {% content-ref url="broken-reference" %} 80 | [Broken link](broken-reference) 81 | {% endcontent-ref %} 82 | 83 | Want to know more about contributing to Open Source Community Africa? Read the section below: 84 | 85 | {% content-ref url="broken-reference" %} 86 | [Broken link](broken-reference) 87 | {% endcontent-ref %} 88 | 89 | Want to know more about Open Source Community Africa projects? Read the section below: 90 | 91 | {% content-ref url="broken-reference" %} 92 | [Broken link](broken-reference) 93 | {% endcontent-ref %} 94 | 95 | ## Contact Us 96 | 97 | If you need more help, please contact us at [community@oscafrica.org](mailto:community@oscafrica.org) or join our [Discord](https://bit.ly/osca-discord) server. 98 | 99 | ## Financial Contributors 100 | 101 | Become a financial contributor and help us sustain our community. \[[Contribute](https://opencollective.com/osca/contribute)] 102 | 103 | ### Individuals 104 | 105 | ![OSCA Financial Contributors](https://opencollective.com/osca/individuals.svg?width=900) 106 | 107 | ### Organizations 108 | 109 | Support this project with your organization. Your logo will show up here with a link to your website. \[[Contribute](https://opencollective.com/osca/contribute)] 110 | 111 | [![OSCA Financial Contributor](https://opencollective.com/osca/organization/0/avatar.svg)](https://opencollective.com/osca/organization/0/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/1/avatar.svg)](https://opencollective.com/osca/organization/1/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/2/avatar.svg)](https://opencollective.com/osca/organization/2/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/3/avatar.svg)](https://opencollective.com/osca/organization/3/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/4/avatar.svg)](https://opencollective.com/osca/organization/4/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/5/avatar.svg)](https://opencollective.com/osca/organization/5/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/6/avatar.svg)](https://opencollective.com/osca/organization/6/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/7/avatar.svg)](https://opencollective.com/osca/organization/7/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/8/avatar.svg)](https://opencollective.com/osca/organization/8/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/9/avatar.svg)](https://opencollective.com/osca/organization/9/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/10/avatar.svg)](https://opencollective.com/osca/organization/10/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/11/avatar.svg)](https://opencollective.com/osca/organization/11/website) [![OSCA Financial Contributor](https://opencollective.com/osca/organization/12/avatar.svg)](https://opencollective.com/osca/organization/12/website) 112 | 113 | ## Contributors ✨ 114 | 115 | Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): 116 | 117 | | [![](https://avatars2.githubusercontent.com/u/30334776?v=4) **Bolaji Ayodeji**](https://bolajiayodeji.com) [📖](https://github.com/oscafrica/documentation/commits?author=BolajiAyodeji) | [![](https://avatars3.githubusercontent.com/u/30195980?v=4) **Prosper Opara**](https://kodekage.tech) [📖](https://github.com/oscafrica/documentation/commits?author=kodekage) | [![](https://avatars3.githubusercontent.com/u/6048601?v=4) **Samson Goddy**](http://samsongoddy.com) [📖](https://github.com/oscafrica/documentation/commits?author=samswag) | [![](https://avatars0.githubusercontent.com/u/13289217?v=4) **Ada Nduka Oyom**](http://medium.com/kolokodess) [📖](https://github.com/oscafrica/documentation/commits?author=Kolokodess) | [![](https://avatars0.githubusercontent.com/u/32799642?v=4) **Ogheneyoma Obomate Okobiah**](https://github.com/yomaokobiah) [📖](https://github.com/oscafrica/documentation/commits?author=yomaokobiah) | [![](https://avatars1.githubusercontent.com/u/30669761?v=4) **Peace Ojemeh**](http://peaceojemeh.com/) [📖](https://github.com/oscafrica/documentation/commits?author=perriefidelis) | 118 | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 119 | 120 | This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! 121 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Table of contents 2 | 3 | * [Home](README.md) 4 | 5 | ## ABOUT 6 | 7 | * [Introduction](about/introduction.md) 8 | * [Terminology](about/terminology.md) 9 | * [Community Code of Conduct](about/community-code-of-conduct.md) 10 | * [Branding Guidelines](about/guidelines.md) 11 | * [FAQs](about/faqs.md) 12 | * [Team](about/team.md) 13 | * [The OSCA Way](about/the-osca-way/README.md) 14 | * [Values](about/the-osca-way/values.md) 15 | * [OSCA Governance](about/the-osca-way/governance.md) 16 | * [Core Contributors Guidelines](about/the-osca-way/core-contributors-guidelines.md) 17 | * [Core Contributors: Communication](about/the-osca-way/core-contributors-communication.md) 18 | 19 | ## COMMUNITY 20 | 21 | * [Community Discord Server](https://oscafrica.org/discord) 22 | * [Chapters](community/chapters/README.md) 23 | * [Chapter Leads Application](community/chapters/chapter-leads-application.md) 24 | * [Chapter Leads OnBoarding Guide](community/chapters/chapter-leads-onboarding-guide.md) 25 | * [Chapters Design Guide](community/chapters/chapters-design-guide.md) 26 | * [OSS Jobs](community/open-source-jobs.md) 27 | * [Roadmap](community/roadmap.md) 28 | 29 | ## FINANCE 30 | 31 | * [Sponsorship Tiers](finance/tiers-and-goals.md) 32 | * [Expense Policy](finance/expense-policy.md) 33 | * [Expenses & Getting Paid](finance/expenses-and-getting-paid/README.md) 34 | * [Submitting Expenses](finance/expenses-and-getting-paid/submitting-expenses.md) 35 | * [Approving Expenses](finance/expenses-and-getting-paid/approving-expenses.md) 36 | * [Editing Expenses](finance/expenses-and-getting-paid/edit-an-expense.md) 37 | * [Core Contributors Expense Guidelines](finance/expenses-and-getting-paid/scope.md) 38 | 39 | ## OSS PROGRAMS 40 | 41 | * [OSCA Open Source Challenge](oss-programs/osca-open-source-challenge.md) 42 | * [Hacktoberfest](oss-programs/hacktoberfest.md) 43 | * [Google Summer of Code](oss-programs/google-summer-of-code.md) 44 | * [Google Season of Docs](oss-programs/google-season-of-docs.md) 45 | * [Outreachy](oss-programs/outreachy.md) 46 | 47 | ## CONTRIBUTING 48 | 49 | * [Engineering](contributing/engineering/README.md) 50 | * [Contribution Guidelines](contributing/engineering/guidelines.md) 51 | * [Conventions](contributing/engineering/conventions.md) 52 | * [Design](contributing/design/README.md) 53 | * [Contribution Guidelines](contributing/design/guidelines.md) 54 | * [Style Guide](contributing/design/style-guide.md) 55 | * [Documentation](contributing/documentation/README.md) 56 | * [Contribution Guidelines](contributing/documentation/guidelines.md) 57 | * [Style Guide](contributing/documentation/style-guide.md) 58 | * [Issue Labels](contributing/issue-labels.md) 59 | 60 | ## PROJECTS 61 | 62 | * [Awesome Open Source](projects/osca-twitter-bot.md) 63 | * [OSCA Community Website](projects/osca-discord-bot.md) 64 | * [OSF Website](projects/osf-website.md) 65 | * [OSCA Chapters Directory](projects/osca-chapters-directory.md) 66 | * [OSCA Documentation](projects/osca-documentation.md) 67 | * [OSCA Design](projects/osca-design.md) 68 | 69 | ## FINANCIAL CONTRIBUTORS 70 | 71 | * [Individuals](financial-contributors/individuals.md) 72 | * [Organizations](financial-contributors/organizations.md) 73 | -------------------------------------------------------------------------------- /about/community-code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Community Code of Conduct 2 | 3 | > \_“Alone we can do so little, together we can do so much” 4 | 5 | Open Source Community Africa community is made up of members from around Africa, with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences great successes and continued growth. When you're working with members of the community, this Code of Conduct will help steer your interactions and keep Open Source Community Africa a positive, successful, and growing community. 6 | 7 | ## Our Community 8 | 9 | Members of Open Source Community Africa are **open, considerate, and respectful**. Behaviours that reinforce these values contribute to a positive environment, and include: 10 | 11 | ### Being open 12 | 13 | Members of the community are open to collaboration, whether it's on PEPs, patches, problems, or otherwise. Focusing on what is best for the community. We're respectful of the processes set forth in the community, and we work within them. 14 | 15 | ### Acknowledging time and effort 16 | 17 | We're respectful of the volunteer efforts that permeate the OSCA community. We're thoughtful when addressing the efforts of others, keeping in mind that often times the labor was completed simply for the good of the community. 18 | 19 | ### Being respectful of differing viewpoints and experiences 20 | 21 | We're receptive to constructive comments and criticism, as the experiences and skill sets of other members contribute to the whole of our efforts. 22 | 23 | ### Showing empathy towards other community members 24 | 25 | We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views. 26 | 27 | ### Being considerate 28 | 29 | Members of the community are considerate of their peers -- other OSCA members. 30 | 31 | ### Being respectful 32 | 33 | We're respectful of others, their positions, their skills, their commitments, and their efforts. 34 | 35 | ### Gracefully accepting constructive criticism 36 | 37 | When we disagree, we are courteous in raising our issues. 38 | 39 | ### Using welcoming and inclusive language 40 | 41 | We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference. 42 | 43 | ## Our Standards 44 | 45 | Every member of our community has the right to have their identity respected. The OSCA community is dedicated to providing a positive experience for everyone, regardless of age, gender identity and expression, sexual orientation, disability, physical appearance, body size, ethnicity, nationality, race, or religion (or lack thereof), education, or socio-economic status. 46 | 47 | ### Inappropriate Behavior 48 | 49 | Examples of unacceptable behavior by participants include: 50 | 51 | * Harassment of any participants in any form 52 | * Deliberate intimidation, stalking or following 53 | * Logging or taking screenshots of online activity for harassment purposes 54 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 55 | * Violent threats or language directed against another person 56 | * Incitement of violence or harassment towards any individual, including encouraging a person to commit suicide or to engage in self-harm 57 | * Creating additional online accounts in order to harass another person or circumvent a ban 58 | * Sexual language and imagery in online communities or in any conference venue, including talks 59 | * Insults, put downs, or jokes that are based upon stereotypes, that are exclusionary, or that hold others up for ridicule 60 | * Excessive swearing 61 | * Unwelcome sexual attention or advances 62 | * Unwelcome physical contact, including simulated physical contact (eg, textual descriptions like "hug" or "backrub") without consent or after a request to stop 63 | * Patterns of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy with others 64 | * Sustained disruption of online community discussions, in-person presentations, or other in-person events 65 | * Continued one-on-one communication after requests to cease 66 | * Other conduct that is inappropriate for a professional audience including people of many different backgrounds 67 | 68 | Community members asked to stop any inappropriate behavior are expected to comply immediately. 69 | 70 | ### Weapons Policy 71 | 72 | No weapons are allowed at OSCA events. Weapons include but are not limited to explosives (including fireworks), guns, and large knives such as those used for hunting or display, as well as any other item used for the purpose of causing injury or harm to others. Anyone seen in possession of one of these items will be asked to leave immediately, and will only be allowed to return without the weapon. 73 | 74 | ### Consequences 75 | 76 | If a participant engages in behavior that violates this code of conduct, the Open Source Community Africa Code of Conduct team may take any action they deem appropriate, including warning the offender or expulsion from the community and community events with no refund of event tickets. 77 | 78 | Thank you for helping make this a welcoming, friendly community for everyone. 79 | 80 | ## Scope 81 | 82 | ### OSCA Events 83 | 84 | This Code of Conduct applies to the following people at events hosted by Open Source Community Africa: 85 | 86 | * Board members 87 | * Core team 88 | * Team 89 | * Chapter leads 90 | * Contributors 91 | * Moderators 92 | * Speakers 93 | * Panelists 94 | * Tutorial or workshop leaders 95 | * Poster presenters 96 | * People invited to meetings or summits 97 | * Exhibitors 98 | * Organizers 99 | * Volunteers 100 | * All attendees 101 | 102 | The Code of Conduct applies in official venue event spaces, including: 103 | 104 | * Exhibit hall or vendor tabling area 105 | * Panel and presentation rooms 106 | * Hackathon or sprint rooms 107 | * Tutorial or workshop rooms 108 | * Poster session rooms 109 | * Summit or meeting rooms 110 | * Staff areas 111 | * Con Suite 112 | * Meal areas 113 | * Party suites 114 | * Walkways, hallways, elevators, and stairs that connect any of the above spaces 115 | 116 | The Code of Conduct applies to interactions with official event accounts on social media spaces and applications, including: 117 | 118 | * Comments made on official event channels on Discord 119 | * Comments made on official event social media posts 120 | * Comments made on official conference apps 121 | * Comments made on event video hosting services 122 | * Comments made on the official event hashtag or panel hashtags 123 | 124 | Event organizers will enforce this code throughout the event. Each event is required to provide a Code of Conduct Committee that receives, evaluates, and acts on incident reports. Each event is required to provide contact information for the committee to attendees. The event Code of Conduct Committee may (but is not required to) ask for advice from the Open Source Community Africa Code of Conduct team. Open Source Community Africa Code of Conduct team can be reached by emailing [community@oscafrica.org](mailto:community@oscafrica.org). 125 | 126 | ### OSCA Online Spaces 127 | 128 | This Code of Conduct applies to the following online spaces: 129 | 130 | * The [Discord Server](https://oscafrica.org/discord). 131 | * All [mailing lists hosted by OSCA](https://us17.campaign-archive.com/home/?u=2339b35e3ca4c86944e0601d0\&id=e9c39b69f6). 132 | * Code repositories, issue trackers, and pull requests made against any Open Source Community Africa controlled GitHub organization. 133 | * Any other online space administered by Open Source Community Africa. 134 | 135 | This Code of Conduct applies to the following people in the official Open Source Community Africa online spaces: 136 | 137 | * Community managers 138 | * Admins of the online space 139 | * Core team 140 | * Moderators 141 | * Chapter leads 142 | * Maintainers 143 | * Reviewers 144 | * Contributors 145 | * All community members 146 | 147 | Each online space listed above are required to provide contact information for any administrators/moderators to the Open Source Community Africa Code of Conduct team. 148 | 149 | Each online space listed above is encouraged to provide a welcome message with a link to this Code of Conduct and the contact information for making an incident report [community@oscafrica.org](mailto:community@oscafrica.org) to community members. 150 | 151 | Open Source Community Africa Code of Conduct team will receive and evaluate incident reports from the online communities listed above. Open Source Community Africa Code of Conduct team will work with online community administrators/moderators to suggest actions to take in response to a report. In cases where the administrators/moderators disagree on the suggested resolution for a report, the Source Community Africa Code of Conduct team may choose to notify the Open Source Community Africa board. 152 | 153 | ### Contact Information 154 | 155 | If you believe that someone is violating the code of conduct, or have any other concerns, please contact a member of the Open Source Community Africa Code of Conduct team immediately. They can be reached by emailing [community@oscafrica.org](mailto:community@oscafrica.org) or messaging _Bolaji#3828_ on [Discord](https://oscafrica.org/discord). 156 | 157 | ## License 158 | 159 | [![Creative Commons License](https://camo.githubusercontent.com/005cfe27b7c4520ac0d6b607d6a7e33f5ad4eb6e/68747470733a2f2f692e6372656174697665636f6d6d6f6e732e6f72672f6c2f62792f342e302f38387833312e706e67)](http://creativecommons.org/licenses/by/4.0/) 160 | 161 | This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). 162 | 163 | ## Attributions 164 | 165 | This Code of Conduct is based on the Code of Conduct of the [Python Software Foundation](https://www.python.org/psf/codeofconduct) which was forked from the example policy from the [Geek Feminism wiki, created by the Ada Initiative and other volunteers](http://geekfeminism.wikia.com/wiki/Conference\_anti-harassment/Policy), which is under a [Creative Commons Zero license](https://creativecommons.org/publicdomain/zero/1.0/). 166 | -------------------------------------------------------------------------------- /about/faqs.md: -------------------------------------------------------------------------------- 1 | # FAQs 2 | 3 | ## Can I become who I want to be? 4 | 5 | That's a tough question but thankfully, our team is on it. Please bear with us while we're investigating. 6 | 7 | ## Can I become who I want to be? 8 | 9 | That's a tough question but thankfully, our team is on it. Please bear with us while we're investigating. 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /about/guidelines.md: -------------------------------------------------------------------------------- 1 | # Guidelines 2 | 3 | ## Naming guidelines 4 | 5 | 1. The official name for the organization is "Open Source Community Africa" with its acronym as OSCA. 6 | 2. When writing the the official name for the organization, the first letter of each word should be _capitalized_. 7 | 3. The official acronym for the organization should be spelt using _UPPERCASE_ only. 8 | 9 | ### Do’s 10 | 11 | * Refer to the community as "OSCA". 12 | * Describe the community as "OSCA" stands for "Open Source Community Africa and is a community of Open source advocates and contributors across Africa.". 13 | 14 | ### Don’t: 15 | 16 | * Refer to the community as "Open Source Africa" or "Open Source Community" instead of the acronym "OSCA". 17 | 18 | ## Chapter naming guideline 19 | 20 | ### Do's 21 | 22 | * Each local OSCA chapter must be named as "OSCA \(Location\)". 23 | * Name your chapter with a “Location” that is a city \(e.g. Lagos, Port Harcourt\)Refer to your chapter as "OSCA \(Location\)" 24 | 25 | ### Don’t 26 | 27 | * Refer to your chapter as a “Open Source Community \(Location\),” "Open Source Africa \(Location\)" or "Open Source \(Location\)." 28 | * Name your chapter with a “Location” that is a country or continent \(e.g. Ghana, South-Africa, Africa\). 29 | 30 | -------------------------------------------------------------------------------- /about/introduction.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | ![](../.gitbook/assets/NXTBC.png) 4 | -------------------------------------------------------------------------------- /about/organization.md: -------------------------------------------------------------------------------- 1 | # Organization 2 | 3 | -------------------------------------------------------------------------------- /about/team.md: -------------------------------------------------------------------------------- 1 | # Team 2 | 3 | ### Samson Goddy 4 | 5 | Core Contributor\ 6 | Co-founder\ 7 | Abuja, 🇳🇬. 8 | 9 | [X (Twitter)](https://twitter.com/Samson\_Goddy), [LinkedIn](https://www.linkedin.com/in/samsongoddy) 10 | 11 | ### Ada Nduka Oyom 12 | 13 | Core Contributor\ 14 | Co-founder\ 15 | Lagos, 🇳🇬. 16 | 17 | [X (Twitter)](https://twitter.com/Kolokodess), [LinkedIn](https://www.linkedin.com/in/ada-nduka-oyom) 18 | 19 | ### Peace Ojemeh 20 | 21 | Core Contributor\ 22 | Founding Member & Design Lead\ 23 | Abuja, 🇳🇬. 24 | 25 | [X (Twitter)](https://twitter.com/Peace\_Ojemeh), [LinkedIn](https://www.linkedin.com/in/peace-ojemeh-0b5bb2151) 26 | 27 | ### Ogheneyoma Okobiah 28 | 29 | Core Contributor\ 30 | Partnerships & Finance Lead\ 31 | Abuja, 🇳🇬. 32 | 33 | [X (Twitter)](https://twitter.com/yomdroid), [LinkedIn](https://www.linkedin.com/in/ogheneyoma-okobiah) 34 | 35 | ### Bolaji Ayodeji 36 | 37 | Core Contributor\ 38 | Community Manager & Technical Support\ 39 | Abuja, 🇳🇬. 40 | 41 | [X (Twitter)](https://twitter.com/iambolajiayo), [LinkedIn](https://www.linkedin.com/in/iambolajiayo) 42 | 43 | ### Princess Egbuna 44 | 45 | Core Contributor\ 46 | Engineering Lead\ 47 | Lagos, 🇳🇬. 48 | 49 | [X (Twitter)](https://twitter.com/PrincesOluebube), [LinkedIn](https://www.linkedin.com/in/egbunaoluebubeprincess) 50 | 51 | ### Ruth Ikegah 52 | 53 | Core Contributor\ 54 | Program Manager\ 55 | Lagos, 🇳🇬. 56 | 57 | [X (Twitter)](https://twitter.com/IkegahRuth), [LinkedIn](https://www.linkedin.com/in/ruth-ikegah/) 58 | 59 | *** 60 | 61 | ### Edidiong Asipko 62 | 63 | Community & Documentation\ 64 | Lagos, 🇳🇬. 65 | 66 | [X (Twitter)](https://twitter.com/Didicodes), [LinkedIn](https://www.linkedin.com/in/edidiong-asikpo-2b792a147) 67 | 68 | ### Josh Ike Chukwuanu 69 | 70 | Engineering\ 71 | Abuja, 🇳🇬. 72 | 73 | [X (Twitter)](https://twitter.com/IkeChukwuanu), [LinkedIn](https://www.linkedin.com/in/chukwuanu) 74 | 75 | ### Alabo Briggs 76 | 77 | Engineering\ 78 | Abuja, 🇳🇬. 79 | 80 | [X (Twitter)](https://twitter.com/alabobriggs\_), [LinkedIn](https://www.linkedin.com/in/alabo-briggs-31744a161) 81 | 82 | ### Steve Anthony 83 | 84 | Design\ 85 | Port Harcourt, 🇳🇬. 86 | 87 | [X (Twitter)](https://twitter.com/steveanthny), [LinkedIn](https://www.linkedin.com/in/stephenokonkwo) 88 | 89 | -------------------------------------------------------------------------------- /about/terminology.md: -------------------------------------------------------------------------------- 1 | # Terminology 2 | 3 | -------------------------------------------------------------------------------- /about/the-osca-way/README.md: -------------------------------------------------------------------------------- 1 | # The OSCA Way 2 | 3 | -------------------------------------------------------------------------------- /about/the-osca-way/community-guidelines.md: -------------------------------------------------------------------------------- 1 | # Community Guidelines 2 | 3 | -------------------------------------------------------------------------------- /about/the-osca-way/core-contributors-communication.md: -------------------------------------------------------------------------------- 1 | # Core Contributors: Communication 2 | 3 | -------------------------------------------------------------------------------- /about/the-osca-way/core-contributors-expenses.md: -------------------------------------------------------------------------------- 1 | # Core Contributors: Expenses 2 | 3 | -------------------------------------------------------------------------------- /about/the-osca-way/core-contributors-guidelines.md: -------------------------------------------------------------------------------- 1 | # Core Contributors Guidelines 2 | 3 | -------------------------------------------------------------------------------- /about/the-osca-way/governance.md: -------------------------------------------------------------------------------- 1 | # OSCA Governance 2 | 3 | This policy came into effect in June 2016 and will be reviewed periodically \(see revision sections\). The last modification has been made in June 2016. 4 | 5 | ## Goals 6 | 7 | The goals of Open Source Community Africa Governance are to: 8 | 9 | * Create a set of minimum requirements for a sub-project hosted on oscafrica.org, 10 | * Create a lightweight project life cycle that: 11 | * leads the project to articulate its goals and how to achieve them, 12 | * encourages desired behaviors \(e.g., open development\), 13 | * provides motivation for the project to succeed, 14 | * leads to non-viable projects failing quickly, and 15 | * provides opportunities for other community members. 16 | * Avoid bureaucracy, i.e., the life cycle should be as informal as possible, 17 | * Encourage Open Source Community Africa-related projects to be hosted on oscafrica.org rather than going elsewhere, and 18 | * Set clear expectations to vendors, upstream and downstream projects, and community members. 19 | 20 | ## Principles 21 | 22 | ### Openness 23 | 24 | Open Source Community Africa is open to all individuals in their individual capacities, and provides the same opportunity to all. Everyone participates with the same rules. There are no rules to exclude prima facie any potential individual contributors, which include individuals associated with direct competitors in the marketplace. 25 | 26 | ### Transparency 27 | 28 | All project discussions, minutes, deliberations, project plans, designs, plans for new features, and other artifacts shall be open, public, searchable, and easily accessible to everyone. 29 | 30 | ### Meritocracy 31 | 32 | The Open Source Community Africa community is a meritocracy. The more you contribute, the more responsibility you will earn. Leadership roles in Open Source Community Africa are also merit-based and earned by peer acclaim. 33 | 34 | ### Consensus Decision Making 35 | 36 | Open Source Community Africa projects or teams are self-governing and driven by the people who volunteer for the job. When more formal decision making and coordination is required, decisions are taken with a ["lazy consensus"](http://openoffice.apache.org/docs/governance/lazyConsensus.html) approach: a few positive votes with no negative vote is enough to get going. 37 | 38 | Sometimes a member of the community will believe a specific action is the correct one for the community but are not sure enough to proceed with the work under the lazy consensus model. In these circumstances they can state Lazy Consensus is in operation. 39 | 40 | What this means is that they make a proposal and state that they will start implementing it in **72 hours** unless someone objects. 72 hours is chosen because it accounts for different timezones and non-Open Source Community Africa commitments. If the 72 hours are touching a weekend/holidays it would be wise to extend the timeframe a bit. This will ensure that people can participate in the proposal even when they were offline over the weekend. 41 | 42 | Voting is done with numbers: 43 | 44 | * +1 : a positive vote 45 | * 0 : abstain, have no opinion 46 | * -1 : a negative vote 47 | 48 | A negative vote should include an alternative proposal or a detailed explanation of the reasons for the negative vote. The project community then tries to gather consensus on an alternative proposal that resolves the issue. In the great majority of cases, the concerns leading to the negative vote can be addressed. 49 | 50 | ## Conflict Resolution 51 | 52 | ### Refereeing 53 | 54 | Open Source Community Africa projects and teams are not democracies, but meritocracies. In situations where there is disagreement on issues related to the day-to-day running of the project, Committers and Project Leads are expected to act as referees and make a decision on behalf of the Open Source Community Africa community. Referees should consider whether making a decision may be divisive and damaging for the Open Source Community Africa community. In such cases, the committers of the project can privately vote on an issue, giving the decision more weight. 55 | 56 | ### Last Resort 57 | 58 | In some rare cases, the lazy consensus approach may lead to the community being paralyzed. Thus, as a last resort when consensus cannot be achieved on a question internal to a project, the final decision will be made by a secret ballot majority vote amongst the committers and project lead. If the vote is tied, the project lead gets an extra vote to break the tie. 59 | 60 | For questions that affect several projects, committers and project leads of mature projects will hold a secret ballot majority vote. If the vote is tied, the Open Source Community Africa Steering Committee will break the tie through a casting vote. 61 | 62 | ## Roles 63 | 64 | ### Maintainers 65 | 66 | Maintainers own one or several components in Open Source Community Africa. A maintainer reviews and approves changes that affect their components. It is a maintainer's prime responsibility to review, comment on, co-ordinate and accept patches from community members, and to maintain the design cohesion of their components. A project's maintainers shall be listed in a MAINTAINERS file in the root of that project's code repository or documentation page. 67 | 68 | ### Committers 69 | 70 | Committers are Maintainers who are allowed to commit changes into a repository. The committer acts on the wishes of the maintainers and applies changes that have been approved by the respective maintainer\(s\) to the repository. Due to their status in the community, committers can also act as referees, should disagreements amongst maintainers arise. Committers are listed on the project's team web page. 71 | 72 | ### Projects and Teams 73 | 74 | Open Source Community Africa organizes itself into a number of projects, which follow the Project Governance \(or Project Lifecycle\) as outlined in this document. Projects are run by individuals and are often referred to as teams to highlight the collaborative nature of development. For example, each project has a team page on oscafrica.org. 75 | 76 | ### Project Lead 77 | 78 | Open Source Community Africa projects and teams are managed by a Project Lead, who is also a committer of the project/team they lead. Project Lead is the public figurehead of the project and is responsible for the health of the project. Due to their status in the community, project leads can also act as referees should disagreements amongst committers of the project arise. The project lead typically also has write access to resources, such as the web page of a specific project. 79 | 80 | ### Open Source Community Africa Steering Committee 81 | 82 | The Open Source Community Africa Steering Committee consists of members who are committed to steering Open Source Community Africa to advance its market and technical success, and who serve as positive ambassadors for the project. The Open Source Community Africa Steering Committee manages non-technical aspects of Open Source Community Africa including funding for shared project infrastructure, marketing and events, and managing Open Source Community Africa trademarks. The Steering Committee leaves all technical decisions to the open source meritocracy. 83 | 84 | ### Mentor 85 | 86 | Younger projects may have a need for a mentor to help ensure that the project will be successful. Mentors can be maintainers, project leads, Steering Committee members or other distinguished community members. Mentors are expected to have a monthly review and report back to the community about movement from incubation to maturity. 87 | 88 | ### Sponsor 89 | 90 | To form a new Open Source Community Africa project or team, we require a sponsor to support the creation of the new project. A sponsor can be a project lead or committer of a mature project, a member of the Steering Committee or the community manager. This ensures that a distinguished community member supports the idea behind the project and is responsible to find an appropriate mentor for the project. 91 | 92 | ## Making Contributions 93 | 94 | Making contributions in Open Source Community Africa follows the conventions as they are known in the Linux Kernel community. In summary, contributions are made through pull requests that are reviewed by the community. Open Source Community Africa does not require community members to sign contribution or committer agreements. 95 | 96 | More information on making contributions can be found in the following documents: 97 | 98 | * [Contribution Guidelines for Open Source Community Africa Toolkit](https://gitlab.com/Open%20Source%20Community%20Africa/lh-toolkit/blob/master/CONTRIBUTING.md) 99 | * Contribution Guidelines \(others upcoming\) 100 | 101 | ## Elections and Formal Votes 102 | 103 | ### Maintainer Elections 104 | 105 | Developers who have earned the trust of maintainers \(including the project lead\) can be promoted to Maintainer. A two-stage mechanism is used: 106 | 107 | * **Nomination:** A maintainer should nominate himself by proposing a patch to 108 | 109 | the MAINTAINERS file or mailing a nomination to the project's mailing list. 110 | 111 | Alternatively another maintainer may nominate a community member. A nomination 112 | 113 | should explain the contributions of proposed maintainer to the project 114 | 115 | as well as a scope \(set of owned components\). Where the case is not obvious, 116 | 117 | evidence such as specific patches and other evidence supporting the nomination 118 | 119 | should be cited. 120 | 121 | * **Confirmation:** Normally, there is no need for a direct election to confirm 122 | 123 | a new maintainer. Discussion should happen on the mailing list using 124 | 125 | the principles of consensus decision making. If there is disagreement or doubt, 126 | 127 | the project lead or a committer should ask the community manager to arrange 128 | 129 | a more formal vote. 130 | 131 | ### Committer Elections 132 | 133 | Developers who have earned the trust of committers in their project can through election be promoted to Committer. A two-stage mechanism is used: 134 | 135 | * **Nomination:** Community members should nominate candidates by posting 136 | 137 | a proposal by sending a direct message to the "Appointments" group on 138 | 139 | Open Source Community Africa Forums, explaining the candidate's contributions to the project 140 | 141 | and thus why they should be elected to become a Committer of the project. 142 | 143 | The nomination should cite evidence such as patches and other contributions 144 | 145 | where the case is not obvious. Existing Committers will review all proposals, 146 | 147 | check whether the nominee would be willing to accept the nomination 148 | 149 | and publish suitable nominations in the Open Source Community Africa Forums publicly 150 | 151 | for wider community input. 152 | 153 | * **Election:** A committer will be elected using the decision making process 154 | 155 | outlined earlier. Voting will be done by committers for that project privately 156 | 157 | using a voting form that is created by the community manager. Should there 158 | 159 | be a negative vote the project lead and community manager will try 160 | 161 | and resolve the situation and reach consensus. Results will be published 162 | 163 | in the public forums. 164 | 165 | ### Project Lead Elections 166 | 167 | Projects which lose their project lead are at risk of failing. Should this occur, the project's maintainer community should agree on a suitable new project lead and follow the election process as outlined above. 168 | 169 | ### Formal Votes 170 | 171 | Sometimes it is necessary to conduct formal voting within the Open Source Community Africa community \(outside of elections\). Formal votes are necessary when processes and procedures are introduced or changed, or as part of the Project Governance. Who is eligible to vote, depends on whether the scope of a process or procedure is **local** to a project or team, or whether it affects all projects \(**global**\). An examples of local scope is a code review policy which applies to the EMR project only. Examples of global scope are changes to this document or votes outlined in the Open Source Community Africa Community Governance document. 172 | 173 | * **Scope:** Local 174 | * **Who reviews:** Members of developer mailing lists of the affected projects. 175 | * **Who votes:** Maintainers of the project \(or projects\), which are affected 176 | 177 | by the process, procedure, etc. are allowed to vote. This includes maintainers 178 | 179 | from incubation projects \(if the scope affects the project\). 180 | * **Scope:** Global 181 | * **Who reviews:** Readers of all Open Source Community Africa Forums project categories. 182 | * **Who votes:** Maintainers of all **mature projects** and the Open Source Community Africa 183 | 184 | community manager are allowed to vote. 185 | 186 | The community manager first arranges a public review, followed by a timed private vote. Public review and voting should be open for a minimum of a week each. For voting a traceable poll mechanism, e.g., a voting system that keeps auditable and tamper proof records, must be used. Voting follows the conventions as laid out in "Principle: Consensus Decision Making". 187 | 188 | ## Project Governance 189 | 190 | ### Basic Project Life Cycle 191 | 192 | The proposal is to follow a simple basic flow: 193 | 194 | ![alt tag](http://i.imgur.com/f1mgSxN.png) 195 | 196 | A Open Source Community Africa project starts with an idea which through the process of project formation will grow into a project proposal. The project proposal will need to satisfy some basic conditions, will be put out for community review and is then put to a vote to all maintainers and project leads of mature Open Source Community Africa projects following the usual decision making process. 197 | 198 | For agreed project proposals, Open Source Community Africa will provide basic infrastructure and the project can get started. Projects in incubation are working towards a set of goals, will get additional support and marketing opportunities from the Open Source Community Africa. However, there will also be regular checkpoints to see whether the project is progressing. Should it turn out that a project is not viable any more, it will be archived after an archival review and vote. For a project to graduate, some basic conditions must be satisfied. If a project in incubation has achieved the point where it believes it is mature enough to graduate, it can request a Graduation community review followed by a vote. 199 | 200 | Mature projects are expected to run themselves. However, at some point a mature project will lose momentum and developers. If this is the case the Open Source Community Africa community can request an archival review, which follows the usual pattern. 201 | 202 | Archival reviews have two purposes: 203 | 204 | * To give somebody in the community an opportunity to step up and continue 205 | 206 | a project, and 207 | 208 | * To archive the project outcomes such that they are still available to people 209 | 210 | who want to use them, but promotion of such projects will cease. 211 | 212 | It is also possible to revive archived projects. However these are treated almost like new projects as projects would only be archived if they have become inactive. 213 | 214 | ### Requesting Reviews, Reviews and Voting 215 | 216 | **Requesting Reviews:** Project Proposal and Graduation Reviews are requested by the \(prospective\) project lead of the project by contacting the community manager providing the necessary documentation. An archival review can be requested by any maintainer of a mature project or by the Open Source Community Africa community manager. The community manager will then publish relevant material on the respective forums. 217 | 218 | **Reviews:** These are off-line reviews which are open to all community members by which a proposal is published for review. The purpose of the review is two-fold: 219 | 220 | * To gather final feedback and input from the community \(it is good practice to informally do this before the review\), and 221 | * To advertise the project with the aim to attract interest, users and contributors. 222 | 223 | After a review, the requester of the review may decide to withdraw, request a re-review or progress to a vote by arranging with the community manager. 224 | 225 | **Voting:** The community manager arranges a timed private vote as outlined in Formal Votes. 226 | 227 | ### Forming a Project 228 | 229 | Requirements for forming a Open Source Community Africa project \(or team\): 230 | 231 | * A project needs a lead, who is willing to become the project lead of the sub-project. 232 | * A project needs a sponsor, which can be a project lead of a mature project, a member of the Open Source Community Africa Steering Committee, or the community manager. 233 | * There should be no dissent from other community members who would qualify as sponsor \(see "Principle: Consensus Decision Making"\). 234 | * A project needs a mentor, which can be the project sponsor or a maintainer of a mature project. 235 | * A project needs to have a relationship to other projects or teams, i.e., it aims to develop software that has a dependency on other Open Source Community Africa projects or teams. If the project needs components in other projects to work, then this should also be stated. 236 | * A project needs to be large and long-term enough to grant a separate project. For example adding support for a new clinical domain, adding additional functionality on top of existing projects, etc. Adding a new feature to an existing project should be performed within an existing project. 237 | * A project will deliver code using a license that is compatible with other Open Source Community Africa projects, ideally MPL 2.0 HD. 238 | 239 | The purpose of the project formation phase is to work out what the project is about, get community buy-in and help the future project gain publicity and momentum. The formation phase is driven by that project's project lead. The project mentor's role is to advise and support the project lead in getting the project started. 240 | 241 | The project proposal is a document that is published on forums.oscafrica.org and describes: 242 | 243 | * What the project is aiming to achieve, i.e., the project charter and project goals, 244 | * What components/code and in which code lines \(new or components in other projects\) the project aims to deliver, 245 | * Key dependencies on other Open Source Community Africa projects or teams, if applicable, 246 | * A list of initial maintainers, if applicable, 247 | * A lists of any interested parties in the project, if applicable, 248 | * A lists of any planned initial code contributions, if applicable, and 249 | * A rough plan on how to get through the Incubation phase. 250 | 251 | ### Project Proposal Review 252 | 253 | The review is initiated by the project lead and follows the rules outlined in "Requesting Reviews, Reviews and Voting". 254 | 255 | After a successful review, the following resources will be created for the project: 256 | 257 | * A category in the Open Source Community Africa forums, 258 | * A code repository, and 259 | * A project or team page on oscafrica.org, in an area separate from mature projects, to be maintained by the project lead. 260 | 261 | ### Incubating a Project 262 | 263 | The purpose of the incubation phase is for a project to show that it is gathering momentum and adheres to the "Principles & Roles" of Open Source Community Africa projects. The project mentor will work closely with the project lead and there are at least quarterly informal review meetings with the mentor on how the project is doing. Should a mentor not be able to fulfill his/her role any more, it is the responsibility of the project lead to find another mentor. We advise that the project lead gives at least quarterly updates on the Open Source Community Africa blog on how the project is doing. 264 | 265 | Open Source Community Africa will provide support to incubating projects. The project lead will work closely with the Open Source Community Africa community manager as well as with the project mentor. 266 | 267 | ### Archiving an Incubating project 268 | 269 | The mentor can request for a project to be archived, if the project is not making sufficient progress. See "Archival Review". 270 | 271 | ### Graduation Review 272 | 273 | The review is initiated by the project lead and follows the rules outlined in "Requesting Reviews, Reviews and Voting". In essence, the project lead makes a pitch to the community about why the project should graduate. 274 | 275 | A project must fulfill the following requirements before it can graduate: 276 | 277 | 1. It follows the principles of openness, transparency and meritocracy. 278 | 2. It has delivered at least one functioning release of what it is aiming to deliver. 279 | 3. It has a public code repository which shows active development, has mechanisms to accept patches, and a history of accepting patches. 280 | 4. It has a public forum that is active. 281 | 5. It has a mechanism for users to raise bugs and for developers to work on bugs. 282 | 6. It has an active developer community, including multiple maintainers, a diverse profile of individuals, etc. 283 | 284 | Other items to look at during the review \(depending on project are\): 285 | 286 | 1. It has up-to-date documentation and a core and group of people maintaining it. 287 | 2. It publishes regular builds and tests. 288 | 3. It promotes itself at Open Source Community Africa events and on the Open Source Community Africa blog. 289 | 290 | ### Mature Projects 291 | 292 | Mature projects are expected to be run and promote themselves. The project lead has significant responsibility in ensuring that this happens. The Open Source Community Africa Steering Committee and the community manager will help organize events, provide opportunities for the project to get new contributors and build a community, promote new releases on the blog and to the press, work with project members, etc. However the Open Source Community Africa Steering Committee and the community manager will not get involved in the day-to-day running of the project. 293 | 294 | At some point during its lifecycle, a project may lose momentum. In other words, developers and users are not interested in the project any more. If this is the case, it may be time to archive the project. If the project has achieved its goals and is thus completed, it may also be time to archive the project. 295 | 296 | ### Archival Review 297 | 298 | These can happen in a number of situations: 299 | 300 | * An incubation project shows clear signs of failing and not progressing. 301 | * A mature project has lost its developer and user base, and there is little or no activity. 302 | * The project has achieved its goals and/or fulfilled its charter. In other words, it has completed. 303 | 304 | In the first case, the review is triggered by the incubation project's mentor. Failing this, the review can be requested by any maintainer of any mature project \(including the project's lead\) or by the Open Source Community Africa community manager. See "Requesting Reviews, Reviews and Voting". 305 | 306 | The review is essentially a pitch why the project should be archived. The purpose of the review is not necessarily to archive a project, but also to provide a last opportunity for interested parties in the Open Source Community Africa community to save the project and step up. The Open Source Community Africa community manager will support efforts to save the project, should community members want to step up. In the case where a project has been completed, the normal situation would be for the project lead to make the case for archival. 307 | 308 | ### Archived Projects 309 | 310 | When a project is archived, the following happens: 311 | 312 | 1. The code repository and forums will be made read-only and made accessible from an "archived projects" section of oscafrica.org. 313 | 2. The project's documentation pages will be tagged as "archived". A project may be completed, i.e., it has achieved its goals and/or fulfilled its charter, in which case it is tagged as "completed" and "archived". 314 | 3. The project or team page on oscafrica.org will be moved into an "Archive" or "Completed" section. 315 | 316 | In cases where the project has delivered code into other Open Source Community Africa projects, the code will be: 317 | 318 | * Deprecated at the point where the project is archived, and 319 | * The project which now contains the archived code can \(but does not have to\) remove the code in a subsequent release \(it should however give users sufficient time to adapt\) 320 | 321 | ## Exceptional Circumstances 322 | 323 | ### Projects without Project Lead 324 | 325 | Projects which lose their project lead during the incubation or maturity phase are at risk of failing. Should this occur, the project's maintainer community should agree who would want to be/be able to be the new project lead and follow the election process as outlined in "Electing Maintainers". 326 | 327 | If a project lead leaves during the formation phase without finding a successor, we assume that the project does not have enough momentum and will not go ahead. 328 | 329 | ### Incubation projects without Mentor 330 | 331 | Should an incubation project lose its mentor, the Open Source Community Africa community manager will support the project lead in finding a new mentor. 332 | 333 | ## Acknowledgements 334 | 335 | _This work, "Open Source Community Africa Community Governance", is a derivative of "Xen Project Governance" by Xen Project, used under the Creative Commons Attribution 3.0 License \(CC BY 3.0\). "Open Source Community Africa Community Governance" is licensed under the Creative Commons 4.0 International Attribution License \(CC BY 4.0\) by Humanitech Inc._ 336 | 337 | ## Change History 338 | 339 | * **ver. 0.1** Initial Draft, 15 June 2016 340 | 341 | -------------------------------------------------------------------------------- /about/the-osca-way/values.md: -------------------------------------------------------------------------------- 1 | # Values 2 | 3 | -------------------------------------------------------------------------------- /about/values.md: -------------------------------------------------------------------------------- 1 | # Values 2 | 3 | -------------------------------------------------------------------------------- /community/chapters/README.md: -------------------------------------------------------------------------------- 1 | # Chapters 2 | 3 | An Open Source Community Africa chapter is a community closer to home. It typically consists of a group of people coming together to organize and facilitate meetups, creating an environment of support in possible areas of challenge while following the OSCA Code of Conduct. 4 | 5 | Our goal is to increase the rate of credible contributions by African software developers, designers, writers, and everyone involved in the sphere of technology to open source projects both locally and globally, changing Africans' perception from just the billion users to the NEXT BILLION CREATORS. 6 | 7 | An OSCA chapter lead represents a global network of open-source enthusiasts and is responsible for growing and supporting vibrant local OSCA communities in Africa. 8 | 9 | {% embed url="https://www.oscafrica.org/community" %} 10 | Learn more about the OSCA community. 11 | {% endembed %} 12 | -------------------------------------------------------------------------------- /community/chapters/chapter-leads-application.md: -------------------------------------------------------------------------------- 1 | # Chapter Leads Application 2 | 3 | Kindly apply to start an OSCA chapter in your city with the link below 👇🏾 4 | 5 | {% embed url="http://bit.ly/osca-leads-application" %} 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /community/chapters/chapter-leads-onboarding-guide.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Introductory guide to the OSCA Chapters Program for new chapter leads. 3 | --- 4 | 5 | # Chapter Leads OnBoarding Guide 6 | 7 | [Open Source Community Africa](https://oscafrica.org/community) (OSCA) is an inclusive community created in 2018 for open-source lovers, enthusiasts, advocates, and experts within Africa. As a community, we intend to help integrate the act of open-source contribution to African developers whilst strongly advocating the movement of free and open-source software. 8 | 9 | Our goal is to increase the rate of credible contributions by African software developers, designers, writers, and everyone involved in the sphere of technology to open-source projects both locally and globally, changing Africans' perception from just the billion users to the **NEXT BILLION CREATORS**. 10 | 11 | As an OSCA Chapter Lead, you represent a global network of open-source enthusiasts, and you are responsible for growing and supporting a vibrant local OSCA community in Africa. 12 | 13 | ![](../../.gitbook/assets/52054757972\_a14c3175e6\_o.jpg) 14 | 15 | ### Chapter Lead Responsibilities 16 | 17 | As an OSCA chapter lead in the program, we expect you to: 18 | 19 | * Abide by our [community code of conduct](https://docs.oscafrica.org/about/community-code-of-conduct). 20 | * Lead an engaged communication channel for your chapter. 21 | * Host events (offline or online) that align with OSCA’s goal. 22 | * Teach and support your community members to contribute to and build open-source projects that solve social problems or any problem around them. 23 | * Measure and report all activities you organize and engage in. 24 | * Promote Open Source Community Africa in your chapter. 25 | * Share updates, feedback, event details, and more as may be requested by the Community Managers to keep them abreast of the amazing work you are doing in your chapter. 26 | 27 | ### Recommended Practices 28 | 29 | Successful leads ensure that the local community they lead embodies OSCA’s core mission and goals. We strongly recommend doing the following as a Chapter Lead: 30 | 31 |
32 | 33 | 1️⃣ Promote Open Source and Open Source Community Africa in your City 34 | 35 | * Evangelize OSCA programs and activities within your local tech community. 36 | 37 | 38 | 39 | * Share updates about your chapter through your different social media channels (Discord, LinkedIn, Twitter, Facebook, WhatsApp, etc.) 40 | 41 | 42 | 43 | * Act as a mentor to your community members, connecting them to opportunities, and identifying partnerships. 44 | 45 |
46 | 47 |
48 | 49 | 2️⃣ Lead an Engaged Communication Channel for Your Chapter 50 | 51 | * Keep track of all your community members' counts and demographics. 52 | 53 | 54 | 55 | * Promote ongoing discussions and knowledge sharing. 56 | 57 | 58 | 59 | * Post content and helpful resources about open-source frequently. 60 | 61 | 62 | 63 | * Understand your community members’ interests and create activities around them. 64 | 65 |
66 | 67 |
68 | 69 | 3️⃣ Host Events and Activities 70 | 71 | * Teach and support your community members to contribute to and build open-source projects that solve social problems or any problem around them. 72 | 73 | 74 | 75 | * Plan a physical or virtual event as outlined in the community calendar to avoid being blacklisted. 76 | 77 | 78 | 79 | * Invite local or global speakers with experience in the covered topics. 80 | 81 | 82 | 83 | * Communicate and partner with local communities, tech hubs, and organizations. 84 | 85 | 86 | 87 | * Host any activity (meetup, webinar, workshop, hackathon, project, etc.) that supports your community's open-source education needs. 88 | 89 |
90 | 91 |
92 | 93 | 4️⃣ Coordinate with OSCA’s Community Managers 94 | 95 | * Participate in the monthly community calls with your community manager. 96 | 97 | 98 | 99 | * If you need to take any action and you're unsure if it's acceptable, please ensure to run the idea through your community manager for approval before proceeding. 100 | 101 | 102 | 103 | * Coordinate with the Open Source Community Africa for support in planning your event (scope, promotion, etc.). 104 | 105 | 106 | 107 | * Submit event reports after every meetup/event you organize for your local community. 108 | 109 |
110 | 111 | ### Chapter Leads Hub 112 | 113 | As an OSCA Chapter Lead, you will use the private [Chapter Leads Hub](https://github.com/oscafrica/chapter-leads-hub) GitHub repository for: 114 | 115 | * Discussing and planning chapter activities. 116 | * Requesting help, support, or materials from Open Source Community Africa. 117 | * Tracking and talking about the activities you are organizing. 118 | * Exploring the design assets, expenses guide, and sponsorship guide. 119 | * Anything else a Chapter Lead needs to be successful. 120 | 121 | Kindly read all the guides (design, sponsorship, expenses, and budget) and other resources, as outlined in the README. 122 | 123 | ### Approved Services 124 | 125 | You can create an account for your chapter on the following approved services using your official Gmail address and naming convention as instructed below. 126 | 127 | * Gmail 128 | * X (Twitter) 129 | * WhatsApp groups 130 | * Telegram groups 131 | * GitHub individual account or organization 132 | * GitLab individual account or organization 133 | 134 | {% hint style="info" %} 135 | Please note that you're not allowed to create an account for your chapter on any platform or service other than the ones mentioned in this guide. If you need anything else or when in doubt, kindly reach out to your community managers for help before doing anything. 136 | {% endhint %} 137 | 138 | ### Social Media 139 | 140 | As an OSCA lead, you represent us and our values, and we implore you **not** to use any hate speech on social media. Instead, find below guides to follow while interacting with members of your community: 141 | 142 | 1. Create a [Gmail address](https://accounts.google.com/SignUp) for your chapter (e.g., oscakampala@gmail.com). You will use this email to sign up for other approved services and to send emails to members of your community/event attendees. 143 | 2. Create an [X (Twitter) account](https://twitter.com/i/flow/signup) for your chapter and customize the account. 144 | 3. Ensure that the account name always starts with OSCA followed by the chapter name (e.g., OSCA Nairobi), and the handle should be OSCA (in lowercase) followed by the chapter name (e.g., @oscanairobi or @osca\_nairobi). 145 | 4. Upon creating a social account for your chapter, kindly copy, edit, and use this for your chapter’s bio: _"A budding @osca\_hq community of open-source advocates and contributors in \[Chapter’s city, State, Country Flag]."_ 146 | 5. Always tag @osca\_hq when creating awareness about your events or initiatives. 147 | 6. Use the hashtags like **#OSCAUyo**. That is, #OSCA\[City of your chapter]. 148 | 7. When giving out information, ensure that it is from a reliable source. 149 | 8. Do not post negative information about OSCA or its affiliates or partners. 150 | 151 | *** 152 | 153 | Thank you for coming this far. We wish you all the best as you begin this new journey. Cheers! 🧡 154 | -------------------------------------------------------------------------------- /community/chapters/chapter-leads-onboarding.md: -------------------------------------------------------------------------------- 1 | # Chapter Leads OnBoarding 2 | 3 | -------------------------------------------------------------------------------- /community/chapters/chapters-design-guide.md: -------------------------------------------------------------------------------- 1 | # Chapters Design Guide 2 | 3 | {% file src="../../.gitbook/assets/OSCA Chapters Design Guide.pdf" %} 4 | -------------------------------------------------------------------------------- /community/chapters/global-chapters-events.md: -------------------------------------------------------------------------------- 1 | # Global Chapters Events 2 | 3 | -------------------------------------------------------------------------------- /community/features.md: -------------------------------------------------------------------------------- 1 | # Features 2 | 3 | -------------------------------------------------------------------------------- /community/open-source-events.md: -------------------------------------------------------------------------------- 1 | # Open Source Events 2 | 3 | -------------------------------------------------------------------------------- /community/open-source-jobs.md: -------------------------------------------------------------------------------- 1 | # OSS Jobs 2 | 3 | -------------------------------------------------------------------------------- /community/roadmap.md: -------------------------------------------------------------------------------- 1 | # Roadmap 2 | 3 | -------------------------------------------------------------------------------- /contributing/design/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Everything Design related in OSCA 3 | --- 4 | 5 | # Design 6 | 7 | ### Join our conversation 8 | 9 | You can join the discussions in the OSCA `#design` channel on [Discord](https://bit.ly/discord), under the OSS groups category. 10 | 11 | You can talk to us about any of the design-related issues. 12 | 13 | -------------------------------------------------------------------------------- /contributing/design/guidelines.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Hey there 👋🏽 Welcome to OSCA design! We always need and welcome more contributors. 4 | 5 | ## Join our conversation 6 | 7 | You can join the discussions in the OSCA `#design` channel on [Discord](https://discord.gg/8STPZzN), under the OSS groups category. 8 | 9 | * **Visual designs** - Event and Social media flyers, Patterns, illustrations, wallpapers, swags ideas\(stickers, t-shirts etc\). 10 | * **UI and UX** - mostly web centric for now - official websites and sub domains. 11 | * **Design documention** - if you'd love to write about Open Source Design, suggest changes our existing documentions like the design style guides etc. 12 | 13 | ## Unsure of how to get involved to OSCA as a **designer**? 14 | 15 | You can join the discussions in the O.S.C.A **design** channel on [Discord](https://discord.gg/8STPZzN), under the OSS groups category. Feel free to introduce yourselve, we're all joyful people :\). You can also talk to us about any of the design-related issues. 16 | 17 | ## Catch up? 18 | 19 | If you want to contribute, it is good to first familiarise yourself with our existing design work. 20 | 21 | * [Website style guide](https://www.figma.com/file/dDQ0f43gracsqn1LJYk91E/New-OSCA-website?node-id=608%3A0) 22 | * [Go through OSCA's brand assests](https://github.com/oscafrica/Design/tree/master/Brand%20Assets) 23 | * [See Festival assests and designs](https://github.com/oscafrica/Design/tree/master/OSCAFEST'20%20Assets) 24 | 25 | NB: Primary the fonts we use are: 26 | 27 | * [Ubuntu](https://fonts.google.com/specimen/Ubuntu?query=ubun) designed by Dalton Maag 28 | * [Gotham](https://www.downloadfonts.io/gotham-font-family-free/) design by Tobias Frere-Jones 29 | 30 | ## Issues? 31 | 32 | You can start by looking through the `good first issues` label. Also, you might want to contribute to a particular aspect of design that you’re most proficient in … don’t worry we’ve got you! Each design task is given a label of the type of design work required to complete that issue `UI/UX`, `graphics`, `design-documentation`. 33 | 34 | **Yes! 💪🏽 seen what you’d love to help with?** 35 | 36 | Just start, you don’t need approval from anyone. Once you have something ready for review, drop a comment and someone will attend to you ☺️. 37 | 38 | We can’t wait to receive your contributions! :\) 39 | Feel free to talk to us about any of the design-related issues. 40 | -------------------------------------------------------------------------------- /contributing/design/style-guide.md: -------------------------------------------------------------------------------- 1 | # Style Guide 2 | 3 | -------------------------------------------------------------------------------- /contributing/documentation/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Everything Documentation related in OSCA 3 | --- 4 | 5 | # Documentation 6 | 7 | ### Join our conversation 8 | 9 | You can join the discussions in the OSCA `#documentation` channel on [Discord](https://bit.ly/discord), under the OSS groups category. 10 | 11 | You can talk to us about any of the documentation-related issues. 12 | 13 | -------------------------------------------------------------------------------- /contributing/documentation/guidelines.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Contribute to OSCA Documentation 3 | --- 4 | 5 | # Contribution Guidelines 6 | 7 | This document will guide you through contributing to our documentation from start to finish. 8 | 9 | ### Prerequisites 10 | 11 | * A GitHub account. You can [create one here](https://github.com/join). 12 | * Basic understanding of the Git workflow. 13 | * Read our [style guide](../design/style-guide.md) to see our writing style and expectations. 14 | * Basic understanding of [how markdown works](https://www.markdownguide.org/). 15 | 16 | ### Using Git and GitHub 17 | 18 | ### Using Gitbook and GitHub 19 | 20 | ### Editing existing docs pages 21 | 22 | ### Linking pages or sections of a page together 23 | 24 | ### Adding new sections, pages and subpages 25 | 26 | -------------------------------------------------------------------------------- /contributing/documentation/style-guide.md: -------------------------------------------------------------------------------- 1 | # Style Guide 2 | 3 | -------------------------------------------------------------------------------- /contributing/documentation/useful-resources.md: -------------------------------------------------------------------------------- 1 | # Useful Resources 2 | 3 | -------------------------------------------------------------------------------- /contributing/engineering/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: Everything Engineering related in OSCA 3 | --- 4 | 5 | # Engineering 6 | 7 | ### Join our conversation 8 | 9 | You can join the discussions in the OSCA `#engineering` channel on [Discord](https://bit.ly/discord), under the OSS groups category. 10 | 11 | You can talk to us about any of the engineering-related issues. 12 | 13 | -------------------------------------------------------------------------------- /contributing/engineering/conventions.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: >- 3 | Conventions include generic patterns that ensure that written code adheres to 4 | certain formatting conventions. 5 | --- 6 | 7 | # Conventions 8 | 9 | ### Code 10 | 11 | * Tabs or two-space indentation 12 | * Use shorthand for conditional statements 13 | * Always open braces on the same line as the previous statement and close braces on the same indent as the original function like so: 14 | 15 | ```javascript 16 | function textComponent() { 17 | return { 18 | name: "OSCA" 19 | }; 20 | } 21 | ``` 22 | 23 | ### Naming 24 | 25 | * Constructor functions should use the TitleCase 26 | * Variables, directories and methods should use the camelCase 27 | * Variables or elements with multiple words should always use an underscore between words. 28 | 29 | ```javascript 30 | const user_params = null; 31 | ``` 32 | 33 | * Private methods should start with a leading underscore to separate them from public methods 34 | 35 | ```javascript 36 | const _inputType = inputType; 37 | ``` 38 | 39 | * Abbreviations should be avoided please to avoid confusion 40 | * Comments should include enough information about what a part of code is supposed to do. 41 | 42 | ```javascript 43 | // Define default props of the TextBox component 44 | 45 | TextBox.defaultProps = { 46 | className: "", 47 | disabled: false, 48 | inputType: "text" 49 | }; 50 | ``` 51 | 52 | ### Styling 53 | 54 | This project uses the [BEM](https://en.bem.info/) Methodology with a camelCase style. Read the start guide [here](https://en.bem.info/methodology/quick-start/) 55 | 56 | > BEM \(Block, Element, Modifier\) is a component-based approach to web development. The idea behind it is to divide the user interface into independent blocks 57 | 58 | Naming Rules: 59 | 60 | ```css 61 | blockName__elementName_modifierName_modifierValue 62 | ``` 63 | 64 | * Names are written in lowercase Latin letters. 65 | * Each word inside a name begins with an uppercase letter. 66 | * The block name defines the namespace for its elements and modifiers. 67 | * The element name is separated from the block name by a double underscore \(\_\_\). 68 | * The modifier name is separated from the block or element name by a single underscore \(\_\). 69 | * The modifier value is separated from the modifier name by a single underscore \(\_\). 70 | * For boolean modifiers, the value is not included in the name. 71 | 72 | -------------------------------------------------------------------------------- /contributing/engineering/guidelines.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | ## How to Contribute: 4 | 5 | We use the pull-request model, see [GitHub's help on pull-request](https://help.github.com/articles/using-pull-requests). 6 | 7 | In quick summary, you will: 8 | 9 | * on GitHub, find and fork the source repository; 10 | * on your computer, clone your forked repository, 11 | * commit your changes in a new branch; 12 | * push your branch and submit a pull-request for it; 13 | * go through the review process until your pull-request is merged; and 14 | 15 | #### Picking up issues 16 | 17 | * You should only pick up one issue at a time and must **assign yourself** to it. Any unassigned issue is up for grabs. 18 | * If you can no longer work on an issue, please un-assign yourself. 19 | * If someone is already assigned to an issue, do not un-assign them or submit a pull request with work related to that issue. 20 | * If you notice the person assigned to the issue hasn't made any updates in more than one week, you can @ them in a comment to check in. 21 | 22 | _Please note there is no need to ask permission to work on an issue. You should check for pull requests linked to an issue you are addressing; if there are none, then assume nobody has done anything._ 23 | 24 | _Begin to fix the problem, test, make your commits, push your commits, then make a pull request. Mention an issue number in the pull request, but not the commit message. These practices allow for sanity and orderliness for revieweres_ 25 | 26 | ## Projects: 27 | 28 | All of our active repositories can be found on our [GitHub O.S.C.A\`organization](https://github.com/oscommunityafrica). 29 | 30 | #### Checklist - anyone 31 | 32 | * [ ] make a fork and clone it, 33 | * [ ] confirm if what you want to change is already present in any other branches or forks, 34 | * [ ] make and test your changes, 35 | * [ ] if your changes add a new feature or will affect users; update the README.md file 36 | * [ ] make a branch, push your commits, and a pull request, see [Workflow](guidelines.md##workflow) below. 37 | 38 | #### Checklist - maintainer 39 | 40 | * [ ] look for commits _after_ any of these, in either; 41 | * [ ] master branch of repository at O.S.C.A, 42 | * [ ] any other branches, 43 | * [ ] any other forks, 44 | * [ ] review and merge all pull requests, 45 | * [ ] apply all desired commits, make pull requests if review is needed, 46 | * [ ] update the README.md file if necessary, 47 | 48 | ### Workflow 49 | 50 | #### Open an Issue 51 | 52 | We track issues in the GitHub Issues tab of repositories. 53 | 54 | An improvement to any of the projects may start with an issue discussion, to build consensus and ensure that work isn't wasted. An issue may be avoided for fixing bugs that are obvious to everyone or part of a project. 55 | 56 | #### Forking 57 | 58 | You should first fork a repository on GitHub. This step is needed only once. See [complete help in GitHub](https://help.github.com/articles/fork-a-repo). 59 | 60 | #### Cloning 61 | 62 | You should clone your fork. This step is needed only once. Using [sugar](https://github.com/oscommunityafrica/docs) as example; 63 | 64 | ```text 65 | git clone git@github.com:YOUR-NAME/sugar.git 66 | cd docs 67 | git remote add upstream https://github.com/oscommunityafrica.git 68 | git fetch upstream 69 | ``` 70 | 71 | #### Branching 72 | 73 | Create a branch per set of changes; e.g. to fix a problem or add a feature; 74 | 75 | ```text 76 | git checkout -b BRANCH-NAME 77 | ``` 78 | 79 | Your BRANCH-NAME can be anything, other than master. The scope is your forked repository. The branch name will be shown on pull-requests. 80 | 81 | #### Making commits 82 | 83 | Change files, and commit. Commit messages are kept by git, and are used later when problems are being solved. When writing a commit message; 84 | 85 | 1. start with a one line summary of the change; 86 | 2. leave a blank line after the summary; 87 | 3. explain the problem that is solved, unless the summary makes it obvious; 88 | 4. when the problem was introduced by a previous commit, mention the hash; 89 | 5. when the problem is in an issue or ticket, add "Fixes \#34"; 90 | 6. avoid mentioning GitHub or other pull-requests, as these are not kept in git; 91 | 7. avoid mentioning any tasks or irrelevant words ; use pull-request comments instead; and 92 | 8. make use of british english in spellings imperative mood 93 | 94 | Make one or more commits and push the branch to your repository; 95 | 96 | ```text 97 | git push origin BRANCH-NAME 98 | ``` 99 | 100 | #### Sending a pull-request 101 | 102 | 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. 103 | 104 | When writing a pull-request message; 105 | 106 | 1. if there is only one commit, begin with the GitHub default of the commit message, otherwise write a summary of the series of commits; 107 | 2. link to any relevant pull-requests, issues, or tickets; and 108 | 109 | A review will happen in the pull-request, and a reviewer will either; 110 | 111 | 1. merge, squash, or rebase your commits; 112 | 2. merge your commits with their own changes; 113 | 3. ask you to make changes; or 114 | 4. close and reject your pull-request giving reasons. 115 | 116 | When they ask you for changes, you may have to change both files, commits or commit messages. 117 | 118 | When squashing commits to different files, use interactive rebase. 119 | 120 | ```text 121 | git rebase -i master 122 | ``` 123 | 124 | After resolving any conflicts, push the changes to the same branch; 125 | 126 | ```text 127 | git push --force origin 128 | ``` 129 | 130 | Then respond on the pull-request. 131 | 132 | #### Keep your pull-request up to date 133 | 134 | When there has been upstream commits while your pull-request was open, you should rebase your pull-request; 135 | 136 | ```text 137 | git pull --rebase upstream 138 | ``` 139 | 140 | Then push the changes to the same branch; 141 | 142 | ```text 143 | git push --force origin 144 | ``` 145 | 146 | The pull-request will be updated. 147 | 148 | #### Keep your fork up to date 149 | 150 | When there has been upstream commits since your fork was made, you should bring these into your fork: 151 | 152 | ```text 153 | git checkout master 154 | git pull upstream 155 | git checkout BRANCH-NAME 156 | ``` 157 | 158 | #### Review 159 | 160 | We encourage testing before merging a pull-request. 161 | 162 | So instead of merging directly with the "merge" button on GitHub, we may do a local merge, then test, then push. 163 | 164 | See [GitHub help on merging a pull-request](https://help.github.com/articles/merging-a-pull-request). 165 | 166 | The GitHub page for the pull-request will provide you the right commands to do the local merge, similar to the following. 167 | 168 | Get the changes from that branch to a new local branch: 169 | 170 | ```text 171 | git checkout -b SOME-USER-topic1 master 172 | git pull https://github.com/SOME-USER/doc.git topic1 173 | ``` 174 | 175 | Test! If everything is fine, merge: 176 | 177 | ```text 178 | git checkout master 179 | git rebase SOME-USER-topic1 180 | git push origin master 181 | ``` 182 | 183 | #### Close Issue 184 | 185 | Once your pull-request is merged, you should close any issue or ticket. GitHub issues named as "Fixes" in a commit message may be automatically closed. 186 | 187 | Be sure to thank everyone who helped you out along the way. 188 | 189 | ## Guide for Reviewers 190 | 191 | #### Goals 192 | 193 | The Goal\(s\) for every review is to; 194 | 195 | * detect trivial mistakes, 196 | * maintain consistent and good code quality, 197 | * reproduce test results, \(especially for critical repositories\), 198 | * maintain a useful git commit history for use by git bisect, and developers who read it, 199 | * maintain other records, such as issues, tickets, and documentation, 200 | * not waste the time of the contributor, by doing anything trivial that otherwise the contributor might have to do. 201 | 202 | #### Checklist 203 | 204 | * [ ] does the change have consensus of the community, see also our [code of conduct](https://github.com/oscafrica/documentation/tree/167834663f1062d3849467800467c77384e697de/src/src/OSCA%20Code%20of%20Conduct.md) \(if a reviewer is in doubt, seek opinions by @mentioning people\), 205 | * [ ] does the commit message explain the summary, problem, and solution, so that it can be used in future analysis, see also [making commits](guidelines.md#making-commits) \(if a reviewer can fix it by squash or manual rebase, do so\), 206 | * [ ] does the commit message reference any issue \(if a reviewer can fix it by squash or manual rebase, do so\), 207 | * [ ] are the number of commits excessive for future analysis, \(a reviewer may squash or rebase if necessary\), 208 | * [ ] is the changed code consistent in style with the existing code 209 | 210 | ### Frequently Asked Questions 211 | 212 | #### I've used the GitHub editor, how can I rebase or amend commits? 213 | 214 | Make a local clone of your GitHub repository, use `git commit --amend` or the other advanced CLI features, then `git push` back to GitHub. 215 | 216 | #### Error 403 on `git push` 217 | 218 | You have Most likely cloned someone else's repository, and you should instead fork their repository, clone your own repository, make your changes, then push. 219 | 220 | -------------------------------------------------------------------------------- /contributing/issue-labels.md: -------------------------------------------------------------------------------- 1 | # Issue Labels 2 | 3 | ### Engineering 4 | 5 | _Coming soon_ 6 | 7 | ### Design 8 | 9 | | Label name | Description | 10 | | :--- | :--- | 11 | | design-approved | Design ready for development | 12 | | design-in-progress | On going design task | 13 | | design-ready | Design is ready for review | 14 | | design - Stalled | Something isn't working | 15 | | design-issue | Issues related to design | 16 | | design-documentation | Improvements or additions to the documentation | 17 | | duplicate | This issue or pull request already exists | 18 | | enhancement | New feature or request | 19 | | good first issue | Good for newcomers | 20 | | Graphics | Graphics related issues | 21 | | help wanted | Extra attention is needed | 22 | | Ideation | Design ideas we're thinking about but not doing | 23 | | invalid | This doesn't seem right | 24 | | question | Further information is requested | 25 | | social media & PR | Design issues related to social media & PR | 26 | | UI/UX | Issues related to web design | 27 | | Website | Issues related to website | 28 | | wontfix | This will not be worked on | 29 | 30 | ### Documentation 31 | 32 | _Coming soon_ 33 | 34 | -------------------------------------------------------------------------------- /expenses-and-getting-paid/edit-an-expense.md: -------------------------------------------------------------------------------- 1 | # Edit an Expense 2 | 3 | -------------------------------------------------------------------------------- /expenses-and-getting-paid/expense-comments.md: -------------------------------------------------------------------------------- 1 | # Expense Comments 2 | 3 | -------------------------------------------------------------------------------- /expenses-and-getting-paid/submitting-expenses.md: -------------------------------------------------------------------------------- 1 | # Submitting Expenses 2 | 3 | -------------------------------------------------------------------------------- /finance/approving-expenses.md: -------------------------------------------------------------------------------- 1 | # Approving Expenses 2 | 3 | -------------------------------------------------------------------------------- /finance/events.md: -------------------------------------------------------------------------------- 1 | # Events 2 | 3 | -------------------------------------------------------------------------------- /finance/expense-policy.md: -------------------------------------------------------------------------------- 1 | # Expense Policy 2 | 3 | -------------------------------------------------------------------------------- /finance/expenses-and-getting-paid/README.md: -------------------------------------------------------------------------------- 1 | # Expenses & Getting Paid 2 | 3 | -------------------------------------------------------------------------------- /finance/expenses-and-getting-paid/approving-expenses.md: -------------------------------------------------------------------------------- 1 | # Approving Expenses 2 | 3 | -------------------------------------------------------------------------------- /finance/expenses-and-getting-paid/edit-an-expense.md: -------------------------------------------------------------------------------- 1 | # Edit an Expense 2 | 3 | -------------------------------------------------------------------------------- /finance/expenses-and-getting-paid/scope.md: -------------------------------------------------------------------------------- 1 | # Scope 2 | 3 | -------------------------------------------------------------------------------- /finance/expenses-and-getting-paid/submitting-expenses.md: -------------------------------------------------------------------------------- 1 | # Submitting Expenses 2 | 3 | -------------------------------------------------------------------------------- /finance/faq.md: -------------------------------------------------------------------------------- 1 | # FAQ 2 | 3 | -------------------------------------------------------------------------------- /finance/tiers-and-goals.md: -------------------------------------------------------------------------------- 1 | # Tiers & Goals 2 | 3 | -------------------------------------------------------------------------------- /financial-contributors/individuals.md: -------------------------------------------------------------------------------- 1 | # Individuals 2 | 3 | -------------------------------------------------------------------------------- /financial-contributors/organizations.md: -------------------------------------------------------------------------------- 1 | # Organizations 2 | 3 | -------------------------------------------------------------------------------- /oss-programs/google-season-of-docs.md: -------------------------------------------------------------------------------- 1 | # Google Season of Docs 2 | 3 | The goal of Season of Docs is to provide a framework for technical writers and open source projects to work together towards the common goal of improving an open-source project's documentation. 4 | 5 | Learn more 👇🏿 6 | 7 | {% embed url="https://developers.google.com/season-of-docs" %} 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /oss-programs/google-summer-of-code.md: -------------------------------------------------------------------------------- 1 | # Google Summer of Code 2 | 3 | Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open-source organization on a 3-month programming project during their break from school. 4 | 5 | Learn more 👇🏿 6 | 7 | {% embed url="https://summerofcode.withgoogle.com/" %} 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oss-programs/hacktoberfest.md: -------------------------------------------------------------------------------- 1 | # Hacktoberfest 2 | 3 | Hacktoberfest is a month-long celebration of open source software run by DigitalOcean in partnership with GitHub and Twilio. When you submit five quality pull requests to public GitHub repositories, you get a chance to earn a limited-edition T-shirt. 4 | 5 | Learn more 👇🏿 6 | 7 | {% embed url="https://hacktoberfest.digitalocean.com/" %} 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oss-programs/osca-open-source-challenge.md: -------------------------------------------------------------------------------- 1 | # OSCA Open Source Challenge 2 | 3 | -------------------------------------------------------------------------------- /oss-programs/outreachy.md: -------------------------------------------------------------------------------- 1 | # Outreachy 2 | 3 | Outreachy provides remote internships that support diversity in open source and free software. Outreachy internships are 3 months long and interns are paid an internship stipend of $5,500 USD with a $500 USD travel stipend to attend conferences or events. 4 | 5 | Learn more 👇🏿 6 | 7 | {% embed url="https://www.outreachy.org/" %} 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /projects/osca-chapters-directory.md: -------------------------------------------------------------------------------- 1 | # OSCA Chapters Directory 2 | 3 | -------------------------------------------------------------------------------- /projects/osca-design.md: -------------------------------------------------------------------------------- 1 | # OSCA Design 2 | 3 | -------------------------------------------------------------------------------- /projects/osca-discord-bot.md: -------------------------------------------------------------------------------- 1 | # OSCA Discord Bot 2 | 3 | -------------------------------------------------------------------------------- /projects/osca-documentation.md: -------------------------------------------------------------------------------- 1 | # OSCA Documentation 2 | 3 | -------------------------------------------------------------------------------- /projects/osca-twitter-bot.md: -------------------------------------------------------------------------------- 1 | # OSCA Twitter Bot 2 | 3 | -------------------------------------------------------------------------------- /projects/osf-website.md: -------------------------------------------------------------------------------- 1 | # OSF Website 2 | 3 | --------------------------------------------------------------------------------