标签: semantic-versioning

PIP/Python 是否支持同一包的多个版本?

假设我有一个 package foo,并将foo我在多个 Python 脚本中使用的二进制共享对象打包起来。

  • Foo v1(共享对象)
    • Bar v1(需要 Foo v1)
    • Baz v1(需要 Foo v1)

现在我想向 Foo 推出一个新的重大更新。

  • Foo v2(共享对象)
    • Bar v2(需要 Foo v2)
  • Foo v1(共享对象)
    • Bar v1(需要 Foo v1)
    • Baz v1(需要 Foo v1)

semvar 中具有不同主要版本的旧依赖项可以通过 PyPI 分发吗?如果是这样,怎么办?

pip packing pypi python-3.x semantic-versioning

7
推荐指数
1
解决办法
7876
查看次数

-next 在语义版本控制中意味着什么

语义版本控制中预发布版本的含义是什么x.x.x-next,例如6.0.0-next.0,,,?我至少在Angularnpm项目中看到过这个术语。这是传统, ,命名法的替代吗?我还没有看到任何解释为什么这些项目使用该术语。6.0.0-next.16.0.0-next.2alphabetarc

versioning semantic-versioning

7
推荐指数
1
解决办法
987
查看次数

当预发布版本是最新可用版本时,semver 中的插入符 (^) 是否与预发布版本匹配?

考虑使用这些版本的库(例如 NPM 包):

  • 1.0.0
  • 1.0.2
  • 1.1.0-预发布

如果我^1.0.0在依赖项中指定,将安装什么版本?1.1.0-prerelease是最新版本,但我认为任何预发布版本都不满足我未指定预发布部分的范围。我尝试过使用https://semver.npmjs.com,但 lodash 不存在预发布也是最新的情况。

versioning npm semantic-versioning

7
推荐指数
1
解决办法
2656
查看次数

[主要].[次要].[补丁]的最大数量

对于@semantic-release,[major].[minor].[patch],主要、次要、补丁的最大数量是多少?即999.999.999?

semantic-versioning semantic-release

7
推荐指数
0
解决办法
4234
查看次数

使用语义版本控制或 Lerna Publish 从 CI/CD 部署时如何确保 Master 和 Dev 分支保持同步

设置

我有几个 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分支始终位于 和 分支之后或等于stagedev分支;并且stage分支始终位于分支后面或等于dev分支,就像级联效应一样。

dev>= stage …

semantic-versioning gitlab gitlab-ci lerna conventional-commits

7
推荐指数
1
解决办法
1668
查看次数

可以在VS Package Manager UI中显示预发布的NuGet包吗?

我正在使用自定义NuGet提要来部署自己的NuGet包.我正在使用semver,因此我的CI服务器正在为每个构建生成一个部署新的预发布包.默认情况下,在程序包管理器中,这些预发布包显然不可见.

有没有办法在包/ Feed /全局级别指定预发布包应出现在包管理器的"更新"选项卡下?

如果我通过编辑packages.config文件安装预发布包,我的包在包管理器中用红色'预发布'标签清楚地标记,因此管理员正确理解版本控制.

nuget nuget-package semantic-versioning

6
推荐指数
1
解决办法
2496
查看次数

当只在GitHub上更改README时,是否必须更新项目版本?

我在GitHub上编辑我的一个开源项目,我想替换链接(指向一个演示)README.md.

每次我对README文件或文档进行一些小的更改(没有任何实际的代码更改)时,是否必须更新库版本?

社区接受的做法是什么?

如果这很重要,我正在使用Bower来分发我的软件包和SemVer作为版本控制系统.

versioning version github semantic-versioning bower

6
推荐指数
1
解决办法
1182
查看次数

Gradle:什么意味着依赖项具有“升级版本”?

今天我在 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

6
推荐指数
1
解决办法
1007
查看次数

Azure Pipeline Nuget软件包版本控制方案,如何获取“ 1.0。$(Rev:r)”

我正在设置一个Azure Pipelines版本,该版本需要将C#.NET类库打包到NuGet包中。

本文档中,它列出了几种自动生成SemVer字符串的不同方法。我特别想实现这一点:

$(Major).$(Minor).$(rev:.r),其中MajorMinor是在构建管道中定义的两个变量。此格式将自动使用新的补丁程序号递增内部版本号和软件包版本。它将使主要版本和次要版本保持不变,直到您在构建管道中手动更改它们为止。

但这就是他们所说的,没有提供任何示例。要了解更多信息的链接,将带您到本文档,其中说:

对于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

6
推荐指数
5
解决办法
2655
查看次数

GitVersion 配置不递增

我正在尝试设置GitVersion来处理我们项目的语义版本控制 (GitFlow),但它并没有像我预期的那样自动递增。我也在努力阅读项目的文档,这不是最容易理解的。

基本上我们希望建立一个具有 Major.Minor.Patch 约定的版本控制系统,我们手动增加 Major,当一个 release 分支合并到 master 时自动增加 Minor,当一个 feature 分支合并到 develop 时自动增加 P​​atch。

这是我的当前 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)

git git-flow semantic-versioning gitversion

6
推荐指数
1
解决办法
2429
查看次数