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

poetry-dynamic-versioning环境变量配置:全局控制与高级覆盖技巧

poetry-dynamic-versioning环境变量配置:全局控制与高级覆盖技巧

【免费下载链接】poetry-dynamic-versioningPlugin for Poetry to enable dynamic versioning based on VCS tags项目地址: https://gitcode.com/gh_mirrors/po/poetry-dynamic-versioning

poetry-dynamic-versioning是一款为Poetry打造的动态版本控制插件,能够基于VCS标签自动生成版本号。本文将详细介绍如何通过环境变量实现全局控制与高级覆盖,帮助开发者轻松管理项目版本。

环境变量基础:全局控制的5大核心变量 🚀

poetry-dynamic-versioning提供了5个关键环境变量,让你无需修改项目配置即可灵活控制版本行为:

1.POETRY_DYNAMIC_VERSIONING_BYPASS:静态版本强制覆盖

当你需要完全绕过VCS版本检测时,这个变量能派上大用场。只需设置一个具体版本值,插件就会忽略所有VCS标签和配置,直接使用该值:

export POETRY_DYNAMIC_VERSIONING_BYPASS="1.2.3"

这对发行版维护者特别有用,可在没有原始仓库的情况下为现有版本打补丁。

2.POETRY_DYNAMIC_VERSIONING_OVERRIDE:精细化包版本控制

需要为特定依赖包指定版本?这个变量支持逗号分隔的包版本列表:

export POETRY_DYNAMIC_VERSIONING_OVERRIDE="pkg1=0.1.0, pkg2=0.2.0"

当同时设置BYPASSOVERRIDE时,后者优先级更高,让你实现更精细的版本控制。

3.POETRY_DYNAMIC_VERSIONING_COMMANDS:命令级激活控制

通过逗号分隔的命令列表,你可以精确指定哪些Poetry命令触发动态版本控制:

export POETRY_DYNAMIC_VERSIONING_COMMANDS="build,publish"

设置为空字符串则完全禁用动态版本:

export POETRY_DYNAMIC_VERSIONING_COMMANDS=""

这在Docker等隔离环境中特别有用,可避免不必要的版本计算。

4.POETRY_DYNAMIC_VERSIONING_COMMANDS_NO_IO:无文件修改模式

某些命令(如version)不需要修改文件,可通过此变量指定:

export POETRY_DYNAMIC_VERSIONING_COMMANDS_NO_IO="version,check"

插件会在内存中计算版本但不修改文件,保持工作区整洁。

5.POETRY_DYNAMIC_VERSIONING_DEBUG:调试日志开关

需要排查版本问题?开启调试日志:

export POETRY_DYNAMIC_VERSIONING_DEBUG="1"

这会输出详细的替换过程日志,帮助你定位问题所在。

实战场景:环境变量的高级应用技巧 💡

CI/CD流水线中的版本控制

在GitHub Actions或GitLab CI中,你可以这样配置:

