|
1 | | -# Contributing |
| 1 | +# Contributing to OpenStacks |
2 | 2 |
|
3 | | -Contributions are welcome! Please read the guidelines. |
| 3 | +Thank you for your interest in contributing to [OpenStacks for Change](https://openstacks.dev). This guide applies to all repositories in the ecosystem. |
| 4 | + |
| 5 | +## Who Can Contribute |
| 6 | + |
| 7 | +OpenStacks welcomes contributions from: |
| 8 | + |
| 9 | +- **Development practitioners** — Share tools, templates, and workflows from your own work (anonymised) |
| 10 | +- **Researchers and evaluators** — Contribute analysis scripts, methodologies, and replication files |
| 11 | +- **Data analysts and engineers** — Improve code quality, add tests, fix bugs |
| 12 | +- **Writers and editors** — Improve documentation, add use case guides, fix errors |
| 13 | +- **Students** — Practice with real-world development data and contribute improvements |
| 14 | + |
| 15 | +## How to Contribute |
| 16 | + |
| 17 | +### Reporting Issues |
| 18 | + |
| 19 | +- Use the repository's **Issues** tab to report bugs, suggest features, or ask questions |
| 20 | +- Check existing issues first to avoid duplicates |
| 21 | +- Use issue templates where available |
| 22 | + |
| 23 | +### Submitting Changes |
| 24 | + |
| 25 | +1. **Fork** the repository |
| 26 | +2. **Create a branch** for your change (`git checkout -b feature/your-feature-name`) |
| 27 | +3. **Make your changes** with clear, descriptive commit messages |
| 28 | +4. **Test your changes** — ensure scripts run and notebooks execute without errors |
| 29 | +5. **Submit a pull request** with a clear description of what you changed and why |
| 30 | + |
| 31 | +### What Makes a Good Contribution |
| 32 | + |
| 33 | +- **Self-contained** — Scripts should work independently with sample data |
| 34 | +- **Documented** — Include comments, a header description, and usage instructions |
| 35 | +- **Anonymised** — Never include real participant data, names, or identifying information |
| 36 | +- **Reproducible** — Include sample data or clear instructions for obtaining test data |
| 37 | +- **Tested** — Verify that your code runs without errors |
| 38 | + |
| 39 | +## Contribution Ideas by Stack |
| 40 | + |
| 41 | +| Stack | Good Contributions | |
| 42 | +|-------|-------------------| |
| 43 | +| **InsightStack** | MEL calculators, Stata/SPSS scripts, research templates | |
| 44 | +| **FieldStack** | R notebooks, survey tools, evaluation frameworks | |
| 45 | +| **EquityStack** | Python scripts, Jupyter notebooks, data workflows | |
| 46 | +| **SignalStack** | Research tool recommendations, method spotlights | |
| 47 | +| **RootStack** | Database schemas, seed data, SQL queries | |
| 48 | +| **BridgeStack** | FastAPI endpoints, data models, API tests | |
| 49 | +| **ViewStack** | Frontend components, chart templates, dashboard designs | |
| 50 | +| **PolicyStack** | Policy data, budget analysis scripts, government data scrapers | |
| 51 | + |
| 52 | +## Code Style |
| 53 | + |
| 54 | +- **Python:** Follow PEP 8. Use descriptive variable names. |
| 55 | +- **R:** Follow the tidyverse style guide. Use snake_case. |
| 56 | +- **Stata:** Use clear variable labels and value labels. |
| 57 | +- **Markdown:** Use ATX-style headers (`#`). Keep lines under 120 characters. |
| 58 | + |
| 59 | +## Data Standards |
| 60 | + |
| 61 | +- Use **CSV** for tabular data (UTF-8 encoding) |
| 62 | +- Include a **data dictionary** or codebook for any new datasets |
| 63 | +- **Never commit** real participant data, credentials, or API keys |
| 64 | +- Use **sample_data/** directories for test datasets |
| 65 | + |
| 66 | +## Questions? |
| 67 | + |
| 68 | +Open an issue in the relevant repository or email varna.sr@gmail.com. |
| 69 | + |
| 70 | +## Code of Conduct |
| 71 | + |
| 72 | +All contributors are expected to follow our [Code of Conduct](CODE_OF_CONDUCT.md). |
0 commit comments