TiDB Development Guide
  • TiDB Development Guide
  • Contributing to TiDB Development Guide
  • .github
    • pull_request_template
  • TiDB Development Guide
    • Summary
    • contribute-to-tidb
      • Cherry-pick a Pull Request
      • TiDB Code Style and Quality Guide
      • Committer Guide
      • Community Guideline
      • Contribute Code
      • Contribute to TiDB
      • Issue Triage
      • Make a Proposal
      • Miscellaneous Topics
      • Release Notes Language Style Guide
      • Report an Issue
      • Review a Pull Request
      • Write Document
    • extending-tidb
      • Add a function
      • Extending TiDB
    • get-started
      • Get the code, build, and run
      • Commit the code and submit a pull request
      • Debug and profile
      • Install Golang
      • Get Started
      • run-and-debug-integration-tests
      • Setup an IDE
      • Write and run unit tests
    • project-management
      • Project Management
      • Release Train Model
      • TiDB Versioning
    • system-tables
      • System tables
      • slow_query
    • understand-tidb
      • 1PC
      • Async Commit
      • Cost-based Optimization
      • DDL - Data Definition Language / Schema change handling
      • DML
      • DQL
      • Execution
      • Implementation of Typical Operators
      • Implementation of Vectorized Execution
      • Introduction of TiDB Architecture
      • Lock Resolver
      • Memory Management Mechanism
      • MVCC Garbage Collection
      • Optimistic Transaction
      • Parallel Execution Framework
      • Parser
      • Pessimistic Transaction
      • Plan Cache
      • Planner
      • Plugin
      • Privilege
      • Rule-based Optimization
      • Session
      • SQL Plan Management
      • Table Statistics
      • The Life cycle of a Statement
      • transaction-on-tikv
      • Transaction
      • system-tables
        • System tables
        • information_schema
          • information_schema
          • slow_query
Powered by GitBook
On this page
  • What a quality release note looks like
  • Compatibility change
  • Bug fix
  • Improvement

Was this helpful?

  1. TiDB Development Guide
  2. contribute-to-tidb

Release Notes Language Style Guide

PreviousMiscellaneous TopicsNextReport an Issue

Last updated 3 years ago

Was this helpful?

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 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 recommended

Clear in type

Adequate and clear in meaning

User perspective

Recommended

copr: cast invalid utf8 string to real bug fix

❌

❌

❌

Previously, 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 issue

❌

❌

❌

Change 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 logic

❌

❌

❌

Change 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 recommended

Clear in type

Adequate and clear in meaning

User perspective

Recommended

lock_resolver: avoid pessimistic transactions using resolveLocksForWrite

❌

✅

❌

Fix the issue that committing pessimistic transactions might cause write conflict

retry when meeting stablish conn fails

❌

❌

❌

Fix the issue of unexpected results when TiFlash fails to establish MPP connections

Fix the issue that greatest(datetime) union null returns empty string

✅

❌

✅

Fix 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 assumes

❌

❌

❌

Fix 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 recommended

Clear in type

Adequate and clear in meaning

User perspective

Recommended

Not use the stale read request's start_ts to update max_ts to avoid commit request keep retrying

✅

✅

❌

Improve 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 shutdown

✅

❌

❌

Shut down the status server first to make sure that the client can correctly check the shutdown status

Better err msg when PD endpoint missing certificate

✅

❌

✅

Improve the error message when connecting to a TLS protected PD endpoint without a certificate

docs.pingcap.com