jobs: build: steps: - name: Set dynamic version run: | if [[ $GITHUB_REF == refs/tags/v* ]]; then export POETRY_DYNAMIC_VERSIONING_BYPASS=${GITHUB_REF#refs/tags/v} fi - name: Build package run: poetry build

开发/生产环境切换

创建环境切换脚本(switch-env.sh):

#!/bin/bash if [ "$1" = "prod" ]; then export POETRY_DYNAMIC_VERSIONING_COMMANDS="build,publish" else export POETRY_DYNAMIC_VERSIONING_DEBUG="1" export POETRY_DYNAMIC_VERSIONING_COMMANDS="build" fi

依赖版本锁定

为确保依赖版本一致,可在pyproject.toml中结合环境变量使用:

[tool.poetry-dynamic-versioning] enable = true vcs = "git"

然后在部署脚本中设置:

export POETRY_DYNAMIC_VERSIONING_OVERRIDE="dependency-dynamic=1.0.0" poetry install

环境变量与配置文件的优先级关系 🔄

poetry-dynamic-versioning采用以下优先级(从高到低):

  1. POETRY_DYNAMIC_VERSIONING_OVERRIDE
  2. POETRY_DYNAMIC_VERSIONING_BYPASS
  3. 项目配置文件(pyproject.toml
  4. 默认设置

理解这个优先级关系,能帮助你设计更灵活的版本控制策略。

常见问题与解决方案 ❓

Q: 设置了环境变量但不生效怎么办?

A: 首先检查变量拼写是否正确,然后确认Poetry版本是否支持(1.2.0+)。可使用POETRY_DYNAMIC_VERSIONING_DEBUG=1查看调试日志。

Q: 如何在Docker中使用环境变量控制版本?

A: 在Dockerfile中设置:

ENV POETRY_DYNAMIC_VERSIONING_COMMANDS="" RUN poetry install --no-dev

Q: 能否同时使用多个环境变量?

A: 可以,但注意OVERRIDE优先级高于BYPASS,其他变量则独立生效。

总结:掌握环境变量,释放动态版本控制全部潜力 🚀

通过本文介绍的5个核心环境变量和实用技巧,你可以轻松实现:

  • 全局版本覆盖与精细化包控制
  • 命令级别的动态版本激活管理
  • CI/CD流水线中的自动化版本控制
  • 开发/生产环境的无缝切换

环境变量为poetry-dynamic-versioning提供了强大的全局控制能力,结合项目配置文件,让你既能保持项目配置的整洁,又能灵活应对各种构建场景。开始尝试这些技巧,提升你的版本管理效率吧!

更多详细配置选项,请参考项目文档:README.md 和 pyproject.toml。

【免费下载链接】poetry-dynamic-versioningPlugin for Poetry to enable dynamic versioning based on VCS tags项目地址: https://gitcode.com/gh_mirrors/po/poetry-dynamic-versioning

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1390277/

相关文章:

  • IDEA中Git分支合并实战:从原理到冲突解决与最佳实践
  • 语义理解让电商平台的商品标准数据实现精准匹配与推荐
  • 剪映自动化从零到实战:JianYingApi 让批量视频剪辑效率翻倍的完整指南
  • 数学建模竞赛全解析:价值、成本与参赛决策指南
  • 文字转CAD工具快速上手:用一句话把想法变成可下载的3D模型
  • APMCM数学建模竞赛:从信息获取到能力提升的完整备赛指南
  • 派工规则引擎:如何把老师傅的经验代码化
  • 基于物理引导数据驱动的碳化硅外延厚度预测混合模型构建
  • 你的 AI 应用可能在“裸奔“:我用 Prompt 注入攻击破解了 5 个主流大模型应用
  • 美团LoHoSearch:基于知识图谱的搜索智能体评测基准解析
  • 镜像站怎么选、怎么用?AO3同人创作访问难题一次说清
  • AMD 780M 核显算力释放实战:ROCmLibs 让 Windows 下的 AI 应用快 2 到 3 倍
  • Freno核心组件解析:从指标收集到限流决策的完整流程
  • 揭秘中山专业网站建设价格:中小企业如何避坑并找到高性价比方案
  • 2026年万安废钽回收站点甄选指南:疑问式对比助您择优推荐 - geo交流
  • 后端工程师做 Agent,要跨过这 9 道认知坎
  • 2026年寄大件比价小程序哪个便宜靠谱?手把手教你省一半运费 - 快递物流资讯
  • Animate.scss核心功能揭秘:50+动画Mixin助你打造专业级UI交互
  • OpenMixup核心功能解析:监督、半监督与自监督学习一网打尽
  • Pixelarticons在React项目中的最佳实践:组件导入与自定义技巧
  • 数学建模国赛C题复盘:成分数据分析与机器学习建模实战
  • 手机号码定位查询,3步把陌生号码标上地图:免费开源工具实测指南
  • 为什么选择vit_tiny_patch16_224.augreg_in21k?轻量级视觉Transformer的优势
  • 快速上手vit_tiny_patch16_224.augreg_in21k:3行代码实现图像分类
  • 2026年北京西北旺二手电器回收找哪家?这份甄选推荐指南值得一看 - geo交流
  • 网站建设里面链接打不开怎么办?揭秘隐藏Bug与终极修复指南
  • html-query:终极HTML数据提取工具,像jq一样轻松解析网页内容
  • 微信聊天记录导出原来这么简单?我用一个开源工具全搞定
  • html-query核心功能详解:CSS选择器与JSON结构的完美结合
  • Chiasmodon实战教程:3分钟学会扫描公司域名获取关联资产