Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: release 1.8.3-naruto #2989

Merged
merged 27 commits into from
Dec 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
1c8335f
refactor: radio/checkbox选中判断改回正则 (#2927)
liweijie0812 Nov 24, 2023
9240bf5
fix(table): row-edit event not trigger (#2934)
chaishi Nov 28, 2023
eee731b
fix(statistic): fix with missing default precision (#2933)
oljc Nov 28, 2023
2fe40b2
fix(radio): 选项内容变化后样式问题修复 (#2936)
hkaikai Nov 29, 2023
41ea493
feat: cascader value-display (#2938)
PengYYYYY Nov 29, 2023
2eb4ce2
fix(pagination): when total is 0 and pageSize change, current value i…
betavs Nov 29, 2023
f1dc4f1
fix(tree): tree 节点禁用状态逻辑改进 (#2935)
TabSpace Nov 30, 2023
7493aff
fix(auto-complete): using lodash escapeRegExp transform keyword text …
ZWkang Dec 1, 2023
6a0e0a3
chore: update contributing (#2950)
uyarn Dec 4, 2023
7d103d5
fix(tree): tree 组件, value, active, expanded 属性, 支持数组操作触发视图变更 (#2951)
TabSpace Dec 5, 2023
e8c2e76
ci: add workflow for issue label (#2953)
anlyyao Dec 5, 2023
18bdc4d
fix(table): pagination (#2954)
chaishi Dec 5, 2023
17a8398
fix(image-viewer): 修改键盘事件绑定对象 (#2958)
sinbadmaster Dec 7, 2023
2d2f549
feat(Table): fix some pagination problems (#2962)
uyarn Dec 15, 2023
51c0460
feat(menu): close menu after clicking (#2963)
uyarn Dec 7, 2023
0339499
feat(tabs): scroll to better position when active tab is in middle (#…
uyarn Dec 7, 2023
56e6a99
chore: release 1.8.1 (#2965)
uyarn Dec 7, 2023
e21a293
feat(upload): uploadPastedFiles (#2966)
chaishi Dec 9, 2023
0d0dc8c
fix(tree): the height attribute does not work (#2968)
betavs Dec 9, 2023
4098d0a
chore: update publish frequency descriptions (#2969)
uyarn Dec 9, 2023
c7c00c1
fix(image-viewer): 滚轮缩放符合操作直觉 (#2974)
sinbadmaster Dec 12, 2023
d76e54f
fix(date-range-picker): 修复12月时选择同一个月内的日期后,第一次打开面板左右月份一样的问题 (#2972)
Lyan-u Dec 14, 2023
38f931d
fix(drawer): unable to close by click on escape (#2967)
betavs Dec 14, 2023
596486e
chore: fix ssr error (#2985)
uyarn Dec 15, 2023
cd351d9
chore: release 1.8.2 (#2986)
uyarn Dec 15, 2023
7ea8954
chore: release 1.8.3 (#2988)
uyarn Dec 15, 2023
b801d91
chore: release 1.8.3-naruto
uyarn Dec 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/issue-shoot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## IssueShoot
- 预估时长: {{ .duration }}
- 期望完成时间: {{ .deadline }}
- 开发难度: {{ .level }}
- 参与人数: 1
- 验收标准: 实现期望改造效果,提 PR 并通过验收无误
- 备注: 最终激励以实际提交 `pull request` 并合并为准
50 changes: 50 additions & 0 deletions .github/workflows/issue-label.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: issue on label
on:
issues:
types: ['labeled']
jobs:
add-issueshoot-template:
runs-on: ubuntu-latest
if: contains(fromJSON('["easy", "middle", "hard"]'), github.event.label.name)
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Get token
id: token
run: |
label=${{ github.event.label.name }}
if [[ $label = "easy" ]]
then
echo "level=低" >> $GITHUB_OUTPUT
echo "duration=1" >> $GITHUB_OUTPUT
deadline=$(date -d "+3 days" +'%Y-%m-%d')
echo "deadline=${deadline}" >> $GITHUB_OUTPUT
elif [[ $label = "middle" ]]
then
echo "level=中" >> $GITHUB_OUTPUT
echo "duration=3" >> $GITHUB_OUTPUT
deadline=$(date -d "+7 days" +'%Y-%m-%d')
echo "deadline=${deadline}" >> $GITHUB_OUTPUT
else
echo "level=高" >> $GITHUB_OUTPUT
echo "duration=5" >> $GITHUB_OUTPUT
deadline=$(date -d "+10 days" +'%Y-%m-%d')
echo "deadline=${deadline}" >> $GITHUB_OUTPUT
fi
- name: Create template
id: template
uses: chuhlomin/render-template@v1.4
with:
template: .github/issue-shoot.md
vars: |
level: ${{ steps.token.outputs.level }}
duration: ${{ steps.token.outputs.duration }}
deadline: ${{ steps.token.outputs.deadline }}
- name: Update issue
uses: actions-cool/issues-helper@v3
with:
actions: 'update-issue'
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: ${{ steps.template.outputs.result }}
update-mode: 'append'
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,38 @@ toc: false
docClass: timeline
---

## 🌈 1.8.3 `2023-12-15`
### 🚀 Features
- `Upload`: 新增支持 `uploadPastedFiles`,用于控制是否允许用户粘贴文件上传,默认允许 @chaishi ([#2966](https://github.com/Tencent/tdesign-vue/pull/2966))
- Dropdown: 移除对left的item样式特殊处理 @uyarn [common#1677](https://github.com/Tencent/tdesign-common/pull/1677)
### 🐞 Bug Fixes
- `DatePicker`: 修复选择同一个月内的日期后,打开面板左右月份一样的问题 @Lyan-u ([#2972](https://github.com/Tencent/tdesign-vue/pull/2972))
- `Drawer`: 处理点击esc无法关闭的问题 @betavs ([#2967](https://github.com/Tencent/tdesign-vue/pull/2967))
- `ImageViewer`: 滚轮缩放符合操作直觉 @sinbadmaster ([#2974](https://github.com/Tencent/tdesign-vue/pull/2974))
- `SSR`: 修复 `SSR` 场景使用报错的问题 @uyarn ([#2985](https://github.com/Tencent/tdesign-vue/pull/2985))
- `Tree`: 处理 `height` 属性无效的问题 @betavs ([#2968](https://github.com/Tencent/tdesign-vue/pull/2968))
- `Tree`: 解决初始化节点选中态异常的问题 @TabSpace ([#2985](https://github.com/Tencent/tdesign-vue/pull/2985))
- `Upload`: 卡片式文件上传,修复取消上传时,文件依然显示的问题 [issue#2955](https://github.com/Tencent/tdesign-vue/issues/2955) @chaishi ([#2966](https://github.com/Tencent/tdesign-vue/pull/2966))

## 🌈 1.8.1 `2023-12-07`
### 🚀 Features
- `Cascader`: 新增 `valueDisplay` API @PengYYYYY ([#2938](https://github.com/Tencent/tdesign-vue/pull/2938))
- `Menu`: 选中后关闭菜单,与其他组件保持交互行为一致 @uyarn ([#2963](https://github.com/Tencent/tdesign-vue/pull/2963))
- `Tabs`: 优化初始化滚动的场景,对处于中间的部分场景进行进一步优化 @uyarn ([#2964](https://github.com/Tencent/tdesign-vue/pull/2964))
### 🐞 Bug Fixes
- `Radio`: 选项内容变化后样式问题修复 @hkaikai ([#2936](https://github.com/Tencent/tdesign-vue/pull/2936))
- `Pagination`: 修复当 `total` 为 0 并且 `pageSize` 改变时, `current` 值为 0 的问题 @betavs ([#2937](https://github.com/Tencent/tdesign-vue/pull/2937))
- `Tree`: @TabSpace
- 改进节点禁用状态的逻辑 ([#2935](https://github.com/Tencent/tdesign-vue/pull/2935))
- value、active和expanded 属性, 支持数组操作触发视图变更 ([#2951](https://github.com/Tencent/tdesign-vue/pull/2951))
- `Table`: @chaishi
- 修复分页场景,动态切换分页数据从 undefined 到具体真实数据时,分页无效的问题 [#2867](https://github.com/Tencent/tdesign-vue/issues/2867) ([#2954](https://github.com/Tencent/tdesign-vue/pull/2954))
- 修复分页功能在序号、行选择、行拖拽排序等场景的问题 ([#2962](https://github.com/Tencent/tdesign-vue/pull/2962))
- 修复可编辑表格的 `row-edit` 事件没有触发的问题 ([#2934](https://github.com/Tencent/tdesign-vue/pull/2934))
- `ImageViewer`: 修复在抽屉组件等组件中使用图片预览组件,按下 `esc` 键抽屉组件和图片预览组件会同时关闭的问题 @sinbadmaster ([#2958](https://github.com/Tencent/tdesign-vue/pull/2958))
- `AutoComplete`: 修复匹配特殊字符报错的问题 @ZWkang ([#2943](https://github.com/Tencent/tdesign-vue/pull/2943))
- `Dropdown`:处理禁用状态可点击的问题 @betavs ([issue #3693](https://github.com/Tencent/tdesign-vue-next/issues/3693))

## 🌈 1.8.0 `2023-11-23`

### 🚀 Features
Expand Down
131 changes: 69 additions & 62 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,32 @@
# CONTRIBUTING

`tdesign-vue` 包含 `vue` 代码和一个子仓库,子仓库指向 `tdesign-common`仓库
`tdesign-vue` 包含 `vue` 代码和一个子仓库,子仓库指向 `tdesign-common` 仓库

## 开发

### 安装依赖
建议使用 node 18 版本进行开发

### 1.初始化子仓库

```bash
git submodule init && git submodule update
```

### 2.安装依赖

```bash
npm i
```

### 本地开发
### 3.本地开发

```bash
npm run start
```

浏览器访问 <http://127.0.0.1:16000>
完成以上 3 个步骤,浏览器访问 <http://127.0.0.1:16000> 即可调该框架的任何内容

### 目录结构
## 目录结构

```text
├── script // 构建代码
Expand All @@ -33,7 +41,7 @@ npm run start

### 组件页路由配置

每一个组件页,都是一个 md 文件,参考 `/site/config/index.js` 已有定义,直接按照模板添加即可
每一个组件都有自己的路由,页面配置都是一个 markdown 文件,如`button.md`,具体路径可参考 `/site/site.config.mjs`。如果有新增组件,直接按照模板添加即可

```js
{
Expand All @@ -43,21 +51,21 @@ npm run start
{
title: 'Button 按钮',
name: 'button',
component: () => import(`@/examples/components/button/button.md`),
component: () => import(`tdesign-vue/button/button.md`),
},
{
title: 'Icon 图标',
name: 'icon',
component: () => import(`@/examples/components/icon/icon.md`),
component: () => import(`tdesign-vue/icon/icon.md`),
},
...
],
},
```

### Markdown 文件 demo 引用
### Markdown 文件的 demo 引用

文档 demo 排列与 common 仓库中的 UI demo 展示一致
文档 demo 排列与 common 子仓库中的 UI demo 展示一致,如 button 组件页面的展示顺序,由子仓库的 docs/web/api/button.md 内的顺序决定。

```markdown
{{ base }}
Expand All @@ -66,60 +74,31 @@ npm run start

### Demo 调试

当一个 md 文件插入了很多个 demo 之后,一些组件生命周期方法调试起来会变得困难,若想对某个 demo 单独调试,可以访问路由:/demos/组件名/demo 名,

例如:<http://127.0.0.1:16000/vue/demos/button/base>

### 单元测试 & e2e 测试文档

[组件测试文档](./test/README.md)
我们可以通过打开组件的路由页进行开发调试,

## git
如 button,则打开<http://127.0.0.1:16000/vue/components/button> 进行开发调试;

### 分支
但当组件的 markdown 文件插入了很多个 demo 之后,一些组件生命周期方法调试起来会变得困难,若想对某个 demo 单独调试,可以访问路由:/demos/组件名/demo 名,

主仓库遵循使用 `git flow` 规范,新组件分支从 `develop checkout`:[https://nvie.com/posts/a-successful-git-branching-model/](https://nvie.com/posts/a-successful-git-branching-model/)
如:<http://127.0.0.1:16000/vue/demos/button/base>

如果是贡献组件,则从 `develop checkout` 分支如:`feature/button`,记得如果同时要在子仓库开发 UI,子仓库也要 `checkout` 同名分支

> 关于 fork

以下内容处理 `fork` 仓库后,远端仓库的更新如何同步到 `fork` 仓库

```bash
# 建立 upstream remote
git remote add upstream git@github.com:Tencent/tdesign-vue.git

# 更新 upstream
git fetch upstream develop

# 合并 upstream develop 到本地
git checkout develop

git merge upstream/develop
```

## 提交说明

项目使用基于 angular 提交规范:[https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)

每次提交会自动触发提交验证
### 单元测试 & e2e 测试文档

- 使用工具 commitizen 协助规范 git commit 信息
- fix & feat 的提交会被用来生成 changelog
- 提交会触发 git pre-commit 检查,修复提示的 eslint 错误,
[组件测试文档](./test/README.md)

## 公共子仓库 tdesign-common
## 子仓库 tdesign-common

本项目以子仓库的形式引入 `tdesign-common` 公共仓库,对应 `src/\_common` 文件夹
TDesign 的项目都会以子仓库的形式引入 `tdesign-common` 公共仓库,对应 `src/\_common` 文件夹
公共仓库中包含

- 一些公共的工具函数
- 组件库 `UI` 开发内容,既 `html` 结构和 `css` 样式(React/Vue 共用)
- 部分组件的一些框架无关的公共的工具函数
- `组件库UI`,既 `html` 结构和 `css` 样式(多框架共用)

大部分的功能和改动都只需要调整主仓库的代码即可,但涉及部分公共函数、样式或者部分文档的调整,需要改动子仓库的代码。

### 初始化子仓库

- 初次克隆代码后需要初始化子仓库: `git submodule init && git submodule update`
- 如开发部分提到的,初次克隆代码后需要初始化子仓库: `git submodule init && git submodule update`
- git submodule update 之后子仓库不指向任何分支,只是一个指向某一个提交的游离状态

### 子仓库开发
Expand All @@ -129,9 +108,10 @@ git merge upstream/develop
- 先进入 `src/\_common` 文件夹,正常将样式修改添加提交
- 回到主仓库,此时应该会看到 `src/\_common` 文件夹是修改状态,按照正常步骤添加提交即可

## 关于组件库 UI
### 组件库 UI

UI 开发(HTML & CSS)是多个框架共用的,比如 React-web/Vue-web/Vue-next web。各个框架组件实现应该要复用 UI 开发的 html 结构,引用其组件 CSS 与 Demo CSS(本仓库已在入口处引用了),UI 开发一般可由单独的 UI 开发同学认领完成或各框架组件开发同学的其中一名同学完成
UI 是多个框架共用的,比如 PC 端的 react/vue/vue-next 都是复用子仓库的 UI 代码。
各个框架组件实现应该要复用 UI 开发的 html 结构,引用其组件 CSS 与 Demo CSS(本仓库已在入口处引用了),UI 开发一般可由单独的 UI 开发同学认领完成或各框架组件开发同学的其中一名同学完成

- 如果开发前已有某个组件的 UI 开发内容,直接在主仓库使用即可
- 如果没有,且你也负责 UI 开发:参考 UI 开发规范完成 UI 开发内容、然后再开发主仓库组件
Expand All @@ -151,24 +131,51 @@ UI 开发(HTML & CSS)是多个框架共用的,比如 React-web/Vue-web/Vue
import './button.less';
```

## 开发规范
## 分支规范

### 分支

遵循使用 `git flow` 规范,新组件分支从 `develop checkout`:[https://nvie.com/posts/a-successful-git-branching-model/](https://nvie.com/posts/a-successful-git-branching-model/)

UI 开发规范参考子仓库 README [子仓库 README](https://github.com/Tencent/tdesign-common/blob/main/style/web/README.md)
如果是贡献组件,则从 `develop checkout` 分支如:`feature/button`,记得如果同时要在子仓库开发 UI,子仓库也要 `checkout` 同名分支

### 新建组件
> 关于 fork

```shell
npm run generate:component
以下内容处理 `fork` 仓库后,远端仓库的更新如何同步到 `fork` 仓库

```bash
# 建立 upstream remote
git remote add upstream git@github.com:Tencent/tdesign-vue.git

# 更新 upstream
git fetch upstream develop

# 合并 upstream develop 到本地
git checkout develop

git merge upstream/develop
```

### 提交说明

项目使用基于 angular 提交规范:[https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/master/@commitlint/config-conventional)

每次提交会自动触发提交验证

- 使用工具 commitizen 协助规范 git commit 信息
- fix & feat 的提交会被用来生成 changelog
- 提交会触发 git pre-commit 检查,修复提示的 eslint 错误,

## 开发规范

### API 规范

API 由 API 平台统一管理生成 https://github.com/tdesignoteam/tdesign-api
API 由 API 平台统一管理生成,如果涉及组件文档的改动(如`src/button/type.ts`的内容),都需要同时在 API 平台提交 PR,进行统一维护管理 https://github.com/tdesignoteam/tdesign-api

### 前缀
### 前缀规范

组件和 `CSS` 前缀以 `t-` 开头,无论 `js` 还是 `css` 都使用变量定义前缀,方便后续替换

### CSS
### CSS 规范

组件样式在 `common` 子仓库开发,遵循 [tdesign-common 仓库 UI 开发规范](https://github.com/Tencent/tdesign-common/blob/main/style/web/README.md)
48 changes: 8 additions & 40 deletions PUBLISH.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,18 @@

## 发布频率

组件库正常每周滚动发布版本,一般在周三/周四,尽量不在周五或晚上发布,防止周末非工作时间响应不及时
组件库正常每两周滚动发布版本,一般在周三/周四,尽量不在周五或晚上发布,防止周末非工作时间响应不及时

如果遇到用户要求紧急修复 bug,可以视情况发布 PATCH 或先行版本,判断标准:

- 影响范围大,大多数用户都可能会遇到问题:请遵照正常发布流程严格测试产物质量及整理 changelog 后发布 PATCH 版本,以使用户可以自动更新到
- 影响范围大,大多数用户都可能会遇到问题:请遵照正常发布流程严格测试产物质量及整理 CHANGELOG 后发布 PATCH 版本,以使用户可以自动更新到
- 新上线的功能,仅有少量用户使用:可以不整理 changelog,直接发布先行版本供用户使用,如 `x.y.z-alpha`

## 版本号说明

版本号设置遵循 [SemVer 语义化版本控制规范 2.0.0](https://semver.org/lang/zh-CN/),一切以保证用户版本稳定性为前提,原则如下:

- 当进行不兼容的 API 更改时,升级 MAJOR 版本
- 当以向后兼容的方式添加功能时,升级 MINOR 版本
- 当进行向后兼容的缺陷修复时,升级 PATCH 版本

目前我们还没有发布 1.0.0 版本,因此以 MINOR 作为 breaking change 时的迭代版本号

### 原因

用户项目的 package.json 文件中一般使用 `^` 或 `~` 来限制包版本:

- `^`: 只会执行不更改最左边非零数字的更新,如果写入的是 ^0.13.0,可以更新到 0.13.1、0.13.2 等,但不能更新到 0.14.0 或更高版本。 如果写入的是 ^1.13.0,则当运行 npm update 时,可以更新到 1.13.1、1.14.0 等,但不能更新到 2.0.0 或更高版本
- `~`: 如果写入的是 〜0.13.0,则当运行 npm update 时,会更新到补丁版本:即 0.13.1 可以,但 0.14.0 不可以。

参考 [使用 npm 的语义版本控制](http://nodejs.cn/learn/semantic-versioning-using-npm)、[npm/node-semver](https://github.com/npm/node-semver#caret-ranges-123-025-004)

## 发布人职责

负责本次发布的同学应该

- review 这一迭代周期内的所有 MR 是否被正常合并,每个 MR 的描述是否准确,如果有关联的 issue,需要在 MR 评论中补充 issue 链接
- 是否所有 issue 都得到了处理,如果已有 mr,请在 issue 中评论 mr 链接(目前工蜂还不能像 GitHub 一样在 issue 中自动显示关联 mr)
- 根据 MR 和 issue 整理 changelog (可以使用 [publish-cli](https://github.com/Tencent/tdesign-starter-cli/tree/main/packages/publish-cli) 帮助生成)
- 如果发布了 Breaking Change 版本,应该把上一个 MAJOR 版本的版本号更新至官网历史版本处,以支持历史版本官网供用户查看。

## 发布流程

- 从 `develop` 新建 `docs/x.y.z-changelog` 分支,整理 changelog 并 push 分支到远端
- changelog 分支链接发到群里召唤小伙伴们一起 review
- review 无误,`squash merge` 到 develop,保持只有一条更改 changelog 内容的 commit
- 本地删除 node_modules 目录后重新安装依赖后,执行 `npm run build` 通过
- 推送 develop 分支到远端,触发部署体验环境,验证体验环境无误
- 本地 `git tag x.y.z` 后 `git push origin x.y.z`,触发 [TAG_PUSH](https://github.com/Tencent/tdesign-vue/blob/develop/.github/workflows/tag-push.yml) GitAction 进行发包动作
- 包发布成功后,merge develop 到 main 分支,推送远端后触发官网部署流水线
- 官网部署完毕后,企微机器人通知群里用户更新
- copy changelog 到 GitHub repo release(后面考虑改成自动触发更新 release)
- 内网 mk TDesign 发版 Topic 下,copy changelog 内容发布新的版本更新动态
- 从 `develop` 新建 `release/x.y.z` 分支,并修改 `package.json` 中的版本号,推送分支至远程仓库,并提交一个合入`develop`的 Pull Request 到仓库
- 仓库的 Github Action 会自动整理上个版本至今 commit 对应的 CHANGELOG,并将 CHANGELOG 的 draft 作为一个评论推送到该 Pull Request 上
- 发布人检查 CHANGELOG,并优化内容逻辑结构,确认无误后删除对于评论首行提示,Github Action 会将优化后的内容写入 CHANGELOG.md 内
- 确认无误后,合并分支入`develop`
- 合入 `develop` 后,仓库会触发 Github Action 合入`main`分支,并将版本号作为 `tag` 打在仓库上,并触发 Github Action 执行 npm 版本发布流程
- 合入 `main` 分支后,站点的部署流水线 web hook 会监听到 `main` 分支的新增 commit,并触发流水线,官网更新站点
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "tdesign-vue",
"purename": "tdesign",
"version": "1.8.0-naruto",
"version": "1.8.3-naruto",
"description": "tdesign-vue",
"title": "tdesign-vue",
"keywords": [
Expand Down
Loading
Loading