Skip to content

Commit a67c32e

Browse files
committed
Merge branch 'main' of github.com:taosdata/TDengine into feat/TD-6690010183
2 parents 57a3e15 + f57ae7b commit a67c32e

File tree

660 files changed

+11829
-8814
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

660 files changed

+11829
-8814
lines changed

.github/workflows/new-framework-test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ concurrency:
4646

4747
jobs:
4848
test-new-cases:
49+
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && !contains(github.event.pull_request.title, '[manual-only]'))
4950
uses: taosdata/.github/.github/workflows/new-framework-test.yml@main
5051
with:
5152
tdinternal: false

.github/workflows/taoskeeper-test.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ on:
55
branches:
66
- "main"
77
- "3.0"
8+
- "3.3.6"
89
- "3.3.8"
910
paths:
1011
- "tools/keeper/**"
@@ -14,6 +15,7 @@ on:
1415
- "main"
1516
- "3.0"
1617
- "3.3.6"
18+
- "3.3.8"
1719
paths:
1820
- "tools/keeper/**"
1921
- ".github/workflows/taoskeeper*.yml"
@@ -42,9 +44,24 @@ jobs:
4244
with:
4345
cmakeVersion: 3.31.6
4446

47+
- name: Determine taosadapter git tag
48+
id: taosadapter_tag
49+
run: |
50+
branch="${{ github.base_ref }}"
51+
if [ -z "$branch" ]; then
52+
branch="${{ github.ref_name }}"
53+
fi
54+
case "$branch" in
55+
3.0) tag="3.0" ;;
56+
3.3.6) tag="3.3.6" ;;
57+
3.3.8) tag="3.3.8" ;;
58+
*) tag="main" ;;
59+
esac
60+
echo "value=$tag" >> "$GITHUB_OUTPUT"
61+
4562
- name: Install TDengine
4663
env:
47-
TAOSADAPTER_FLAG: ${{ github.base_ref == '3.0' && '-DTAOSADAPTER_GIT_TAG:STRING=3.0' || '' }}
64+
TAOSADAPTER_FLAG: -DTAOSADAPTER_GIT_TAG:STRING=${{ steps.taosadapter_tag.outputs.value }}
4865
run: |
4966
mkdir debug
5067
cd debug

build.bat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ cmake -B debug -G "NMake Makefiles" ^
5757
-DBUILD_TEST=true ^
5858
-DWEBSOCKET=true ^
5959
-DBUILD_DEPENDENCY_TESTS=false ^
60+
-DCMAKE_BUILD_TYPE=%TD_CONFIG% ^
6061
%*
6162
exit /B
6263

