可以使用感叹号在语义发布中处理主要版本更改(也称为重大更改)吗?
\ngit commit -m \'feat!: this is breaking, but is not recognized by semantic-release\'\nRun Code Online (Sandbox Code Playgroud)\n传统的提交指南表明,可以在页脚中使用页眉中的感叹号来标记重大更改。
\n\n这是我一直在测试的工作流程
\ngit init\ngit remote add origin git@github.com:klueless-io/k_genesis.git\ngit branch -M main\ngit add .\ngit commit -am \'first commit\'\n# Artificial starting version number\ngit tag v0.0.18 -a -m \'k_genesis initialize repository\'\ngit push -u origin main --tags\ngit hist\nRun Code Online (Sandbox Code Playgroud)\n\nrm a1\ngit add .\ngit commit -m \'feat: remove a1\'\ngit hist\nRun Code Online (Sandbox Code Playgroud)\n\nnpx semantic-release --no-ci\nRun Code Online (Sandbox Code Playgroud)\n\n … semantic-release conventional-commits conventional-changelog
在我们的 Github 工作流程中使用语义发布。
它们的设置如下:
[
{name: 'main', prerelease: false},
{name: 'staging', prerelease: true},
{name: 'development', prerelease: true}
]
Run Code Online (Sandbox Code Playgroud)
推送到development部署到环境development等。stagingstaging
现在,每次版本更新时,使用上面的包,都会使用语义发布/更改日志semantic-release创建更改日志。
现在我们应该如何处理不同分支中冲突的变更日志?
release分支上启用更改日志创建。(我不知道怎么做。插件没有这样的选项。)staging回到development.我想知道那里有人有类似的问题吗?
我有一个 C# 项目,想为其添加语义版本控制。因此,每当我推送到main分支时,我想创建一个新版本并根据提交类型自动生成新版本号。我认为语义释放很好地完成了这项工作,因为我已经将commitlint与husky一起使用。
对于复制:
\nnpm init -y以设置 npmSEMANTIC_RELEASE并添加访问令牌作为其值。
\nname: Release\n\non:\n push:\n branches:\n - `main`\n\njobs:\n release:\n runs-on: ubuntu-latest\n\n steps:\n - uses: actions/checkout@v2\n\n - name: Setup Node\n uses: actions/setup-node@v2\n with:\n node-version: 14.x\n\n - name: Install dependencies\n …Run Code Online (Sandbox Code Playgroud) 我在Github 存储库中使用语义发布来创建推送时的自动发布。该版本需要将 package.json 和 CHANGELOG.md 提交到我的受保护分支。
我曾经从我的管理员帐户提供个人令牌,以允许语义发布推送到受保护的分支。为了提高安全性,我想通过新的细粒度token来替代PT 。因此,我使用与旧 PT 相同的管理员帐户创建了一个细粒度 PT,并授予其内容写入权限。不幸的是,这似乎不足以推送到受保护的分支。

