代码版本更改“规则”[关闭]

2024-01-13

我知道关于软件版本控制没有固定的规则,但我有几个问题。

1)如何正确升级版本

我有一个不久前开始使用的小软件,自从我从头开始以来,我从 0.1 版本开始。

当我添加更多功能时,我一直在升级次要版本号。现在我处于 v0.5.7(次要版本(.5)用于新功能,修订版(.7)用于错误修复和细微更改),问题是该程序几乎已完成分发,但现在我“缺少“几个小版本,你们遇到这种情况怎么处理?你只是简单地跳过数字吗?

这就引出了第二个问题。

2) 哪个是好的起始版本号

我即将开始一个新项目。这次的项目不小,而且是公开的,可以免费修改,我不想再出现上面提到的问题。那么哪个是一个好的起点呢?

奖金问题:

3) 数字可以大于10吗?比如 v1.25 或 v2.2.30?

我还没有看到具有这种编号的软件(可能他们只在帮助部分或他们的网页中显示它),我再次知道没有任何规则,但似乎有一个通用的同意如何保留版本号。


版本编号策略有时可能有点疯狂(请参阅版本号和 JSR277 http://alblue.bandlem.com/2008/05/version-numbers-and-jsr277.html, or Oracle http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html,及其 Oracle Database 11g 第 2 版:11.2.0.1.0.
也可以看看软件版本控制是荒谬的 http://aniszczyk.org/2009/11/19/software-versioning-is-ridiculous/).

但你可以先看看Eclipse 版本号策略 http://wiki.eclipse.org/Version_Numbering作为一个好的开始。
如果你真的认为你需要超过三位数,这个V.R.M.F.维修流运输车术语解释 http://www-01.ibm.com/support/docview.wss?uid=swg27008656也很有趣,但对于 1.0 后的软件程序来说更是如此,其中修复包和临时修复是有序的。


  1. 如何正确升级版本

“已经发货”:1.0.0

也被称为“1.oh-oh“版本。至少,它已经存在,您可以开始获取反馈并进行迭代fast.

  1. 哪个是好的起始版本号

0.x if major功能仍然缺失;1.0.0如果有主要特征的话。

  1. 数字大于10可以吗?比如 v1.25 或 v2.2.30?

是的,但我想说的只是生命周期超过几年(通常是十年)的大型项目


请注意“正确”(虽然在语义版本控制 2.0.0 http://semver.org/)也可以以更务实的因素为指导:

See the Git 1.9 公告(2014 年 1 月) https://lists.q42.co.uk/pipermail/git-announce/2014-January/000647.html:

候选版本 Git v1.9-rc2 现在可以在通常的地方进行测试。

我听说有传言说各种第三方工具不喜欢两位数的版本号(例如“Git 2.0”)并开始左右呕吐当用户安装 v1.9-rc1 时。
虽然人们很容易嘲笑他们草率的假设,但我也很务实, 不介意调用即将发布的 v1.9.0 来帮助他们。

如果我们走这条路(我现在倾向于走这条路),版本控制方案将是:

  • 下一个候选版本将是v1.9.0-rc3, not v1.9-rc3;
  • 第一个维护版本v1.9.0v1.9.1(第 N 个是v1.9.N); and
  • v1.9.0 之后的功能版本将是 v1.10.0 或 v2.0.0,具体取决于我们期望的功能跳跃有多大。

2019 年 2 月更新:semver 本身即将演变(同样是在 semver2 之后)。
See "SemVer 的下一步是什么 https://words.steveklabnik.com/what-s-next-for-semver#fnref2", and semver/semver/CONTRIBUTING https://github.com/semver/semver/blob/master/CONTRIBUTING.md.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码版本更改“规则”[关闭] 的相关文章

  • Gitlab 请求我创建一个合并请求,而不是直接推送到存储库

    我已经设置了一个deploy staging然而 每当我推入 GitLab 项目的存储库时 它有一个 DeployHQ webhook 如果这有什么不同的话 它会显示以下内容 remote remote To create a merge
  • 版本控制与错误跟踪软件的集成有多重要[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 目前我们使用 FogBugz 来跟踪问题 发现它没问题 我正在寻找其他东西 让最终用户能够与我们一起跟踪他们的案例 以及实际上与电子邮件配合良好
  • 有人有使用私有 Launchpad 实例的经验吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人已经在自己的服务器上安装并运行启动板了吗 我想要建议 因为我在网上找不到任何建议 此外 官方团队还对拥有自己的启动板发表了可怕的言论 他们还
  • Android studio 搁置的更改消失了,甚至在 .idea/shelf 目录中也没有

    我在 Android studio 中搁置了一些更改 然而 由于某种原因 搁置的更改不再存在 我已经检查了 project directory idea shelf 但它们也不在那里 Android studio 是否会在 idea she
  • Windows 上 Matlab 64 位版本的免费 SCM [已关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当 Matlab 安装为 64 位版本时 它只能使用 64 位源代码控制系统 是否有免费的源代码控制系统
  • 孤独的开发人员但有大量的 xhtml css jquery 工作?我应该使用版本控制系统吗?

    它对于单用户单台 PC 有用还是太过分了 我可以使用任何版本控制系统来节省时间并提高生产力吗 如果答案是肯定的 那么哪种免费版本控制系统最适合我以及如何节省时间 我在家和办公室工作 这两个地方我都可以上网 我想从这两个地方访问源代码 Upd
  • 如何将 git 存储库转换为 Mercurial?

    我一直在使用 git 作为源代码存储库开发 java 应用程序 我想与其他 java 开发人员分享该项目 hg 似乎是他们最常用的 我的问题是如何将 git 存储库转换为 hg 如果我尝试谷歌搜索 将 git 转换为 hg 并且每次搜索命中
  • Git 与 master 合并,无需签出 master

    每次我需要的时候merge develop with master I do git checkout master git merge develop 有时我忘记切换出去master 因此 我在运行时错误地更改了代码master 它可能会
  • Netbeans 版本控制文件颜色代码?

    我试图找到一个图例来帮助解释 NetBeans 用于描述文件状态的不同颜色 我的一些文件颜色是 Grey Blue Green 还有其他我还没有发现的 如果有帮助 我将使用带有 CVS 的 Netbeans 6 7 这些颜色是什么 绿色意味
  • 将两个相似的远程 git 存储库合并为一个

    我已经做了一些搜索并阅读了 git 书籍和网络上的一些地方 例如 git 但我找不到正确的方法来做到这一点 我有两个 git 存储库 位于两台不同的机器上 这些 git 存储库中的每一个都保存程序的配置 当您比较两个存储库时 配置的某些部分
  • 如何在 svn 存储库中本地忽略 .git 和 .gitignore?

    我有一个 SVN 工作副本 由 TortoiseSVN 管理 在该工作副本中 我使用 git 进行本地版本控制和分支 当然 我想隐藏svn的 git目录和 gitignore文件 但是 忽略它们意味着将属性添加到不再是本地的存储库中 我不希
  • 使用 .NET SDK / C# 在 StarTeam 中查找文件的过去修订版本

    我正在尝试编写一个 C 程序来比较 StarTeam 存储库中不同版本的文件 查看文件的当前版本与给定的先前签入之间是否有任何更改 我目前能够从当前版本中查找 签出文件 但很难找到正确的方法来查找这些文件的过去版本 至少在 NET 方面 B
  • 在源代码管理中管理我的数据库

    由于我正在处理一个新的数据库项目 在 VS2008 中 而且我从未从头开始开发数据库 因此我立即开始研究如何在源代码管理 在本例中为 Subversion 中管理数据库 我找到了一些关于SO的信息 包括这篇文章 保持多个环境中的开发数据库同
  • 使用 GIT 自动增加 AssemblyFileVersion

    好吧 我知道这可能不是传统的 但除此之外 我使用 AssemblyFileVersion 作为我的 构建名称 字符串 它的格式如下 File Version information for an assembly consists of t
  • 在两个单独的分支或存储库中管理项目后端和前端?

    我启动了一个移动应用程序项目 该项目将具有服务器端和应用程序本身 所以 在master分支我创建了2个项目myapp server and myapp然后我创建了另外 2 个分支backend and frontend我只想将与它们相对应的
  • git 显示已添加到 gitignore 的文件中的更改?

    我已经将 log2 文件夹和 main js 文件添加到 gitignore 如屏幕截图所示 但即使执行后git rm cached r我仍然可以看到 git 正在检测 main js 和 log2 文件夹内文件的更改 怎么会 这些的常见问
  • TFS 2017 - 如何构建/交付仅更改的文件?

    我正在使用 TFS 2017 关于标题 我找到了一个术语 增量构建 但是 我找不到在哪里设置它 我尝试在 构建参数 p IncrementalBuild true 中添加增量参数 但总是收到错误 表明这是错误的参数 是否可以仅交付 或构建并
  • 将bitbucket发布到数字海洋

    我本质上是试图使用 bitbucket 来理解 git 的概念 我一直在通过修改本地帐户和 bitbucket 帐户之间的文件来练习版本控制 事实证明这很有帮助 现在我正在尝试弄清楚如何将文件从 bitbucket 或者我猜是 GitHub
  • 如何恢复 CVS 中的重大更改?

    我的一位同事完全搞乱了我们主 CVS 存储库中目录的内容 我需要将整个模块恢复到去年年底的状态 请问执行此操作的 CVS 命令是什么 他添加和删除了数百个文件 因此简单的 从旧签出和提交中复制文件 是不够的 我有 RTFM 和 STFW 我
  • “解决方案的源代码控制之间似乎存在差异......”

    我们在 Visual Studio 2005 和 TFS 中经常遇到此错误 任何人都可以帮助我们查明此消息的原因吗 完整的消息是 解决方案的来源之间似乎存在差异 控制有关某些项目的信息以及 项目文件 为了解决这个差异 有必要检查 项目文件并

随机推荐

  • “NoneType”对象没有属性“secret_key”

    我收到这个错误 NoneType 对象没有属性 secret key 当我尝试使用更新我的应用程序时git pull我已经在以下路径配置了AWS凭证 纳米 home USER aws config 我让它 我提到的存档 如下 profile
  • 如何将非消耗性订阅改为自动续订并保留老用户?

    我在 Apple Store 中有非消耗品定价的应用内购买功能 该应用程序的使用需要付费 如何将非消耗性订阅更改为自动续订订阅 以某种方式保留购买该应用程序的用户 新用户可通过自动续订订阅付费 不 你无法更改它 只需确保在你的应用程序中 你
  • android putextra 没有启动活动

    我需要帮助 我有两个活动和一个数据库 我想做的就是当我按下活动 A 中的按钮时 我将 editText 中的字符串发送到活动 B 在活动 B 中 我尝试将该字符串插入我的数据库中并将其显示在列表视图中 如果我在活动 A 中启动活动 B 则一
  • 如何让iOS应用程序与蓝牙连接?

    如何使用蓝牙制作iOS应用程序 我需要一个通过蓝牙与其他设备 例如笔记本电脑 连接并交换数据的应用程序 许多 BLE 软件包 但无法找到经典蓝牙的软件包 如果您想使用Apple iOS设备的经典蓝牙接口 您必须遵守 接受苹果的MFi htt
  • PHP:在线程之间共享静态变量

    我在 PHP 的不同线程之间共享静态变量时遇到问题 简而言之 我想要 1 在一个线程中写入静态变量 2 在其他线程中读取并进行所需处理并清理 为了测试上述要求 我编写了下面的 PHP 脚本
  • Guava 缓存“expireAfterWrite”似乎并不总是有效

    private Cache
  • 如何将 5000 多行从 google Analytics 导出到 Excel

    我正在尝试将 5000 多行从 google Analytics 导出到 Excel 工作表 但我无法这样做 我在谷歌上搜索了很多关于它的内容 并尝试了 url 修改来替换explorer table rowCount 3D5000 wit
  • Android Facebook 登录:如何在 XML 中没有 LoginButton 的情况下使用 LoginManager 检查登录情况

    我已经使用 LoginButton 在我的 Android 应用程序中完成了 facebook 登录检查 但我想使用 LoginManager 进行检查 我怎样才能修改我的代码以这种方式工作 LoginButton loginButton
  • 获取 Chrome 的当前区域设置

    我正在使用此 API 确定浏览器的当前区域设置 var language window navigator userLanguage window navigator language 此次回归 fr FR 在 IE 中 但它只返回 fr
  • 在 JavaScript 中从 DataURL 下载文件

    从 DataURL 获得的这个字符串中 将其下载为文件的最佳方法是什么 到目前为止我得到的是使用基本的window open myDataURL 但我无法以这种方式更改文件名 window open data application msw
  • Spring Boot 3 与 Lombok

    将我的项目从 Spring Boot 2 7 升级到 3 0 后 我得到 找不到标志 由于 Lombok 生成的代码而导致编译器错误 有什么方法可以让它协同工作 Spring Boot 3 和 Lombok 注释 您应该更新到 lombok
  • 右键单击以选择 Datagridview 中的一行并显示一个菜单以将其删除

    我的 DataGridView 中只有几列 而我的行中有数据 我在这里看到了一些解决方案 但我无法将它们组合起来 只需右键单击一行 它将选择整行并显示一个菜单 其中包含删除该行的选项 当选择该选项时 它将删除该行 我做了几次尝试 但都不起作
  • 了解 R 中的列表索引和括号约定

    我几乎了解 R 中的列表索引 但我有一些挥之不去的问题 具体来说 我试图了解使用多个索引来获取列表中的不同数据层 以及在每个数据类型的每个级别使用的括号类型 首先 我将展示一个简单的示例列表和我到目前为止的理解 Make an exampl
  • 向特定用户发送推送通知 - Laravel

    在我的 laravel 应用程序中 我想使用 Pusher 向特定用户发送通知 我将此代码放入我的方法中 pusher App make pusher pusher gt trigger notification channel notif
  • 从 HttpSessionListener 中获取用户名

    我想从内部获取用户名HttpSessionListener sessionCreated 当我说用户名时 我特指的是返回的名称HttpServletRequest getRemoteUser 显然 一定有一个HttpServletReque
  • System.Data.SqlTypes.SqlTypeException:SqlDateTime 溢出

    我正在使用 C net 和 SQL Server 2008 当尝试在我的项目中运行测试单元时 出现以下错误 System Data SqlTypes SqlTypeException SqlDateTime overflow Must be
  • 比较两个 CSV 并仅导出两者都不存在的名称列表

    我有 2 个带有用户名的 CSV 文件 我只想导出两个文件中都不存在的用户名 我现在的代码 file1 import csv Path C ps output adusers csv file2 import csv Path C ps o
  • HTML、jQuery:在图像映射区域显示文本

    我有一个像这样的图像映射 img src planets gif width 145 height 126 alt Planets
  • IIS Express——让 SSL 发挥作用

    我无法让 IIS Express 接受我正在开发的 VS2010 MVC3 项目的安全连接 我可以让它接受端口 80 上的不安全连接 但接受端口 443 上的不安全连接 根据谷歌搜索 我采取了以下步骤 1 通过在 VS2010 命令行上执行
  • 代码版本更改“规则”[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我知道关于软件版本控制没有固定的规则 但我有几个问题 1 如何正确升级版本 我有一个不久前开始使用的小软件 自从我从头开始以来 我从 0 1 版