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