Practice & Assessment
Test your understanding of Changelog, Versioning, and Maintenance
Multiple Choice Questions
6A library changes `getUserById(id)` to `getUserById(id, options)` where `options` has no default value. What semver bump is required?
Which changelog entry is written correctly?
What is the minimum timeline between deprecating a feature and removing it?
A CI step checks if CHANGELOG.md was updated whenever source files change. What is the benefit?
What should release notes explicitly communicate that changelogs typically do not?
Where should a deprecated function's deprecation notice appear beyond the CHANGELOG?
Coding Challenges
1Write a CHANGELOG and Migration Guide for a Breaking Release
You are given a diff representing changes in a fictional library going from v1.8.0 to v2.0.0. The diff shows: 2 removed functions (deprecated since v1.5), 1 changed function signature (parameter made required), 1 new function added, and 1 bug fix for a data corruption issue under concurrent writes. Task: (1) write a complete CHANGELOG.md entry for v2.0.0 using Keep a Changelog format with correct section labels, (2) write a migration guide covering all breaking changes with before/after code examples, and (3) write release notes for v2.0.0 that communicate urgency and highlight the data integrity fix. Output: three labeled Markdown sections in one file. Estimated time: 25–30 minutes.
Mini Project
Full Documentation Maintenance Audit
Take a real open-source project that has released at least 3 versions. Deliver: (1) an audit of their existing CHANGELOG — classify each entry as adequate or inadequate with reasoning; (2) rewrite 5 inadequate entries following Keep a Changelog format; (3) identify 2 breaking changes in their git history that were not documented as breaking and write the migration guides for both; (4) write a PR template checklist for the project that enforces documentation updates; (5) write a GitHub Actions workflow YAML that checks for broken links and validates CHANGELOG was updated when source files changed. Deliver all as a single structured Markdown document.
