Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
qiancai committed Jun 13, 2024
2 parents d67aac6 + 3c13f08 commit 093aeaa
Show file tree
Hide file tree
Showing 7 changed files with 271 additions and 9 deletions.
1 change: 1 addition & 0 deletions TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -1062,6 +1062,7 @@
- v7.6
- [7.6.0-DMR](/releases/release-7.6.0.md)
- v7.5
- [7.5.2](/releases/release-7.5.2.md)
- [7.5.1](/releases/release-7.5.1.md)
- [7.5.0](/releases/release-7.5.0.md)
- v7.4
Expand Down
253 changes: 253 additions & 0 deletions releases/release-7.5.2.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions releases/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ summary: TiDB has released multiple versions, including 8.1.0, 8.0.0-DMR, 7.6.0-

## 7.5

- [7.5.2](/releases/release-7.5.2.md): 2024-06-13
- [7.5.1](/releases/release-7.5.1.md): 2024-02-29
- [7.5.0](/releases/release-7.5.0.md): 2023-12-01

Expand Down
1 change: 1 addition & 0 deletions releases/release-timeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ This document shows all the released TiDB versions in reverse chronological orde

| Version | Release Date |
| :--- | :--- |
| [7.5.2](/releases/release-7.5.2.md) | 2024-06-13 |
| [8.1.0](/releases/release-8.1.0.md) | 2024-05-24 |
| [7.1.5](/releases/release-7.1.5.md) | 2024-04-26 |
| [6.5.9](/releases/release-6.5.9.md) | 2024-04-12 |
Expand Down
16 changes: 11 additions & 5 deletions scripts/release_notes_update_pr_author_info_add_dup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from github import Github
import re
import openpyxl
from openpyxl.styles import PatternFill
import os
import shutil
import requests
Expand All @@ -26,7 +27,7 @@
def store_exst_rn(ext_path, version):

exst_notes = []
exst_issue_nums = []
exst_issue_nums_and_authors = []
exst_note_levels = []
release_file = os.path.join(ext_path, f'release-{version}.md')

Expand All @@ -43,10 +44,11 @@ def store_exst_rn(ext_path, version):
exst_issue_num = re.search(r'https://github.com/(pingcap|tikv)/[\w-]+/(issues|pull)/\d+', line)
authors = re.findall(r'@\[([^\]]+)\]', line) # Get the list of authors in this line
if exst_issue_num:
if exst_issue_num.group() not in exst_issue_nums:
exst_issue_num_and_author = [exst_issue_num.group(), authors]
if exst_issue_num_and_author not in exst_issue_nums_and_authors:
note_level = level1 + level2 + level3
note_pair = [exst_issue_num.group(),line.strip(),afile, note_level, authors]
exst_issue_nums.append(exst_issue_num.group())
exst_issue_nums_and_authors.append(exst_issue_num_and_author)
exst_notes.append(note_pair)
else:
continue
Expand All @@ -63,7 +65,7 @@ def store_exst_rn(ext_path, version):
else:
pass

if len(exst_issue_nums) != 0:
if len(exst_issue_nums_and_authors) != 0:
return exst_notes
else:
return 0
Expand Down Expand Up @@ -128,6 +130,7 @@ def update_pr_author_and_release_notes(excel_path):
# Go through each row
dup_notes = []
dup_notes_levels = []
grey_fill = PatternFill(start_color="D3D3D3", end_color="D3D3D3", fill_type="solid")
for row_index, row in enumerate(sheet.iter_rows(min_row=2, values_only=True), start=2):
# If pr_author is ti-chi-bot or ti-srebot
current_pr_author = row[pr_author_index]
Expand All @@ -144,14 +147,17 @@ def update_pr_author_and_release_notes(excel_path):
pass

