出自flip the world 檢視Software version的原始碼 頁面討論 閱讀檢視原始碼檢視歷史 ←Software version 您沒有權限執行編輯此頁面,由於以下原因: 您請求的操作只有這個群組的使用者能使用:使用者 您可以檢視並複製此頁面的原始碼。 '''Software versioning''' is the practice of assigning identifiers to distinct releases. This page records the scheme used on this wiki and the alternatives it was chosen over. == Scheme used here == Four sequences, '''major.minor.patch.build''' - the form used by the release logs on [[ASTAR]], [[RTD1073]], [[Netgem]] and [[Tiny6410]], for example <code>NTV350_Diag_1.0.3.4</code>. {| class="wikitable" ! Field !! Increment when |- | major || The interface changes in a way that breaks existing users. |- | minor || Features are added, but existing users are unaffected. |- | patch || Only defects are fixed. |- | build || A new build of otherwise identical source. |} Any field that increments resets every field to its right. == Other schemes == * '''Semantic versioning''' - three sequences with the same major/minor/patch rules made explicit and machine-checkable. See [https://semver.org/ semver.org]. * '''Date-based''' - <code>2015.04</code> or <code>20150401</code>. Says when, not what changed; useful for rolling releases. * '''Year of release''' - marketing-facing, e.g. Windows 95. Carries no ordering information for a maintainer. * '''Degree of compatibility''' - some projects encode ABI compatibility in the major number so a linker can reason about it. == Practice == * The version in the binary and the version in the tag must match. If they can disagree, they eventually will. * Never reuse a version number, even for a build that was never shipped. * An unreleased tree carries the next version with a suffix, not the last released version. == Reference == * [https://en.wikipedia.org/wiki/Software_versioning Software versioning - Wikipedia] * [https://semver.org/ Semantic Versioning] [[Category:Software Engineering]] 返回到「Software version」。