Skip to content
22 changes: 21 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,26 @@ Technical Instructions
3. Pull Requests: Use our PR template and link the relevant issue.
4. Peer Review: All changes require a peer review comment before merging.

Standards
## File Naming Conventions

All files in this repository should follow **kebab-case** naming convention:

- Use lowercase letters
- Separate words with hyphens (-)
- Example: `getting-started.md`, `pull-request-template.md`

### Correct Examples
- `CODE_OF_CONDUCT.md` (exception for existing files)
- `my-new-file.md`
- `api-reference.md`

### Incorrect Examples
- `my_new_file.md` (snake_case)
- `MyNewFile.md` (PascalCase)
- `my new file.md` (spaces)

## Standards

- Ensure all code is documented.
- Maintain zero merge conflicts with the main branch.
- Follow file naming conventions above.
43 changes: 41 additions & 2 deletions LEGAL_ANALYSIS.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,49 @@
# Legal Audit and Disciplinary Rationale

## Executive Summary

This document provides a comprehensive legal analysis of the BOSC Community Library's chosen license and its implications for various stakeholders, particularly in the public sector context.

## Choice of License: Apache 2.0

For the BOSC Community Library, the Apache License 2.0 was selected over more restrictive options like the GPLv3 or overly permissive options like MIT. For a public-sector project focused on government transparency, Apache 2.0 is superior because it allows for broad use while providing a clear grant of patent rights from contributors to users. This ensures that the Ministry of Education can adopt this library without the fear of "patent trolls" or hidden intellectual property litigation, which is a common barrier in public-sector software procurement.

The choice of Apache 2.0 was made after careful consideration of several factors relevant to our mission. First, the library aims to serve educational institutions across East Africa, many of which operate with limited budgets and cannot afford expensive licensing fees. Second, the project seeks to encourage both commercial and non-commercial contributions, making a permissive license ideal. Third, the Apache 2.0 license provides explicit patent protections that are crucial for institutions that may be targeted by patent assertions.

## Why Apache 2.0 is Superior for Public-Sector Projects

Government agencies and public educational institutions have unique requirements when adopting software solutions. Unlike private companies, public institutions are accountable to taxpayers and must demonstrate prudent use of public funds. The Apache 2.0 license supports these requirements in several ways.

First, there are no "copyleft" obligations that would require the government to make their modifications publicly available. This is important because many government software projects contain sensitive operational details that cannot be disclosed. While the BOSC Community Library itself is fully open, institutions can build proprietary extensions on top of it if needed for their specific operations.

Second, the license provides legal certainty. The Apache 2.0 license has been extensively reviewed and is widely accepted by the legal community. This reduces the risk of unexpected legal claims that could drain public resources. The license text is clear and comprehensive, leaving little room for interpretation disputes.

Third, the license is internationally recognized and compatible with most jurisdictions. This is particularly important for a project based in Uganda that may involve international collaborations or funding. The Apache 2.0 license has been approved by the Open Source Initiative (OSI) and is compatible with the Federal Advisory Committee's guidelines for government software procurement.

## Patent and Trademark Protections
Unlike the MIT license, which is silent on patents, the Apache 2.0 license includes an explicit patent grant. This means that any contributor who provides code to the BOSC library also grants a royalty-free, irrevocable patent license to use that code. Furthermore, it contains a "patent retaliation" clause: if anyone files a patent lawsuit against the project, their own patent licenses are automatically terminated. Regarding trademarks, this license specifically does not grant permission to use the "BOSC Community Library" name or logos, ensuring the project's brand integrity remains under the control of the lead maintainers.

Unlike the MIT license, which is silent on patents, the Apache 2.0 license includes an explicit patent grant. This means that any contributor who provides code to the BOSC library also grants a royalty-free, irrevocable patent license to use that code. This creates a protective layer for users, ensuring they cannot be sued for patent infringement simply for using the software.

Furthermore, the Apache 2.0 license contains a "patent retaliation" clause. If anyone files a patent lawsuit against the project or its users, their own patent licenses are automatically terminated. This provision discourages patent trolls from targeting the project and provides an additional layer of protection for public-sector users who may be attractive targets for patent litigation.

Regarding trademarks, the Apache 2.0 license specifically does not grant permission to use the "BOSC Community Library" name or logos. This ensures the project's brand integrity remains under the control of the lead maintainers. This is crucial for maintaining the project's reputation and preventing confusion about what constitutes the official version of the library.