知道可能需要哪些许可吗?
更新:不确定这是否受到支持。我在细粒度个人代币反馈讨论中发布了这个问题
semantic-release github-actions github-fine-grained-tokens protected-branches
嗨,我在我的 repo 中使用语义发布进行版本控制。在我的 Gitlab 中,当我将我的分支与 master 合并时,我的标签会根据提交增加并且工作正常。有什么方法可以让我在合并之前获得“下一个标签版本”。我想在合并之前将下一个版本写入文件
尝试使用 exec 但它似乎没有运行
我尝试使用 exec 但 exec 没有为我运行(我对语义发布很陌生,我一定在某处做错了什么)
你能把我推向正确的方向吗:)
我的 gitlab Ci 脚本:
semantic_release:
stage: Tag
image: node:12.16
variables:
GITLAB_TOKEN: $TOKEN_ACCESS
before_script:
- npm install -g semantic-release/exec
- npm install -g semantic-release @semantic-release/gitlab-config
script:
- semantic-release -e @semantic-release/gitlab-config @semantic-release/exec
only:
- master
Run Code Online (Sandbox Code Playgroud)
这是我的 package.json:
{
"name": "@semantic-release/npm",
"description": "semantic-release",
"version": "0.0.0-development",
"author": "",
"release": {
"analyzeCommits": "@semantic-release/commit-analyzer",
"generateNotes": "@semantic-release/release-notes-generator",
"publish": "@semantic-release/gitlab",
"success": false,
"fail": false,
"branches": [
"master"
],
"npmPublish": false
},
"plugins": …Run Code Online (Sandbox Code Playgroud) 对于@semantic-release,[major].[minor].[patch],主要、次要、补丁的最大数量是多少?即999.999.999?
我正在使用语义发布进行版本控制。每当我将某些东西推送到我的分支时,CI(Gitlab)就会执行语义发布。我的问题是我推送到我的 git 分支,semantic-release 创建了一个版本并创建了标签(例如 1.0.0)。最后,我发现我错过了这次提交的一些重要内容。所以我删除了Gitlab中的标签(存储库>标签,例如https://gitlab.com/user/project/-/tags),最后再次推送我的提交。但现在,semantic-release 告诉我该标签已经存在,但 Gitlab 不再显示任何标签(我删除了所有标签)。现在我决定将以下行添加到我的 CI 中:
git show-ref --tags -d
这显示了我已经在 Gitlab 中删除的所有标签,但它们似乎存在于我的 CI 中。所以我很困惑这里发生了什么......有什么想法吗?我的 CI 中是否需要“同步标签”之类的东西?
当我创建这样的提交git commit -m\'BREAKING CHANGE: foo bar\'并向上推时semantic-release告诉我,
[@semantic-release/commit-analyzer] \xe2\x80\xba \xe2\x84\xb9 Analyzing commit: BREAKING CHANGE: Changes from slice_into_subrepo\n[@semantic-release/commit-analyzer] \xe2\x80\xba \xe2\x84\xb9 The commit should not trigger a release\n[@semantic-release/commit-analyzer] \xe2\x80\xba \xe2\x84\xb9 Analysis of 1 commits complete: no release\nRun Code Online (Sandbox Code Playgroud)\n为什么BREAKING CHANGE不创建一个版本,这里有记录这样做,
\n\n重大更改:石墨宽度选项已被删除。\n出于性能原因,始终使用默认的石墨宽度 10 毫米。
\n
我正在使用语义发布,并且我正在尝试使用配置创建预发布
module.exports = {
branches: [{ name: 'master', prerelease: true }],
plugins: [
'@semantic-release/commit-analyzer',
'@semantic-release/release-notes-generator',
[
'@semantic-release/github',
{
assets: [ { path: 'dist.zip', label: 'PWA App' } ],
},
],
],
};
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,branches它只是一个带有名称和预发布的对象(我也尝试用作数组,同样的问题)
有错误的公共存储库:https :
//github.com/Ridermansb/react-firebase-ssr/runs/813996442?check_suite_focus=true
错误
语义释放“--dry-run”“--debug”
[6:31:02 PM] [语义发布] › ? 运行语义发布版本 17.1.1 [6:31:02 PM] [语义发布] › ? 从“@semantic-release/github”加载插件“verifyConditions”[6:31:02 PM] [semantic-release] › ? 从“@semantic-release/commit-analyzer”加载插件“analyzeCommits” [6:31:02 PM] [semantic-release] › ? 从“@semantic-release/release-notes-generator”加载插件“generateNotes” [6:31:02 PM] [semantic-release] › ? 从“@semantic-release/github”加载插件“publish” [6:31:02 PM] [semantic-release] › ? 从“@semantic-release/github”加载插件“addChannel”[6:31:02 PM] [semantic-release] › …
我已被添加到一个存储库,该存储库使用语义发布来自动提升 NPM 包的版本。该存储库使用常规提交规范,并且自述文件非常有限。
如果我要创建一个feature/ABC-123包含新功能的分支,这是否意味着我所做的每个提交都应该具有以下提交结构,feat: my message related to this commit或者我应该只有 1 个feat提交,其余的chore或其他类型不会提高存储库的版本?
或者我不需要担心这个问题,因为分支是这样的feature/ABC-123,因此语义发布知道将包提高 1 个次要版本,因为它位于功能文件夹中?
希望以上内容有意义,但如果没有的话,这里是一个提交历史记录示例:
feat: add product card basic layout
feat: add title to product card
test: add unit tests to product card
feat: add image to product card
chore: update breakpoints for card
test: add more unit tests
Run Code Online (Sandbox Code Playgroud)
上面的示例是否会像我使用过 3 次那样将 NPM 包提高 3 个次要版本feat,或者仅提高 1 个次要版本?或者这并不重要,唯一重要的是压缩提交并确保feat: added …