## Add the dup release note info
issue_link = re.search('https://github.com/(pingcap|tikv)/[\w-]+/issues/\d+', current_formated_rn)
issue_link = re.search(r'https://github.com/(pingcap|tikv)/[\w-]+/issues/\d+', current_formated_rn)
if issue_link:
for note_pair in note_pairs:
if (issue_link.group() == note_pair[0]) and ((current_pr_author in note_pair[4]) or len(note_pair[4]) == 0): # Add the dup release notes only if the issues link is the same as the existing one and the current author is in the existing author list
#print('A duplicated note is found in row ' + str(row_index) + " from " + note_pair[2] + note_pair[1])
dup_formated_rn = '- (dup): {} {} {}'.format(note_pair[2], note_pair[3], note_pair[1])
#print (note_pair)
sheet.cell(row=row_index, column=pr_last_col_index+1, value=dup_formated_rn)
# Apply the grey color to the row with dup note
for column in range(1, pr_last_col_index + 2):
sheet.cell(row=row_index, column=column).fill = grey_fill
if dup_formated_rn not in dup_notes: # Collect the dup release note if it is not collected before
dup_notes.append(dup_formated_rn)
print ("-----")
Expand Down
2 changes: 1 addition & 1 deletion ticdc/ticdc-changefeed-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ enable-table-across-nodes = false
# For example, if you specify the routing rule for a matcher as the string `code`, then all Pulsar messages that match that matcher will be routed with `code` as the key.
# dispatchers = [
# {matcher = ['test1.*', 'test2.*'], topic = "Topic expression 1", partition = "index-value"},
# {matcher = ['test3.*', 'test4.*'], topic = "Topic expression 2", partition = "index-value", index-name="index1"},
# {matcher = ['test3.*', 'test4.*'], topic = "Topic expression 2", partition = "index-value", index = "index1"},
# {matcher = ['test1.*', 'test5.*'], topic = "Topic expression 3", partition = "table"},
# {matcher = ['test6.*'], partition = "columns", columns = "['a', 'b']"}
# {matcher = ['test7.*'], partition = "ts"}
Expand Down
6 changes: 3 additions & 3 deletions ticdc/ticdc-sink-to-kafka.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ For example, for a dispatcher like `matcher = ['test.*'], topic = {schema}_{tabl
You can use `partition = "xxx"` to specify a partition dispatcher. It supports five dispatchers: `default`, `index-value`, `columns`, `table`, and `ts`. The dispatcher rules are as follows:

- `default`: uses the `table` dispatcher rule by default. It calculates the partition number using the schema name and table name, ensuring data from a table is sent to the same partition. As a result, the data from a single table only exists in one partition and is guaranteed to be ordered. However, this dispatcher rule limits the send throughput, and the consumption speed cannot be improved by adding consumers.
- `index-value`: calculates the partition number using either the primary key, a unique index, or an explicitly specified index, distributing table data across multiple partitions. The data from a single table is sent to multiple partitions, and the data in each partition is ordered. You can improve the consumption speed by adding consumers.
- `index-value`: calculates the partition number using either the primary key, a unique index, or an index explicitly specified by `index`, distributing table data across multiple partitions. The data from a single table is sent to multiple partitions, and the data in each partition is ordered. You can improve the consumption speed by adding consumers.
- `columns`: calculates the partition number using the values of explicitly specified columns, distributing table data across multiple partitions. The data from a single table is sent to multiple partitions, and the data in each partition is ordered. You can improve the consumption speed by adding consumers.
- `table`: calculates the partition number using the schema name and table name.
- `ts`: calculates the partition number using the commitTs of the row change, distributing table data across multiple partitions. The data from a single table is sent to multiple partitions, and the data in each partition is ordered. You can improve the consumption speed by adding consumers. However, multiple changes of a data item might be sent to different partitions and the consumer progress of different consumers might be different, which might cause data inconsistency. Therefore, the consumer needs to sort the data from multiple partitions by commitTs before consuming.
Expand All @@ -266,14 +266,14 @@ Take the following configuration of `dispatchers` as an example:
[sink]
dispatchers = [
{matcher = ['test.*'], partition = "index-value"},
{matcher = ['test1.*'], partition = "index-value", index-name = "index1"},
{matcher = ['test1.*'], partition = "index-value", index = "index1"},
{matcher = ['test2.*'], partition = "columns", columns = ["id", "a"]},
{matcher = ['test3.*'], partition = "table"},
]
```

- Tables in the `test` database use the `index-value` dispatcher, which calculates the partition number using the value of the primary key or unique index. If a primary key exists, the primary key is used; otherwise, the shortest unique index is used.
- Tables in the `test1` table use the `index-value` dispatcher and calculate the partition number using values of all columns in the index named `index1`. If the specified index does not exist, an error is reported. Note that the index specified by `index-name` must be a unique index.
- Tables in the `test1` table use the `index-value` dispatcher and calculate the partition number using values of all columns in the index named `index1`. If the specified index does not exist, an error is reported. Note that the index specified by `index` must be a unique index.
- Tables in the `test2` database use the `columns` dispatcher and calculate the partition number using the values of columns `id` and `a`. If any of the columns does not exist, an error is reported.
- Tables in the `test3` database use the `table` dispatcher.
- Tables in the `test4` database use the `default` dispatcher, that is the `table` dispatcher, as they do not match any of the preceding rules.
Expand Down

0 comments on commit 093aeaa

Please sign in to comment.