Congratulations on supporting the birth of a new Open Source Software project! This page will help those mentors and students approaching this for the first time to standardize their delivery and help their project thrive.
This page is segmented into a few sections to try and not overfit to all problems. The Basic section is a set of tasks that each project should do at a minimum. The Advanced section details considerations for enabling a more mature project and experience for the students. Finally, the Transfer to Code Day Labs section details the tasks needed to transfer the project to a new home with the Code Day organization.
Note: For simplicity, tools and documentation links are to GitHub. Other SCM providers like GitLab maybe used as well.
Basic
- [ ] Add an OSS License to the repo
- [ ] Create a contributing.md file to help onboard new contributors to the project
Advanced
- [ ] Create a GitHub Organization for the project: This allows more than one Maintainer/Admin to exist to support the longevity of the project
- [ ] Document any major architecture decisions in an ARCHITECTURE.md: This allows new contributors to understand the overall architecture design and system constraints
- [ ] Choose a tech stack starter project
- [ ] Web Apps: (please suggest additions)
- [ ] Set up Branch Protections for:
- [ ] Code Review - how many approvals are needed for the
main
branch? Are there CODEOWNERS who need to approve?
- [ ] GitHub Actions
- [ ] Tests: Tests that will be executed on Pull Requests that will prevent merge if they fail.
- [ ] Linters: Coding style formats that can be enforced on Pull Requests that prevent merge if they fail
- [ ] Pre-Commit hooks that format code before submission
- [ ] Use GitHub Issues and Projects to track open bugs and features
- [ ] Deployment Mechanism: How will the project be deployed if it has a footprint.
- [ ] Web App - free
- [ ] Web App Backend - free
- [ ] Supabase: Free for up to 2 projects per user; supports PostGRES as a backend (including Vector search), authentication, Lambda/Serverless functions and Storage (S3 compatible)
- [ ] Docker
- [ ] DockerHub: Free image registry to push Docker images to for various platforms
Transfer to Code Day Labs
To donate the Project to Code Day Labs you need to meet the below listed requirements. Benefits of making this move are that future student interns can contribute to the project.
If the below are complete, there is a good chance we will have students contribute to it in the future.