Your First Pull Request¶
This tutorial walks you through making a change to a S-CORE repository and getting it merged. By the end, you will have submitted a real pull request.
Prerequisites
Complete Getting Started first. You need a working devcontainer and passing build.
1. Create a branch¶
git checkout -b my-first-change
Use a descriptive branch name for real contributions (e.g., fix/typo-in-readme or feat/add-unit-test).
2. Make a change¶
For this tutorial, pick something small: fix a typo, improve a comment, or add a missing test case.
3. Run checks locally¶
Before committing, verify your change:
bazel build //...
bazel test //...
pre-commit run --all-files
All three must pass. Pre-commit hooks catch formatting issues that would otherwise block CI.
4. Commit your change¶
git add <changed-files>
git commit
Write a clear commit message. S-CORE follows conventional formatting:
- First line: short summary (imperative mood, max ~72 characters)
- Blank line, then details if needed
Pre-commit hooks run automatically on commit. If they fail, fix the issue and commit again.
5. Push and create a pull request¶
git push -u origin my-first-change
Open the link printed by git push to create a pull request on GitHub. In the PR description:
- Explain what you changed and why
- Reference any related issues
6. Wait for CI¶
GitHub Actions runs the full test suite, pre-commit checks, and additional CI validations. Check the PR's "Checks" tab for results.
If CI fails, read the logs, fix the issue locally, push again. The PR updates automatically.
7. Address review feedback¶
A maintainer will review your PR. Respond to comments, push fixes if needed. Once approved, the PR gets merged.
What you've accomplished¶
You now know the full contribution cycle:
- Branch → Change → Local checks → Commit → Push → PR → CI → Review → Merge
Next steps¶
- How-to: Code Quality — Understand what pre-commit and CI checks enforce
- How-to: Testing — Write and run different types of tests
- Explanation: Source Code Infrastructure — How repositories are organized and governed