## Comparison with Other Licenses

When evaluating licenses, we considered GPLv3, MIT, and BSD-3-Clause alongside Apache 2.0. The GPLv3 was rejected because its strong copyleft requirements would discourage commercial adoption. Many companies will not use GPL-licensed software due to the obligations it places on derivative works. For a project aiming to maximize adoption in both public and private sectors, this was unacceptable.

The MIT license, while permissive, lacks the patent protections provided by Apache 2.0. This is a significant omission for public-sector users who may be targeted by patent holders. The MIT license also does not include provisions for patent retaliation, leaving users vulnerable to patent litigation.

The BSD-3-Clause was considered but rejected because it is less widely used and recognized than Apache 2.0. The Apache license has been extensively vetted and has established case law supporting its interpretation.

## Commercial Implications and Paid Versions
If a commercial entity wishes to build a "paid version" of this library, the Apache 2.0 license allows them to do so. They can take the open-source code, add proprietary features, and sell it as a product. However, they cannot claim ownership of the original BOSC source code, and any modifications they distribute must include the original Apache 2.0 license and attribution notices. This "permissive" nature encourages a healthy ecosystem where private companies can provide professional support or specialized modules for the government, while the core library remains free and open for everyone.

If a commercial entity wishes to build a "paid version" of this library, the Apache 2.0 license allows them to do so. They can take the open-source code, add proprietary features, and sell it as a product. However, they cannot claim ownership of the original BOSC source code, and any modifications they distribute must include the original Apache 2.0 license and attribution notices.

This "permissive" nature encourages a healthy ecosystem where private companies can provide professional support or specialized modules for the government, while the core library remains free and open for everyone. This model has been successfully employed by companies like Google, Microsoft, and IBM with their open-source contributions.

For the Ministry of Education, this means they have options. They can use the library free of charge, they can hire third-party consultants to provide support, or they can eventually develop internal expertise. The license ensures that no single company can monopolize the technology or lock the ministry into expensive recurring costs.

## Conclusion

The Apache 2.0 license provides the optimal balance of openness, legal protection, and commercial flexibility for the BOSC Community Library. It protects public-sector users from patent risks while enabling a vibrant ecosystem of commercial and non-commercial contributions. This makes it the ideal choice for a project dedicated to advancing educational technology in East Africa.
93 changes: 92 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,92 @@
# BOSC-Community-Library
# BOSC Community Library

A professional open-source library maintained by the Bugema Open Source Community (BOSC), dedicated to providing educational resources and technology solutions for the East African region.

## Overview

The BOSC Community Library is an open-source project that aims to democratize access to educational resources and technology knowledge. Built with transparency, collaboration, and community empowerment at its core, this library serves as a hub for students, educators, and developers in Uganda and across East Africa.

## Mission

Empowering inclusive communities through open knowledge, local innovation, and technology.

## Features

- Open-source educational resources
- Community-driven content development
- Multi-language support
- Searchable resource database
- Comprehensive documentation

## Installation

Clone the repository:

```bash
git clone https://github.com/bos-com/BOSC-Community-Library.git
cd BOSC-Community-Library
```

## Usage

Browse the resource index to find relevant materials:

- **Community Guidelines**: See `CODE_OF_CONDUCT.md`
- **Contributing**: See `CONTRIBUTING.md`
- **Legal Information**: See `LEGAL_ANALYSIS.md`
- **Sustainability**: See `SUSTAINABILITY.md`

## Project Structure

```
BOSC-Community-Library/
├── .github/ # GitHub templates
│ ├── ISSUE_TEMPLATE.md
│ └── PULL_REQUEST_TEMPLATE.md
├── docs/ # Documentation
│ ├── guides/ # Tutorials and how-tos
│ └── api/ # Technical references
├── CODE_OF_CONDUCT.md # Community behavior standards
├── CONTRIBUTING.md # Contribution guidelines
├── LEGAL_ANALYSIS.md # License and legal analysis
├── LICENSE # Apache 2.0 License
├── README.md # This file
└── SUSTAINABILITY.md # Funding and sustainability strategy
```

## Contributing

We welcome contributions from the community! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting pull requests.

### Quick Start

1. Browse open issues and comment to be assigned
2. Create a feature branch for your work
3. Make your changes and ensure tests pass
4. Submit a pull request using our template
5. Wait for peer review before merging

## Code of Conduct

