Release Notes Language Style Guide

A concise release note can clearly and accurately deliver to users how your PR can make a difference. Your release note written in a PR will be presented in docs.pingcap.com as a part of the TiDB documentation.

This release notes language style guide briefly explains what a quality release note looks like, provides examples, and aims to help you write quality release notes.

What a quality release note looks like

A high-quality release note has the following merits:

  • Clear in type
  • Adequate and clear in meaning
  • User perspective

A release note with a distinguishable type can help users quickly identify the nature or goal of your PR change. Other teams will also benefit from it.

Depending on what your PR changes, you can refer to one of the following release note types:

  • Compatibility change
  • Bug fix
  • Improvement or Feature enhancement

Compatibility change

A compatibility change note means:

  • Your PR adds, removes, or modifies one or more configuration items or system variables.
  • Your PR modifies the default value of a configuration item or system variable.

For this type of note, you should clearly and adequately state the following aspects:

  • The previous code behavior, configuration item, or default value.
  • The new code behavior, configuration item, or default value since the new version.

Note that the object of the change should be user-perceivable. If the changed configuration item or system variable is not supposed to be exposed to users, do not include it in your release notes.

Examples:

Not recommendedClear in typeAdequate and clear in meaningUser perspectiveRecommended
copr: cast invalid utf8 string to real bug fixPreviously, when TiDB converts an illegal UTF-8 string to a Real type, an error is reported directly. From now on, TiDB will process the conversion according to the legal UTF-8 prefix in the string.
sink: fix kafka max message size inaccurate issueChange the default value of Kafka Sink max-message-bytes from 512 MB to 1 MB to prevent TiCDC from sending too large messages to Kafka clusters
cdc/sink: adjust kafka initialization logicChange the default value of Kafka Sink partition-num to 3 so that TiCDC distributes messages across Kafka partitions more evenly
cmd: hide --sort-dir in changefeed command. (deprecated warning exists)Deprecate --sort-dir in the cdc cli changefeed command. Instead, users can set --sort-dir in the cdc server command.

Bug fix

A bug fix note means that your PR fixes an existing bug or issue. This type of notes start with "Fix" followed by "the issue/bug".

Write your note clearly and adequately so that your target readers can get the main point of your bug fix. The bug or issue must be directly perceivable to the users, and you can refer to the associated GitHub issues.

In addition, it is recommended to highlight the bug trigger condition or the workaround if there is any.

Examples:

Not recommendedClear in typeAdequate and clear in meaningUser perspectiveRecommended
lock_resolver: avoid pessimistic transactions using resolveLocksForWriteFix the issue that committing pessimistic transactions might cause write conflict
retry when meeting stablish conn failsFix the issue of unexpected results when TiFlash fails to establish MPP connections
Fix the issue that greatest(datetime) union null returns empty stringFix the issue that the query result might be wrong when NULL is in the UNION subquery
copr: make CM Sketch built with the same encoding as what TiDB assumesFix the issue of potential wrong analyzed statistics when tidb_analyze_version is set to 1

Improvement

An improvement note means that your PR improves stability or performance of the product, or enhances an existing feature. In addition to describing what your PR has changed, you should also mention how users can benefit from it.

This type of release note consists of two parts: what you have changed + the benefit of your change. This type of release notes often starts with "support", "increase", "improve", "optimize", etc.

Examples:

Not recommendedClear in typeAdequate and clear in meaningUser perspectiveRecommended
Not use the stale read request's start_ts to update max_ts to avoid commit request keep retryingImprove commit performance in some edge cases
Restore many small tables would be faster.Split and scatter Regions concurrently to improve restore speed
server: stop status server early when gracefully shutdownShut down the status server first to make sure that the client can correctly check the shutdown status
Better err msg when PD endpoint missing certificateImprove the error message when connecting to a TLS protected PD endpoint without a certificate