Contribution Guidelines #
These are Open Science Labs' (OSL) general recommendations for affiliated projects, including sub-organizations participating in Google Summer of Code (GSoC) under the OSL umbrella. Maintainers can use, adapt, or incorporate these recommendations partially or completely into their own project guidelines. Contributors: also read the guidelines of the project you are contributing to. Applicable codes of conduct and official program rules still apply.
Prepare Contribution Resources #
Publish a CONTRIBUTING.md file and issue or pull request templates covering:
- Where to ask questions, discuss ideas, and request reviews.
- How to set up the development environment and choose a first task.
- Which coding, testing, documentation, and AI-use policies the project follows.
- How reviews work, including expected response times and how inactive work is handled.
- How GSoC contributors and mentors will share progress and arrange check-ins.
Link these resources from the project idea page and onboarding materials. If expectations change, explain the change to contributors and give them time to adapt. Include the technical practices described in Coding Tips in your onboarding resources.
Community Engagement #
- Communication Platforms: Choose clear channels for discussions, help, and review requests, such as GitHub, GitLab, Discord, or Slack. Explain the purpose of each channel. Keep technical discussions public so others can learn; use private channels for sensitive matters.
- Collaboration and Support: Help others when possible. Share what you learn and support fellow contributors as they develop their skills.
- Respect and Inclusivity: Communicate with kindness and respect, particularly with beginners and colleagues for whom English is not their first language. Give constructive feedback and encouragement that helps others develop their language and technical skills.
- Channel Usage: Share links to issues and pull requests in the coordination channel when discussion or review is needed. Discuss substantial work before implementation, and record decisions in the relevant issue or pull request.
- Mentoring and Progress: For GSoC, agree on realistic check-in times, progress updates, and a way to raise blockers. Hold short regular meetings and record next steps. Account for time zones, accessibility needs, and mentor availability when setting the routine.
Contributions #
- Task Coordination: Before starting, check whether a task is still relevant and whether someone is already working on it. Comment on the issue or use the coordination channel. Maintainers: provide small starter tasks and examples of helpful contributions, including documentation and tests.
- Discussing Larger Changes: Propose substantial features, architectural changes, or broad refactoring before implementation. Agree on scope with maintainers and split the work into focused pull requests where practical.
- Preparing for Review: Explain the problem, proposed change, and validation in your pull request. Link related issues, use the pull request template, and describe remaining questions. Keep unfinished work in draft and mark it ready when it is prepared for review.
- Reviewing Together: Treat review as a chance to learn. Respond to feedback and explain tradeoffs. As a reviewer, distinguish required changes from suggestions and explain your reasoning. Allow time for replies before following up through the agreed channel.
- Managing Inactive Work: Publish a process and timeframes for labeling, returning to draft, or closing inactive issues and pull requests. Check in with the contributor before taking action and explain how work can resume. Account for contributor circumstances and delays in mentor or maintainer feedback.
- Branch Management: Document whether branch updates use a rebase or a merge commit, and use that approach consistently.
Coding Tips #
Technical recommendations now have their own Coding Tips page. It covers readable code, development environments, automated checks, testing, documentation, and responsible use of AI tools.
GSoC Selection and Mentoring #
Read the recommendations for your role in the GSoC guide:
- Organization Admins: coordinate participation, mentor capacity, selection criteria, and evaluations.
- Mentors: prepare project guidance, review candidates, and support contributor progress.
- Contributor Candidates: contact the community, explore the software, write about your experience, and prepare an application.
Further Guidance #
- GSoC Guides Overview: recommendations for organization admins, mentors, and contributor candidates.
- Three Years with Google Summer of Code: What I've Learned: OSL's experience with mentoring, communication, and manageable contributions.