---
# System prepended metadata

title: KubeSphere release notes

---

# KubeSphere release notes

## 下载 gh
下载并安装 [gh](https://github.com/cli/cli)，安装完成后，执行下面命令确认安装成功.
```
root@ks-allinone:~# gh version
gh version 1.8.0 (2021-03-30)
https://github.com/cli/cli/releases/tag/v1.8.0
```

## 执行脚本
拷贝并执行下面脚本，保存成 `pr-relase-3.1.sh`
```
set -o pipefail
set -eu

REPOS=("kubesphere" "console")
queryTemplate='
{
  search(first: 100, query: "repo:kubesphere/REPO is:pr base:release-3.1 created:2021-04-30..2021-07-04", type: ISSUE) {
    nodes {
      ... on PullRequest {
        title
	body
        url
        state
	createdAt
      }
    }
  }
}
'

for repo in "${REPOS[@]}"; do
  echo "============ start ${repo} ==========="
  query=$(echo $queryTemplate | sed "s/REPO/${repo}/g")
  gh api graphql -f query="${query}"
  echo "===========  end ${repo} ============="
done
```

保存完成后，执行 `pr-relase-3.1.sh`，得到如下结果
```json=
{
  "data": {
    "search": {
      "nodes": [
        {
          "title": "[release-3.1] Fix failed to push docker images with a specified tag",
          "body": "This is an automated cherry-pick of #4034",
          "url": "https://github.com/kubesphere/kubesphere/pull/4037",
          "state": "MERGED",
          "createdAt": "2021-07-02T02:21:48Z"
        },
        {
          "title": "fix .dockerignore file ignores .git dir bug",
          "body": "Signed-off-by: yuswift \u003cyuswift2018@gmail.com\u003e\r\n\r\n\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If you want **faster** PR reviews, read how: https://github.com/kubesphere/community/blob/master/developer-guide/development/the-pr-author-guide-to-getting-through-code-review.md\r\n2. In case you want to know how your PR got reviewed, read: https://github.com/kubesphere/community/blob/master/developer-guide/development/code-review-guide.md\r\n3. Here are some coding convetions followed by KubeSphere community: https://github.com/kubesphere/community/blob/master/developer-guide/development/coding-conventions.md\r\n--\u003e\r\n\r\n### What type of PR is this?\r\n\u003c!-- \r\nAdd one of the following kinds:\r\n/kind bug\r\n\r\n\r\n### What this PR does / why we need it:\r\n\r\n### Which issue(s) this PR fixes:\r\n\u003c!--\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #4032 #4031 #4030 #4029 #4028 #4027\r\n\r\n### Special notes for reviewers:\r\n```\r\n```\r\n\r\n### Does this PR introduced a user-facing change?\r\n\u003c!--\r\nIf no, just write \"None\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://github.com/kubernetes/community/blob/master/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\n\r\n```\r\n\r\n### Additional documentation, usage docs, etc.:\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\nPlease use the following format for linking documentation or pass the\r\nsection below:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n",
          "url": "https://github.com/kubesphere/kubesphere/pull/4033",
          "state": "MERGED",
          "createdAt": "2021-07-01T11:26:11Z"
        },
        {
          "title": "fix .dockerignore file ignores all files bug",
          "body": "Signed-off-by: yuswift \u003cyuswift2018@gmail.com\u003e\r\n\r\n\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If you want **faster** PR reviews, read how: https://github.com/kubesphere/community/blob/master/developer-guide/development/the-pr-author-guide-to-getting-through-code-review.md\r\n2. In case you want to know how your PR got reviewed, read: https://github.com/kubesphere/community/blob/master/developer-guide/development/code-review-guide.md\r\n3. Here are some coding convetions followed by KubeSphere community: https://github.com/kubesphere/community/blob/master/developer-guide/development/coding-conventions.md\r\n--\u003e\r\n\r\n### What type of PR is this?\r\n\u003c!-- \r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n/kind design\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n\r\n### What this PR does / why we need it:\r\n\r\n### Which issue(s) this PR fixes:\r\n\u003c!--\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #\r\n\r\n### Special notes for reviewers:\r\n```\r\n```\r\n\r\n### Does this PR introduced a user-facing change?\r\n\u003c!--\r\nIf no, just write \"None\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://github.com/kubernetes/community/blob/master/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\n\r\n```\r\n\r\n### Additional documentation, usage docs, etc.:\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\nPlease use the following format for linking documentation or pass the\r\nsection below:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n",
          "url": "https://github.com/kubesphere/kubesphere/pull/4020",
          "state": "MERGED",
          "createdAt": "2021-06-30T11:25:58Z"
        },
        {
          "title": "Automated cherry pick of #3990 upstream release 3.1",
          "body": "Fixes #4008 #4006 \r\nAlso cherry-picked https://github.com/kubesphere/kubesphere/pull/4000 manaully.",
          "url": "https://github.com/kubesphere/kubesphere/pull/4014",
          "state": "MERGED",
          "createdAt": "2021-06-28T07:01:22Z"
        },
        {
          "title": "Fix merge conflict",
          "body": "### What type of PR is this?\r\n/kind cleanup\r\n\r\n### What this PR does / why we need it:\r\nFix merge conflict, PR #3991 was overridden by PR #4011. \r\n\r\n### Which issue(s) this PR fixes:\r\n\u003c!--\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #\r\n\r\n### Special notes for reviewers:\r\n```\r\n```\r\n\r\n### Does this PR introduced a user-facing change?\r\n\u003c!--\r\nIf no, just write \"None\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://github.com/kubernetes/community/blob/master/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\n\r\n```\r\n\r\n### Additional documentation, usage docs, etc.:\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\nPlease use the following format for linking documentation or pass the\r\nsection below:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n\r\n/assign @zheng1 \r\n",
          "url": "https://github.com/kubesphere/kubesphere/pull/4013",
          "state": "MERGED",
          "createdAt": "2021-06-28T06:18:19Z"
        },
        ...
```

## 注意事项
1. `title` 即 PR 的标题，一般稍加润色即可放到 release notes 里，release notes里不要放与测试/makefile优化等PR内容。
2. 对于 `kubekey` `fluentbit` 等 repo，将脚本里的 `base:release-3.1` 修改成对应的分支