假设我有一个 package foo,并将foo我在多个 Python 脚本中使用的二进制共享对象打包起来。
现在我想向 Foo 推出一个新的重大更新。
semvar 中具有不同主要版本的旧依赖项可以通过 PyPI 分发吗?如果是这样,怎么办?
考虑使用这些版本的库(例如 NPM 包):
如果我^1.0.0在依赖项中指定,将安装什么版本?1.1.0-prerelease是最新版本,但我认为任何预发布版本都不满足我未指定预发布部分的范围。我尝试过使用https://semver.npmjs.com,但 lodash 不存在预发布也是最新的情况。
对于@semantic-release,[major].[minor].[patch],主要、次要、补丁的最大数量是多少?即999.999.999?
我有几个 gitlab 存储库,其中一般设置涉及一个master分支、一个stage(预发布)分支和一个dev分支。
所有 3 个分支的推送权限均被禁用。
工作流程是从dev分支中派生任何修补程序、错误修复和功能。当您对发布感到满意时,您将向 提交合并请求dev。最终,当内部准备好稳定的构建时dev;将为该分支提交合并请求stage。最后,当您对预发布感到满意时,您将提交分支的合并请求master。
我配置了 CI/CD,以便通过自动生成文件从master和分支自动执行测试、构建和部署。分支部署到 UAT s3 Bucket 并部署到生产 s3 Bucket。stageCHANGELOG.mdstagemaster
部署是通过Semantic Versioning 2.0.0它来处理的,它负责更新版本、生成变更日志和部署。
我有一个与上面描述的类似的设置,除了它是一个 monorepo,所以我用来Lerna处理发布(部署)和{"conventionalCommits": true}复制Semantic Versioning 2.0.0的行为。我在 monorepo 中使用独立版本控制。
和 的Semantic Versioning 2.0.0设置都Lerna强制master分支始终位于 和 分支之后或等于stage和dev分支;并且stage分支始终位于分支后面或等于dev分支,就像级联效应一样。
dev>= stage …
semantic-versioning gitlab gitlab-ci lerna conventional-commits
我正在使用自定义NuGet提要来部署自己的NuGet包.我正在使用semver,因此我的CI服务器正在为每个构建生成一个部署新的预发布包.默认情况下,在程序包管理器中,这些预发布包显然不可见.
有没有办法在包/ Feed /全局级别指定预发布包应出现在包管理器的"更新"选项卡下?
如果我通过编辑packages.config文件安装预发布包,我的包在包管理器中用红色'预发布'标签清楚地标记,因此管理员正确理解版本控制.
我在GitHub上编辑我的一个开源项目,我想替换链接(指向一个演示)README.md.
每次我对README文件或文档进行一些小的更改(没有任何实际的代码更改)时,是否必须更新库版本?
如果这很重要,我正在使用Bower来分发我的软件包和SemVer作为版本控制系统.
今天我在 Android Studio 中发现了这个“实验性”屏幕。
一些更新说“Gradle 提升了库版本来自……”这意味着什么?
(我检查了源代码,发现这个:https : //github.com/JetBrains/android/blob/master/android/src/com/android/tools/idea/gradle/structure/daemon/analysis/PsModuleAnalyzer.java# L59,但评论中的链接并不是很有用)
dependencies android gradle semantic-versioning android-studio
我正在设置一个Azure Pipelines版本,该版本需要将C#.NET类库打包到NuGet包中。
在本文档中,它列出了几种自动生成SemVer字符串的不同方法。我特别想实现这一点:
$(Major).$(Minor).$(rev:.r),其中Major和Minor是在构建管道中定义的两个变量。此格式将自动使用新的补丁程序号递增内部版本号和软件包版本。它将使主要版本和次要版本保持不变,直到您在构建管道中手动更改它们为止。
但这就是他们所说的,没有提供任何示例。要了解更多信息的链接,将带您到本文档,其中说:
对于
byBuildNumber,版本将设置为内部版本号,请确保您的内部版本号是正确的SemVer,例如1.0.$(Rev:r)。如果选择byBuildNumber,则该任务将提取一个点缀的版本,1.2.3.4并仅使用该版本,并放下任何标签。要按原样使用内部版本号,您应该如上所述使用byEnvVar,并将环境变量设置为BUILD_BUILDNUMBER。
同样,没有提供示例。看起来我想使用versioningScheme: byBuildNumber,但是我不太确定如何设置内部版本号,我认为它是从BUILD_BUILDNUMBER环境变量中提取的,但是我找不到设置环境变量的方法,只能找到脚本变量。此外,我是否应该将其设置为1.0.$(Rev:r)或$(Major).$(Minor).$(rev:.r)?恐怕只是从字面上解释它。
搜寻文字字符串“ versioningScheme:byBuildNumber”将返回单个结果...是否有人azure-pipelines.yml使用此版本控制方案?
continuous-integration nuget semantic-versioning azure-devops azure-pipelines
我正在尝试设置GitVersion来处理我们项目的语义版本控制 (GitFlow),但它并没有像我预期的那样自动递增。我也在努力阅读项目的文档,这不是最容易理解的。
基本上我们希望建立一个具有 Major.Minor.Patch 约定的版本控制系统,我们手动增加 Major,当一个 release 分支合并到 master 时自动增加 Minor,当一个 feature 分支合并到 develop 时自动增加 Patch。
这是我的当前 GitVersion.yml
mode: ContinuousDeployment
branches:
feature:
increment: Patch
regex: feature?[/-]
release:
increment: Minor
regex: release?[/-]
develop:
regex: develop$
master:
regex: master$
ignore:
sha: []
Run Code Online (Sandbox Code Playgroud)
同样为了测试它,我写了一个小的 ruby 脚本来加速这个乏味的过程。我包含它只是为了确保我以预期的方式使用 GitVersion 和 GitFlow。
require "git"
def new_feature_branch i
g = Git.open(Dir.pwd)
branch_name = "feature/number-#{i}"
g.checkout("develop")
g.branch(branch_name).checkout
open('README.md', 'a') do |f|
f.puts "\r#{i}"
end
g.add("README.md")
g.commit("##{i}")
g.branch("develop").checkout
g.merge(branch_name)
g.branch(branch_name).delete
print(`gitversion`)
end
new_feature_branch(ARGV[0])
Run Code Online (Sandbox Code Playgroud)
输出 gitversion
{
"Major":1, …Run Code Online (Sandbox Code Playgroud) versioning ×3
nuget ×2
android ×1
azure-devops ×1
bower ×1
dependencies ×1
git ×1
git-flow ×1
github ×1
gitlab ×1
gitlab-ci ×1
gitversion ×1
gradle ×1
lerna ×1
npm ×1
packing ×1
pip ×1
pypi ×1
python-3.x ×1
version ×1