Script Valley
Open Source Contribution: A Practical Guide
Maintaining and Owning Open Source/Assessment

Practice & Assessment

Test your understanding of Maintaining and Owning Open Source

Multiple Choice Questions

6
1

A maintainer prefixes a review comment with nit:. What does this signal to the contributor?

2

What does the Squash and merge strategy do to a PR's commit history?

3

Which tool automatically determines the correct SemVer bump and generates a CHANGELOG from Conventional Commits on push to main?

4

What is bus factor in the context of open source project sustainability?

5

When should you archive a GitHub repository rather than just stopping activity on it?

6

A rising PR backlog and declining contributor activity on GitHub Insights signals what maintainer action is needed?

Coding Challenges

1
1

Automated Release Preparation Script

Write a shell script that prepares a release for a Node.js open source project. The script accepts a version bump type (patch, minor, or major) as its argument. It must: (1) verify the git working directory is clean (fail with error if not), (2) fetch and verify the local main branch is up to date with origin, (3) run the test suite (npm test) and abort if tests fail, (4) bump the version in package.json using the provided type, (5) prepend a new section to CHANGELOG.md with the new version, today date, and placeholder sections for Added/Fixed/Changed, (6) create a git commit with message chore(release): v{version}, (7) create an annotated git tag v{version}. Input: patch, minor, or major. Output: success confirmation with new version number, or specific error messages at each failure point. Estimated time: 25-30 minutes.

Hard

Mini Project

1

Launch a Production-Ready Open Source Project

Create and publish a real usable open source project on GitHub. It must include: a LICENSE file (your choice, justified in README), README.md with installation, usage, and contribution guide, CONTRIBUTING.md with branching conventions and commit message format, issue templates for bugs and feature requests, a PR template with checklist, branch protection rules requiring CI and one approval, a working GitHub Actions CI workflow that runs tests and lint on every PR, a CHANGELOG.md, and a published v1.0.0 release on GitHub Releases. The project itself can be any useful developer tool, library, or CLI. Tag the release, write release notes, and share the link. This project applies every concept from all six modules: license selection, repo setup, CI/CD, contribution standards, community documentation, and release management.

Hard