5 exercises — version announcements, breaking changes, rollback notices, changelog grammar, and email structure.
0 / 5 completed
1 / 5
You are announcing a major new version of your internal CLI tool. Which announcement opening is most effective?
Release announcements must front-load the version number, breaking changes with migration path, key new capability with a measurable benefit, and install command. Option B hits all four in two sentences. Option A is enthusiastic but vague — no version, no breaking changes notice, no install instructions. Option C uses formal corporate language ("we are pleased to announce") that buries the technical information. Option D is informal and says nothing specific ("great new stuff inside" is not actionable).
2 / 5
Complete this release announcement: "Version 2.4 _____ (include) three bug fixes and one new feature. The new --watch flag _____ (allow) the build to _____ (restart) automatically on file changes. Existing configurations _____ (not/require) any updates."
Includes (present simple) — release notes describe the current state of the software as a fact. Allows (present simple) — a feature's capability is a designed, present fact. Allow + object + to-infinitive: "allows the build to restart" — this is the standard English pattern: allow [noun] to [verb]. Do not require (plural present) — "configurations" is the subject (plural), so the verb is plural. Option C uses "does not require" (singular) — grammatically incorrect when "configurations" is the subject. Option B uses "to restart" after "allows" without the intervening noun — "allows to restart" is not standard; you need: "allows [something] to restart".
3 / 5
Which section heading structure is best for an external API release announcement email?
External API release emails need a subject that states the version, the key risk, and the deadline for action. The body sections mirror what a developer needs: what's new, what breaks, how to migrate, what's going away next, and where to get help. Option B does all of this. Option A is not a release announcement — it's a vague update with no useful subject line. Option C is too vague in the subject (no breaking change notice, no action deadline). Option D attaches a PDF — developers won't read a PDF attachment for release notes; inline information is always preferred in technical communication.
4 / 5
You need to announce a rollback — a version that was released but is being pulled back. Which announcement is most professional?
A rollback announcement must be factual, specific about the reason, clear on what action is needed, and give a forward-looking timeline. Option B: states what happened (revert to v2.2), when (14:30 UTC), why (memory leak, specific conditions), what to do (pin to v2.2 with the command), and when the fix is expected (v2.4 by April 10). This gives developers everything they need to triage and act without panic. Option A uses "Oops!" — entirely wrong register for a production issue. Option C is vague ("technical difficulties"). Option D is urgent but provides no reason, no fix timeline, and no migration command.
5 / 5
Complete this changelog entry: "Added: Support for --parallel flag _____ (enable) concurrent test execution. Fixed: Race condition _____ (occur) when two workers _____ (write) to the same output file. Deprecated: --threads flag — _____ (use) --parallel instead. _____ (remove) in v5.0."
Changelog entries follow a consistent grammatical pattern: Added: [noun phrase] + to-infinitive for purpose ("support for X to enable Y"). Fixed: [noun phrase] + that + past simple for the bug description ("race condition that occurred when…"). In the subordinate clause, write (present simple) agrees with the past-framed "when two workers write" — the race condition is described as a general condition, not a completed event. Deprecated: use [imperative] for the replacement instruction. Will be removed — future simple for a scheduled removal. "To be removed" (options A and C) implies the removal is already planned but not confirmed; "will be removed" is a firmer statement matching "in v5.0".