docs/custom-rules/space-after-punctuation-in-emphasis.js

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,40 @@ module.exports = [
66
description: "Ensure there is a space after emphasis markers (**bold:** text) if the emphasized text ends with punctuation (e.g., :, :, ;, ;, etc.) and is immediately followed by non-whitespace content.",
77
tags: ["emphasis", "formatting"],
88
function: function spaceAfterPunctuationInEmphasis(params, onError) {
9+
function escapeRegExp(str) {
10+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
11+
}
12+
13+
const punctuationRegex = /[:;,\.]$/;
14+
15+
function reportIfMissingSpace(lineContent, boldContent, lineNumber) {
16+
if (!boldContent || !lineContent) return false;
17+
const pattern = new RegExp("\\*\\*" + escapeRegExp(boldContent) + "\\*\\*", "g");
18+
let m;
19+
while ((m = pattern.exec(lineContent)) !== null) {
20+
const afterBold = lineContent.slice(m.index + m[0].length);
21+
if (!afterBold || afterBold.trim().length === 0 || afterBold.startsWith("**")) {
22+
continue;
23+
}
24+
if (!afterBold.startsWith(" ")) {
25+
const columnNumber = m.index + m[0].length + 1;
26+
onError({
27+
lineNumber: lineNumber,
28+
detail: `Add a space after the closing emphasis markers (**), if the emphasis ends with punctuation. (Column: ${columnNumber})`,
29+
context: lineContent.trim(),
30+
fixInfo: {
31+
editColumn: columnNumber,
32+
deleteCount: 0,
33+
insertText: " ",
34+
},
35+
});
36+
return true;
37+
}
38+
return false;
39+
}
40+
return false;
41+
}
42+
943
params.tokens.forEach((token) => {
1044
if (token.type === "inline" && token.children) {
1145
token.children.forEach((child, childIndex) => {
@@ -16,27 +50,11 @@ module.exports = [
1650

1751
if (precedingToken && precedingToken.type === "text") {
1852
const boldContent = precedingToken.content.trim();
19-
const punctuationRegex = /[:;,\.]$/; // Match full-width and half-width punctuation at the end
2053

2154
if (punctuationRegex.test(boldContent)) {
2255
if (!nextToken || nextToken.type !== "text" || !nextToken.content.startsWith(" ")) {
23-
const lineContent = params.lines[child.lineNumber - 1];
24-
const boldStartIndex = lineContent.indexOf(`**${boldContent}**`);
25-
const columnNumber = boldStartIndex + `**${boldContent}**`.length + 1;
26-
const afterBold = lineContent.slice(boldStartIndex + `**${boldContent}**`.length);
27-
28-
if (afterBold && afterBold.trim().length > 0 && !afterBold.startsWith(" ")) {
29-
const columnNumber = boldStartIndex + `**${boldContent}**`.length + 1;
30-
onError({
31-
lineNumber: child.lineNumber || token.lineNumber,
32-
detail: `Add a space after the closing emphasis markers (**), if the emphasis ends with punctuation. (Column: ${columnNumber})`,
33-
context: lineContent.trim(),
34-
fixInfo: {
35-
editColumn: columnNumber, // Correctly specify the column for the edit
36-
insertText: " ", // Suggest inserting a space
37-
},
38-
});
39-
}
56+
const lineContent = params.lines[child.lineNumber - 1] || "";
57+
reportIfMissingSpace(lineContent, boldContent, child.lineNumber);
4058
}
4159
}
4260
}
@@ -46,31 +64,13 @@ module.exports = [
4664
if (child.type === "text" && child.content.includes("**")) {
4765
const regex = /\*\*(.*?)\*\*/g; // Match **bold** and extract content
4866
let match;
67+
const lineContent = params.lines[child.lineNumber - 1] || "";
4968
while ((match = regex.exec(child.content)) !== null) {
5069
const boldContent = match[1]; // Extract content inside ** **
51-
const punctuationRegex = /[:;,\.]$/; // Match full-width and half-width punctuation at the end
52-
70+
if (!boldContent) continue;
5371
if (punctuationRegex.test(boldContent)) {
54-
const remainingContent = child.content.slice(match.index + match[0].length);
55-
if (!remainingContent.startsWith(" ")) {
56-
const lineContent = params.lines[child.lineNumber - 1];
57-
const boldStartIndex = lineContent.indexOf(match[0]);
58-
const columnNumber = boldStartIndex + match[0].length + 1;
59-
const afterBold = lineContent.slice(boldStartIndex + `**${boldContent}**`.length);
60-
61-
if (afterBold && afterBold.trim().length > 0 && !afterBold.startsWith(" ")) {
62-
const columnNumber = boldStartIndex + `**${boldContent}**`.length + 1;
63-
onError({
64-
lineNumber: child.lineNumber || token.lineNumber,
65-
detail: `Add a space after the closing emphasis markers (**), if the emphasis ends with punctuation. (Column: ${columnNumber})`,
66-
context: lineContent.trim(),
67-
fixInfo: {
68-
editColumn: columnNumber, // Correctly specify the column for the edit
69-
insertText: " ", // Suggest inserting a space
70-
},
71-
});
72-
}
73-
}
72+
// try to locate an applicable bold occurrence in the full line
73+
reportIfMissingSpace(lineContent, boldContent, child.lineNumber);
7474
}
7575
}
7676
}

docs/en/04-get-started/03-package.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ slug: /get-started/deploy-from-package
66

77
import Tabs from "@theme/Tabs";
88
import TabItem from "@theme/TabItem";
9-
import PkgListV37 from "/components/PkgListV37";
9+
import PkgList from "/src/components/PkgList";
1010
import Getstarted from './_get_started.mdx';
1111

1212
You can install TDengine TSDB Enterprise on Linux and Windows. To install TDengine TSDB in a Docker container instead of on your machine, see [Get Started with TDengine in Docker](../deploy-in-docker/).
@@ -22,7 +22,7 @@ You can install TDengine TSDB Enterprise on Linux and Windows. To install TDengi
2222
<TabItem label="Linux" value="linux">
2323

2424
1. Download the tar.gz installation package from the list below:
25-
<PkgListV37 productName="TDengine TSDB-Enterprise" version="3.4.0.0" platform="Linux-Generic" pkgType="Server" />
25+
<PkgList productName="TDengine TSDB-Enterprise" platform="Linux-Generic" />
2626
2. Navigate to the directory where the package is located and extract it using `tar`. For example, on an x64 architecture:
2727

2828
```bash
@@ -40,7 +40,7 @@ You can install TDengine TSDB Enterprise on Linux and Windows. To install TDengi
4040
<TabItem label="Windows" value="windows">
4141

4242
1. Download the Windows installation package from the list below:
43-
<PkgListV37 productName="TDengine TSDB-Enterprise" version="3.4.0.0" platform="Windows" pkgType="Server" />
43+
<PkgList productName="TDengine TSDB-Enterprise" platform="Windows" />
4444
2. Run the installation package and follow the on-screen instructions to complete the installation of TDengine TSDB.
4545

4646
</TabItem>

docs/en/06-advanced/06-tdgpt/02-tutorial.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Installation
33
sidebar_label: Installation
44
---
55

6-
import PkgListV3 from "/components/PkgListV3";
6+
import PkgList from "/src/components/PkgList";
77

88
This section describes how to use TDgpt in Docker
99

@@ -31,7 +31,7 @@ docker pull tdengine/tdgpt:latest
3131
You can specify a version if desired:
3232

3333
```shell
34-
docker pull tdengine/tdgpt:3.3.7.0
34+
docker pull tdengine/tdgpt:3.3.8.0
3535
```
3636

3737
Start the container:
@@ -40,7 +40,7 @@ Start the container:
4040
docker run -d \
4141
-p 6035:6035 \
4242
-p 6036:6036 \
43-
tdengine/tdgpt:3.3.7.0
43+
tdengine/tdgpt:3.3.8.0
4444
```
4545

4646
:::note
@@ -60,13 +60,13 @@ docker pull tdengine/tdgpt-full:latest
6060
You can specify a version if desired:
6161

6262
```shell
63-
docker pull tdengine/tdgpt-full:3.3.7.0
63+
docker pull tdengine/tdgpt-full:3.3.8.0
6464
```
6565

6666
Start the container:
6767

6868
```shell
69-
docker run -d -p 6035:6035 -p 6036:6036 -p 6037:6037 tdengine/tdgpt-full:3.3.7.0
69+
docker run -d -p 6035:6035 -p 6036:6036 -p 6037:6037 tdengine/tdgpt-full:3.3.8.0
7070
```
7171

7272
Note: TDgpt runs on TCP port 6035. The standard image also uses port 6036, and the full image uses port 6037.
@@ -141,7 +141,7 @@ sudo apt install build-essential
141141

142142
1. Download the tar.gz package from the list:
143143

144-
<PkgListV3 type={9}/>
144+
<PkgList productName="TDengine TDgpt-OSS" platform="Linux-Generic" />
145145

146146
This package contains the TDtsfm and Time-MoE foundation models for time series. Ensure that you have 16 GB of disk space available to store the models.
147147

docs/en/07-develop/01-connect.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ If you are using Maven to manage your project, simply add the following dependen
115115
- Install a specific version
116116

117117
```shell
118-
pip3 install taospy==2.8.6
118+
pip3 install taospy==2.8.8
119119
```
120120

121121
- Install from GitHub

docs/en/07-develop/09-udf.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ To better operate the above data structures, some convenience functions are prov
241241

242242
### C UDF Example Code
243243

244-
#### Scalar Function Example [bit_and](https://github.com/taosdata/TDengine/blob/3.0/test/cases/12-UDFs/sh/bit_and.c)
244+
#### Scalar Function Example
245245

246246
`bit_and` implements the bitwise AND function for multiple columns. If there is only one column, it returns that column. `bit_and` ignores null values.
247247

@@ -254,7 +254,7 @@ To better operate the above data structures, some convenience functions are prov
254254
255255
</details>
256256
257-
#### Aggregate Function Example 1 Returning Numeric Type [l2norm](https://github.com/taosdata/TDengine/blob/3.0/test/cases/12-UDFs/sh/l2norm.c)
257+
#### Aggregate Function Example 1: Returning Numeric Type
258258
259259
`l2norm` implements the second-order norm of all data in the input columns, i.e., squaring each data point, then summing them up, and finally taking the square root.
260260
@@ -267,7 +267,7 @@ To better operate the above data structures, some convenience functions are prov
267267

268268
</details>
269269

270-
#### Aggregate Function Example 2 Returning String Type [max_vol](https://github.com/taosdata/TDengine/blob/3.0/test/cases/12-UDFs/sh/max_vol.c)
270+
#### Aggregate Function Example 2: Returning String Type
271271

272272
`max_vol` implements finding the maximum voltage from multiple input voltage columns, returning a composite string value consisting of the device ID + the position (row, column) of the maximum voltage + the maximum voltage value.
273273

@@ -298,7 +298,7 @@ SELECT max_vol(vol1, vol2, vol3, deviceid) FROM battery;
298298
299299
</details>
300300
301-
#### Aggregate Function Example 3 Split string and calculate average value [extract_avg](https://github.com/taosdata/TDengine/blob/3.0/test/cases/12-UDFs/sh/extract_avg.c)
301+
#### Aggregate Function Example 3: Split String and Calculate Average Value
302302
303303
The `extract_avg` function converts a comma-separated string sequence into a set of numerical values, counts the results of all rows, and calculates the final average. Note when implementing:
304304
@@ -865,7 +865,7 @@ Through this example, we learned how to define aggregate functions and print cus
865865

866866
### More Python UDF Example Code
867867

868-
#### Scalar Function Example [pybitand](https://github.com/taosdata/TDengine/blob/3.0/test/cases/12-UDFs/sh/pybitand.py)
868+
#### Scalar Function Example
869869

870870
`pybitand` implements the bitwise AND function for multiple columns. If there is only one column, it returns that column. `pybitand` ignores null values.
871871

@@ -878,7 +878,7 @@ Through this example, we learned how to define aggregate functions and print cus
878878

879879
</details>
880880

881-
#### Aggregate Function Example [pyl2norm](https://github.com/taosdata/TDengine/blob/3.0/test/cases/12-UDFs/sh/pyl2norm.py)
881+
#### Aggregate Function Example 1
882882

883883
`pyl2norm` calculates the second-order norm of all data in the input column, i.e., squares each data point, then sums them up, and finally takes the square root.
884884

@@ -891,7 +891,7 @@ Through this example, we learned how to define aggregate functions and print cus
891891

892892
</details>
893893

894-
#### Aggregate Function Example [pycumsum](https://github.com/taosdata/TDengine/blob/3.0/test/cases/12-UDFs/sh/pycumsum.py)
894+
#### Aggregate Function Example 2
895895

896896
`pycumsum` uses numpy to calculate the cumulative sum of all data in the input column.
897897

0 commit comments

Comments
 (0)