当前位置: 首页 > news >正文

语义版本控制

注意: 本文内容于 2024-11-27 22:25:05 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:语义版本控制。感谢您的关注与支持!

由于自己平时喜欢写点小玩意,自然而然的就碰到了许多志同道合的人。

大家都会将自己写的工具包发布到中央仓库,我也不例外。在对比中发现我的版本命名太过随便,因此特意学习一下常见的版本控制规范——语义化版本 2.0.0 | Semantic Versioning。

一句话概括,版本格式为X.Y.Z

  • X: 主版本号。主版本号变更,表示你做了不兼容的API修改
  • Y: 次版本号。次版本号变更,表示你做了向下兼容的功能性新增
  • Z: 修订号。修订号变更,表示你做了向下兼容的问题修正

重要规范如下

最新和更详细的说明还是自行查阅语义化版本 2.0.0 | Semantic Versioning

  1. 必须定义公共API
  2. 必须采用X.Y.Z的格式,且X、Y、Z为非负的整数。版本更新时,要根据实际情况,进行数值递增
  3. 一旦版本发行后,禁止修改版本内容
  4. 主版本号为0(0.Y.Z)的程序,处于开发初始阶段,这样的公共API可能会存在变化
  5. 先行版本号命名规范示例: 1.2.1-alpha.1、1.2.1-alpha.2
  6. 在语义版本前面加v是一种git常见标签的命名方式。

语义版本的在线正则校验工具

  • 用于支持按组名称提取的编程语言:Perl、PHP、R、Python、Go
  • 用于支持按编号提取的编程语言:JavaScript、Java、C#、Perl、PHP、R、Python、Go

下面给出Java的示例工具类

/*** Semantic Versioning** @author <a href="https://meethigher.top">chenchuancheng</a>* @see <a href="https://semver.org/">Semantic Versioning 2.0.0 | Semantic Versioning</a>* @since 2024/11/27 23:07*/
public class SemVer {/*** 语义版本的正则格式*/private static final String SEMVER_PATTERN = "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$";/*** @param semVer 语义版本号* @return true表示输入值符合语义版本的规范*/public static boolean isValidSemVer(String semVer) {if (semVer == null || semVer.isEmpty()) {return false;}return semVer.matches(SEMVER_PATTERN);}}

相关文章:

语义版本控制

注意&#xff1a; 本文内容于 2024-11-27 22:25:05 创建&#xff0c;可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容&#xff0c;请访问原文地址&#xff1a;语义版本控制。感谢您的关注与支持&#xff01; 由于自己平时喜欢写点小玩意&#xff0c;自然而…...

深入理解HTML基本结构:构建现代网页的基石

深入理解HTML基本结构&#xff1a;构建现代网页的基石 在数字时代&#xff0c;HTML&#xff08;超文本标记语言&#xff09;是构建和设计网页的基础。了解HTML的基本结构对于任何希望掌握网页开发的人来说至关重要。本文将详细介绍HTML文件的基本骨架&#xff0c;包括其核心标…...

一体化数据安全平台uDSP 入选【年度创新安全产品 TOP10】榜单

近日&#xff0c;由 FreeBuf 主办的 FCIS 2024 网络安全创新大会在上海隆重举行。大会现场揭晓了第十届 WitAwards 中国网络安全行业年度评选获奖名单&#xff0c;该评选自 2015 年举办以来一直饱受赞誉&#xff0c;备受关注&#xff0c;评选旨在以最专业的角度和最公正的态度&…...

【机器学习】机器学习的基本分类-监督学习(Supervised Learning)

监督学习是一种通过已有的输入数据&#xff08;特征&#xff09;和目标输出&#xff08;标签&#xff09;对模型进行训练的机器学习方法&#xff0c;旨在学到一个函数&#xff0c;将输入映射到正确的输出。 1. 监督学习概述 监督学习需要&#xff1a; 输入数据&#xff08;特…...

Oracle之提高PLSQL的执行性能

目录 1、SQL解析详解 2、演示示例 3、启用Oracle跟踪事件 4、查看改造后SQL性能对比结果 更多技术干货,关注个人博客吧 1、SQL解析详解 SQL解析是数据块处理SQL语句不可缺少的步骤,是在解析器中执行的。将SQL转换成数据库可以执行的低级指令。 SQL解析分为硬解析和软…...

[VSCode] vscode下载安装及安装中文插件详解(附下载文件)

前言 vscode 链接&#xff1a;https://pan.quark.cn/s/3acbb8aed758 提取码&#xff1a;dSyt VSCode 是一款由微软开发且跨平台的免费源代码编辑器&#xff1b;该软件支持语法高亮、代码自动补全、代码重构、查看定义功能&#xff0c;并且内置了命令行工具和Git版本控制系统。 …...

PHP中类名加双冒号的作用