This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please read the [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

See [LEGAL_ANALYSIS.md](LEGAL_ANALYSIS.md) for detailed information about why Apache 2.0 was chosen and its implications for commercial use.

## Sustainability

The BOSC Community Library is committed to long-term sustainability. We operate under a hybrid funding model that combines foundation grants with community support. For detailed information, see [SUSTAINABILITY.md](SUSTAINABILITY.md).

## Contact

- **Lead Maintainer**: Muwanga Erasto Kosea
- **Email**: kmuwanga@bugemauniv.ac.ug
- **Organization**: Bugema Open Source Community (BOSC)
- **Website**: http://bugemauniv.ac.ug

---

Built with care by the Bugema Open Source Community
50 changes: 50 additions & 0 deletions RESOURCE_INDEX.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# BOSC Community Library - Resource Index

This file contains links to all community resources. All links have been verified and point to valid locations.

## Community Guidelines

| Resource | Location | Description |
|----------|----------|-------------|
| Code of Conduct | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | Community behavior standards |
| Contributing Guide | [CONTRIBUTING.md](CONTRIBUTING.md) | How to contribute to the project |

## Technical Standards

| Resource | Location | Description |
|----------|----------|-------------|
| Getting Started | [docs/guides/getting-started.md](docs/guides/getting-started.md) | Beginner guide for contributors |
| API Reference | [docs/api/reference.md](docs/api/reference.md) | Technical API documentation |

## Legal Documents

| Resource | Location | Description |
|----------|----------|-------------|
| License | [LICENSE](LICENSE) | Apache 2.0 License |
| Legal Analysis | [LEGAL_ANALYSIS.md](LEGAL_ANALYSIS.md) | Detailed license analysis |

## Project Information

| Resource | Location | Description |
|----------|----------|-------------|
| README | [README.md](README.md) | Main project documentation |
| Search Index | [SEARCH.md](SEARCH.md) | Quick search guide |
| Sustainability | [SUSTAINABILITY.md](SUSTAINABILITY.md) | Funding and sustainability strategy |
| Submission Log | [SUBMISSION_LOG.md](SUBMISSION_LOG.md) | Project audit trail |

## Localization

| Resource | Location | Description |
|----------|----------|-------------|
| Translations | [i18n/translations.json](i18n/translations.json) | Multi-language support |

## GitHub Features

| Resource | Location | Description |
|----------|----------|-------------|
| Issue Template | [.github/ISSUE_TEMPLATE.md](.github/ISSUE_TEMPLATE.md) | Template for creating issues |
| PR Template | [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md) | Template for pull requests |

---

*Last verified: May 2026*
51 changes: 51 additions & 0 deletions SEARCH.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# BOSC Community Library - Resource Search Index

## Quick Search Guide

Use this index to find resources in the BOSC Community Library quickly.

---

## Documentation Files

| Resource | File | Description |
|----------|------|-------------|
| Getting Started | [docs/guides/getting-started.md](docs/guides/getting-started.md) | Beginner guide |
| API Reference | [docs/api/reference.md](docs/api/reference.md) | Technical reference |
| Contributing | [CONTRIBUTING.md](CONTRIBUTING.md) | How to contribute |
| Code of Conduct | [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) | Community standards |
| Legal Analysis | [LEGAL_ANALYSIS.md](LEGAL_ANALYSIS.md) | License information |
| Sustainability | [SUSTAINABILITY.md](SUSTAINABILITY.md) | Funding strategy |
| License | [LICENSE](LICENSE) | Apache 2.0 License |

---

## Search by Category

### For New Contributors
- Start with: [docs/guides/getting-started.md](docs/guides/getting-started.md)
- Then read: [CONTRIBUTING.md](CONTRIBUTING.md)

### For Developers
- API docs: [docs/api/reference.md](docs/api/reference.md)
- License: [LEGAL_ANALYSIS.md](LEGAL_ANALYSIS.md)

### For Community Members
- Code of Conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
- Sustainability: [SUSTAINABILITY.md](SUSTAINABILITY.md)

---

## Keywords

- **beginner**: docs/guides/getting-started.md
- **contribute**: CONTRIBUTING.md
- **api**: docs/api/reference.md
- **legal**: LEGAL_ANALYSIS.md
- **license**: LICENSE
- **community**: CODE_OF_CONDUCT.md
- **funding**: SUSTAINABILITY.md

---

*Last updated: May 2026*
Loading