在 PHP 中&#xff0c;类名加双冒号&#xff08;::&#xff09; 是一种用于访问类的静态成员和常量的语法。它也可以用来调用类的静态方法和访问 PHP 的类相关关键词&#xff08;如 parent、self 和 static&#xff09;。以下是详细的解释和用法。 1. 用途概述 :: 被称为作用域…...

前端编程训练 异步编程篇 请求接口 vue与react中的异步

文章目录 前言代码执行顺序的几个关键点接口请求vue与react中的异步vue中的异步react的state修改异步 前言 本文是B站三十的前端课的笔记前端编程训练,异步编程篇 代码执行顺序的几个关键点 我们可以理解为代码就是一行一行&#xff0c;一句一句是执行&#xff08;定义变量&…...

【kafka03】消息队列与微服务之Kafka 读写数据

Kafka 读写数据 参考文档 Apache Kafka 常见命令 kafka-topics.sh #消息的管理命令 kafka-console-producer.sh #生产者的模拟命令 kafka-console-consumer.sh #消费者的模拟命令 创建 Topic 创建topic名为 chen&#xff0c;partitions(分区)为3&#xff0…...

【分布式系统】唯一性ID的实现

1、UUID&#xff08;通用唯一标识符&#xff09; 1、UUID本身 一种用于标识信息的标准化方法。一个128位的数字&#xff0c;常表示为32个十六进制数字&#xff0c;以连字符分隔成五组&#xff1a;8-4-4-4-12。 版本&#xff1a; UUID有不同的版本&#xff0c;最常见的是基于时…...

哪里能找到好用的动物视频素材 优质网站推荐

想让你的短视频增添些活泼生动的动物元素&#xff1f;无论是搞笑的宠物瞬间&#xff0c;还是野外猛兽的雄姿&#xff0c;这些素材都能让视频更具吸引力。今天就为大家推荐几个超实用的动物视频素材网站&#xff0c;不论你是短视频新手还是老手&#xff0c;都能在这些网站找到心…...

SRAM芯片数据采集解决方案

SRAM芯片数据采集解决方案致力于提供一种高效、稳定且易于操作的方法&#xff0c;以确保从静态随机存取存储器SRAM芯片中准确无误地获取数据。 这种解决方案通常包括硬件接口和软件工具&#xff0c;它们协同工作&#xff0c;以实现对SRAM芯片的无缝访问和数据传输。 在硬件方…...

【贪心算法第七弹——674.最长连续递增序列(easy)】

目录 1.题目解析 题目来源 测试用例 2.算法原理 3.实战代码 代码分析 1.题目解析 题目来源 674.最长递增子序列——力扣 测试用例 2.算法原理 贪心思路 3.实战代码 class Solution { public:int findLengthOfLCIS(vector<int>& nums) {int n nums.size();in…...

[AI] 知之AI推出3D智能宠物:助力语言学习与口语提升的新选择

Hello! 知之AI官网 [AI] 知之AI推出3D智能宠物&#xff1a;助力语言学习与口语提升的新选择 随着人工智能技术的飞速发展&#xff0c;虚拟助手和智能设备不断进入我们的生活。近日&#xff0c;知之AI重磅推出了一款创新产品——3D智能宠物。这一产品不仅具备多国语言交流能力&…...

Android 14之HIDL转AIDL通信

Android 14之HIDL转AIDL通信 1、interface接口1.1 接口变更1.2 生成hidl2aidl工具1.3 执行hidl2aidl指令1.4 修改aidl的Android.bp文件1.5 创建路径1.6 拷贝生成的aidl到1和current1.7 更新与冻结版本1.8 编译模块接口 2、服务端代码适配hal代码修改2.1 修改Android.bp的hidl依…...

【R库包安装】R库包安装总结:conda、CRAN等

【R库包安装】R studio 安装rgdal库/BPST库 R studio 安装rgdal库解决方法 R studio 安装BPST库&#xff08;github&#xff09;解决方法方法1&#xff1a;使用devtools安装方法2&#xff1a;下载安装包直接在Rstudio中安装 参考 基础 R 库包的安装可参见另一博客-【R库包安装】…...

学习PMC要不要去培训班?

在当今快速变化的商业环境中&#xff0c;PMC作为供应链管理的核心环节之一&#xff0c;其重要性日益凸显。PMC不仅关乎产品的物料计划、采购、库存控制及物流协调&#xff0c;还直接影响到企业的生产效率、成本控制以及市场竞争力。面对这一专业领域的学习需求&#xff0c;许多…...

前端 用js封装部分数据结构

文章目录 Stack队列链表Setset 用来数组去重set用来取两个数组的并集set用来取两个数组的交集set用来取两个数组的差集 字典 Stack 栈&#xff0c;先进后出&#xff0c;后进先出。用数组来进行模拟&#xff0c;通过push存入&#xff0c;通过pop取出。 class Stack {// 带#表示…...

cocoscreator-doc-TS:目录

cocoscreator-doc-TS-脚本开发-访问节点和组件-CSDN博客 cocoscreator-doc-TS-常用节点和组件接口-CSDN博客 cocoscreator-doc-TS-脚本开发-创建和销毁节点-CSDN博客 cocoscreator-doc-TS-脚本开发-加载和切换场景-CSDN博客 cocoscreator-doc-TS-脚本开发-获取和设置资源-CS…...

理解Java集合的基本用法—Collection:List、Set 和 Queue,Map

本博文部分参考 博客 &#xff0c;强烈推荐这篇博客&#xff0c;写得超级全面&#xff01;&#xff01;&#xff01; 图片来源 Java 集合框架 主要包括两种类型的容器&#xff0c;一种是集合&#xff08;Collection&#xff09;&#xff0c;存储一个元素集合&#xff08;单列…...

Realtek RTL8125 2.5GbE网卡驱动技术指南

Realtek RTL8125 2.5GbE网卡驱动技术指南 【免费下载链接】realtek-r8125-dkms A DKMS package for easy use of Realtek r8125 driver, which supports 2.5 GbE. 项目地址: https://gitcode.com/gh_mirrors/re/realtek-r8125-dkms 1. 问题诊断&#xff1a;网络设备识别…...

光纤布拉格光栅(FBG)笔记【2】:传感机制与布拉格波长调谐分析

1. 光纤布拉格光栅的传感机制揭秘 第一次接触光纤布拉格光栅(FBG)传感时&#xff0c;我完全被它"以光测万物"的能力震撼了。这根比头发还细的光纤&#xff0c;竟然能精准感知温度、应变等物理量的变化。经过多次实验验证&#xff0c;我发现它的核心秘密就藏在布拉格波…...

解锁光猫配置自由:中兴ONT解密工具完全指南

解锁光猫配置自由&#xff1a;中兴ONT解密工具完全指南 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否曾经因为无法修改光猫设置而感到束手无策&#xff1f;当运营…...

Excel双坐标折线图保姆级教程:用散点图搞定多组数据对比(附详细步骤图)

Excel双坐标折线图进阶指南&#xff1a;用散点图实现精准数据可视化 在数据分析的日常工作中&#xff0c;我们经常遇到需要同时展示两组量纲差异巨大的数据——比如销售额&#xff08;百万级&#xff09;和增长率&#xff08;百分比&#xff09;。传统的双坐标折线图虽然能解决…...

Xenium空间原位转录组:从数据到生物学发现的实战解析

1. Xenium平台与空间原位转录组技术初探 第一次接触Xenium平台的数据时&#xff0c;我被它呈现的空间基因表达图谱震撼到了。想象一下&#xff0c;这就像给组织切片拍了一张"基因表达照片"&#xff0c;每个像素点都记录着成百上千个基因的活动状态。10x Genomics推出…...

Android Gradle - Gradle 自定义插件(Build Script 自定义插件、buildSrc 自定义插件、独立项目自定义插件)

一、Build Script 自定义插件 1、基本介绍插件代码直接写在模块级 build.gradle 文件中逻辑非常简单&#xff0c;且仅在该模块使用2、演示 &#xff08;1&#xff09;具体实现 在模块级 build.gradle 文件中定义插件 class SimpleBuildScriptPlugin implements Plugin<Proje…...

AI结对编程:借助快马平台智能生成qclaw官网的AI功能模块

最近在开发qclaw官网时&#xff0c;尝试用AI辅助完成了一个合同条款分析功能&#xff0c;整个过程比想象中顺畅很多。这个功能的核心是让用户输入合同文本后&#xff0c;自动评估风险等级并给出提示。下面分享下具体实现思路和与AI协作的实践经验。 功能设计要点 首先明确这个…...

大模型应用指南:小白程序员必收藏,轻松入门AI前沿技术!

2025年大模型技术已在IT、金融、制造等领域广泛应用&#xff0c;从智能客服到数据分析&#xff0c;助力企业转型。沙丘智库《大模型应用跟踪月报》收录504个案例&#xff0c;揭示行业分布、应用场景及发展趋势。大模型不仅是技术突破&#xff0c;更是时代标志&#xff0c;小白程…...

LFM2.5-1.2B-Thinking-GGUF基础教程:单页Web界面交互逻辑与后处理机制

LFM2.5-1.2B-Thinking-GGUF基础教程&#xff1a;单页Web界面交互逻辑与后处理机制 1. 模型与平台介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个镜像采用内置GGUF模型文件和llama.cpp运行时&#xff0c;提供了…...

拆解 OA 系统:从需求梳理到核心执行,新手一看就会

你是不是觉得公司的OA系统特别难用&#xff1f;报销要填八百个字段&#xff0c;不知道哪个是必填&#xff1b;请假批完还得自己跑去找下一个人&#xff1b;找一个去年的合同&#xff0c;得翻十几层文件夹。更气人的是&#xff0c;提了意见根本没人管&#xff0c;说系统改不了。…...