ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TagStudio Changelog 全解读:从 9.1.0 到 9.6.3 的完整演进路线与背后工程实践

TagStudio Changelog 全解读:从 9.1.0 到 9.6.3 的完整演进路线与背后工程实践 TagStudio Changelog 全解读从 9.1.0 到 9.6.3 的完整演进路线与背后工程实践【免费下载链接】TagStudioA User-Focused Photo File Management System项目地址: https://gitcode.com/GitHub_Trending/ta/TagStudio本文以 docs/changelog.md仓库根目录下的 CHANGELOG.md 与其内容一致为主体完整梳理 TagStudio 从 2024 年 4 月首次公开发布9.1.0到 2026 年 8 月 9.6.3 的全部版本记录并结合 pyproject.toml、数据库迁移模块、忽略系统、查询语言解析器与测试目录中的源码证据说明每个大版本里程碑SQLite 后端迁移、查询语言、.ts_ignore系统、字段模板、标签/字段栏重做在代码库中对应的真实实现。读完后你可以按版本定位功能、判断升级兼容性并能追溯每条 changelog 记录背后的源码位置。一、Changelog 的组织方式版本、PR 与提交如何对应docs/changelog.md 采用固定的结构组织每个版本一节标题格式为## 版本号 发布日期例如## 9.6.3 smallAugust 15th, 2026/small从最新的 9.6.3 倒序记录到 9.1.0。三个固定类别Added新增、Changed变更、Fixed修复其中Changed下常再细分Internal Changes内部/工程变更与Translations翻译更新。逐条溯源每条记录都附带 conventional-commit 前缀feat、fix、refactor、perf和 PR 编号或完整提交哈希以及贡献者用户名。带!的feat!/refactor!表示破坏性变更如 9.5.0 的refactor!: use SQLite and SQLAlchemy for database backend。预发布版本也纳入记录如 9.5.0-pr1 至 9.5.0-pr42025 年 1 月至 2 月其中包含 9.5.0 正式版的核心内容查询语言、标签类别、自定义标签颜色、DB_VERSION 提升到 8 等。这种记录即索引的写法使得 changelog 不仅是版本说明更是功能考古的第一入口下面各节将选取几个里程碑版本把记录项与当前仓库中的源码、测试、文档逐一对应。二、里程碑版本全记录2.1 2024 年9.1.0 — 9.4.2从首次发布到 JSON 库的完善版本日期要点引自 changelog9.1.02024-04-22首次公开发布Initial public release9.2.02024-05-14完整 macOS/Linux 支持多选批量打标签右键上下文菜单全文件类型入库可配置文件类型黑名单启动时自动打开上次库文件夹结构转标签树folders to tags工具Delete键快捷键体系纯文本缩略图Windows/macOS 构建脚本标签管理模态框。最低 Python 版本提升到 3.12同时列出了若干已知问题如多字段编辑可能更新错误字段9.2.12024-05-23RAW 图片.raw/.dng/.rw2/.nef/.arw/.crw/.cr3与 HEIF 的缩略图/预览支持9.3.02024-06-08视频文件播放预览布尔and/or搜索模式选择Fix Unlinked Entries 菜单扫描修复重复条目CtrlA/Esc选全/清选热键扩展名白名单可反转为黑名单无库打开时的默认落地页Subtags 更名为 Parent Tagsos.path全面替换为pathlib最低 macOS 版本提升至 12.09.3.12024-06-13分离固定 Qt nixpkg 版本0 帧视频防读错误重构video_player.py9.3.22024-07-18修复 Folders to Tags 功能与扩展名搜索大小写问题测试接入 CI升级 PySide6 至 6.7.19.4.02024-09-03字段复制/粘贴一次添加多个字段文件拖拽进出程序添加标签时可顺带创建新标签Blender 预览文件删除/进回收站右键、编辑菜单、Delete键字体预览缩略图显示 Aa、预览面板显示完整字母表标签按字母/颜色排序Source Engine 文件预览专辑封面、音频波形缩略图显示文件创建/修改时间9.4.12024-09-13未安装 FFmpeg 时警告用户.raf/.orfRAW 支持Mac/Windows 使用birthtime作为文件创建时间目录刷新时保留搜索查询文件重扫描性能大幅改进9.4.22024-12-01保存失败时为库创建自动备份#554这一阶段 TagStudio 的数据存储为 JSON 格式功能围绕文件管理 标签 预览快速堆叠为 9.5.0 的架构性重构积累了需求。2.2 9.5.02025-03-03SQLite 后端、查询语言、标签类别与国际化这是 changelog 中篇幅最大的一次发布changelog 原文明确说明自 v9.4 以来大部分开发时间与资源都花在了SQLite 存储格式上。核心内容存储引擎破坏性refactor!: use SQLite and SQLAlchemy for database backend#332并提供了 JSON 库到 SQLite 的迁移#604。围绕它还有大量parity功能对齐修复拖拽文件#528、别名与父标签后端#596、父标签搜索#673、字段与标签的复制/粘贴#722、文件进回收站#792、显示名#747、创建并添加标签#711等。changelog 同时提醒entries表新增了date_created、date_modified、date_added列#740。重写的搜索引擎查询语言实现#606与 AND 查询优化#679文件类型/媒体类型搜索#575且jpg与jpeg等价#649路径搜索改用 glob 通配#582并引入Smartcase 与无 glob 路径搜索#743path: temp大小写不敏感、path: Temp大小写敏感path: *temp*、path: temp*等写法均支持 smartcase按入库日期排序#674搜索自动补全#586。标签体系Tag FieldsMeta Tags / Content Tags 等中间层被Tag Categories标签类别取代#655标签直接加到文件条目上标签终于可以从标签数据库面板删除#569扩展的标签颜色系统#709与用户自定义标签颜色管理器 Tag Color Manager#801预发布 9.5.0-pr4 引入颜色含命名空间、名称、主色与可选副色别名 UI 修复#641、#534。缩略图与预览新增 SVG#540、PDF#543、ePub#539、OpenDocument#545、JXL 及动态 APNG/WEBP#549支持音频播放#576与音量滑块#691缩略图缓存#694。国际化翻译系统落地#662、#803首发中文繁体、荷兰语、菲律宾语、法语、德语、匈牙利语、挪威语、波兰语、葡萄牙语巴西、俄语、西班牙语、瑞典语、泰米尔语、Toki Pona、土耳其语 15 种语言翻译托管于 Weblate。此外还有杂项关于页面#712、可配置启动画面#703、缩略图网格显示文件名#633修复项包括非 ASCII 文件名打开兼容#667、恢复外部程序启动前的环境变量#707、-o参数路径含空格失效#670、GLOBAL_IGNORE_SET加入.DS_Store等。2.3 9.5.1 — 9.5.72025-03 至 2026-05配置化、.ts_ignore与格式扩展9.5.12025-03-06修复翻译导致程序崩溃且无法重新打开的问题#827/#830/#833/#835并将关于窗口标题与翻译解耦#836。9.5.22025-03-31新设置菜单 设置后端#859可隐藏完整文件路径的设置#841文件名/路径排序#842媒体控件合并#805提供.desktop文件#870修复 0 帧 webp 预览、GIF 响应性#894、视频无缝循环#902等。9.5.32025-08-07Datetime 字段#921/#946/#926与date_format、hour_format设置#904反选#909无扩展名文件显示 stem#899Krita/OpenRaster 缩略图#985缩放快捷键#956文本字段可点击链接#924VTF 文件改用 srctools 渲染#1014内部完成多轮 MVC 拆分QtDriver、preview_panel、preview_thumb、tag_box 等与 logging 到 structlog 的迁移#1012。9.5.42025-09-01.ts_ignore文件与文件夹忽略系统取代旧的扩展名忽略方式采用.gitignore风格的 glob 规则文件位于库的.TagStudio文件夹内可在 TagStudio 内或外部编辑规则热重载旧扩展名规则被尽量迁移#897、#1046库目录可跟随符号链接遍历利用ripgrepRust 编写的目录搜索工具加速库刷新要求系统已安装且可被 TagStudio 找到Library Information 窗口View 菜单库统计 清理工具包括清理被忽略文件曾入库但不再满足忽略规则的文件#1056、#1070随机排序#1029、EXR 缩略图#1035、缩略图生成开关#1057、CLI 版本参数#1060、启动画面选择设置#1077性能OR 查询 SQL 优化#948、预览面板查询优化#942、批量给选中条目加标签#1028DB 版本号改为存入versions表#1058cache_manager线程安全化#1039。9.5.52025-09-08缩略图缓存大小设置#1088cached_thumb_quality、cached_thumb_resolution两个仅可编辑settings.toml配置的选项#1101Windows 旧版start命令选项windows_start_command#1084.cbr/.cbt漫画包缩略图#1112、#1116ePub 封面优先读取ComicInfo.xml#1109/#1111视频始终显示首帧、自动播放#1104。9.5.62025-10-20.cb7缩略图#1118无限滚动并改进分页性能#1119修复A AND A搜索无结果#1138、glob 尾斜杠规则#1127、未链接注册表的 wcmatch 忽略模式#1124、save_new_files周期性让出#1040等。9.5.72026-05-05隐藏标签hidden tags#1139.pdn#1149、.mdp#1153、.clip#1150、压缩包缩略图#1194更新通知#1166标签批量插入/删除优化#1296删除标签时清理全部TagParent行#1250条目选择跨页保持并保存滚动位置#1248新增 Cebuano 翻译。2.4 9.6.0 — 9.6.32026-06 至 2026-08字段模板与标签/字段栏重做9.6.02026-06-29完全可自定义的字段Customizable Fields。changelog 原文要点内置字段列表缩减为一组字段模板可完全修改或删除Text Line 与 Text Box 合并为单一Text 类型通过模板上或已存在字段上动态切换的Multiline选项控制多行可自建任意名称、类型与其他选项的字段模板应用到文件条目上的字段名称可编辑。对应 PR字段解耦硬编码值#1354、从text_fields/datetime_fields表移除type_key列#1370、字段模板管理器#1374、字段模板编辑器与可编辑字段名#1396。其他新增超过 10000 个新文件的自动加载可配置#1349、更新通知可关闭且缺失 ffmpeg 弹窗改为横幅#1400、所有栅格图可作为压缩包缩略图#1373。修复与性能更新通知崩溃#1278、查询语言分词器ESCAPABLE_CHARS修正#1334、空 ORList 返回 false#1297、忽略注册表路径匹配#1382、进度条#1293、用数据库索引优化标签搜索#1129。内部SQL 迁移重构#1295、删除preferences表#1298、Python 3.13 支持#1047、CI 全面改用 pyright 并移除 mypy#1232/#1371、工作流改版#1437。新增 Amharic、Hebrew 语言。9.6.12026-07-09.pxd缩略图#1430设置面板化组织#1425标签管理器左键编辑标签#1416修复别名更新卡死#1412、Python 包可执行#1414、非隐藏条目选择的优化 SQL#1240、macOS 构建找不到 ripgrep#1427、tag_parents中无效child_id清理#1423等。9.6.22026-08-06打标签工作流大改标签/字段搜索栏。changelog 给出的完整操作说明必须逐条保留点击 Add Tag 按钮或按CtrlT打开内联标签搜索栏可快速创建并应用新/旧标签——空库中建标签只需点 Add Tag、输入名称、按Enter点击 Add Field 或按CtrlL打开字段栏字段获得同等体验搜索时带下划线的标签/字段模板会在Enter时添加无搜索结果时Enter创建新标签/字段模板并加入选择按住Shift再按Enter强制创建新标签/字段模板无视搜索结果右键搜索栏或设置中可开启新标签创建后总是打开编辑窗口默认关闭可开启应用模板后总是编辑字段内容默认开启字段模板创建后总是进入编辑经典标签搜索面板仍可通过File → Add Tag to Selected/ShiftCtrlT访问。其他.aiAdobe Illustrator缩略图#1453内部完成 Modal/ModalView/ModalContent 的 MVC 拆分#1454、搜索面板 MVC 化#1461、ThumbRenderer 类拆分#1462、SQL 迁移从 library 拆出#1432、删除废弃的 folders 表#1444、文档从 mkdocs 迁移到 properdocs#1459。修复旧版.pxd缩略图渲染#1441、预览面板时长统计#1421、新标签别名不保存#1455。9.6.32026-08-15在关于窗口显示库格式版本标签/字段栏四个 QoL 改进默认保持打开#1472、纵向滚动转为横向#1473、Tab/ShiftTab导航#1474、提示图标#1475修复无法创建新颜色、颜色盘间距、多种刷新操作无限加载、主窗口关闭后仍弹更新框、Windows 强调色问题#1477内部几乎最终的迁移代码清理#1456法语、希伯来语、匈牙利语、日语翻译更新。三、数据库版本体系changelog 与源码如何互相印证changelog 中反复出现的 DB_VERSION如 9.5.0-pr4 提到内部 DB_VERSION 提升到 8用本版本创建的库在更早的 9.5.0 预发布版中仍可打开但自定义颜色边框行为不完全一致在当前仓库中有精确的源码对应src/tagstudio/core/library/alchemy/constants.py 定义DB_VERSION: int 400以及DB_VERSION_CURRENT_KEY CURRENT、DB_VERSION_INITIAL_KEY INITIAL两个键——即库里同时记录当前版本与初始版本。src/tagstudio/core/library/alchemy/migrations.py 的版本检查逻辑DB_VERSION 6 是第一个受支持的 SQLite 库版本版本号 ≥100 时为主版本×100次版本的复合编号loaded_db_version // 100为主版本破坏性变更。库的主版本高于程序主版本则拒绝加载抛出MigrationError对应界面上的 library version mismatch 提示仅次版本更高仍允许打开并自动迁移——这解释了 changelog 中 9.6.3 在关于窗口显示库格式版本的功能背景迁移按链式逐步执行源码中的迁移序列为MigrationTo7value_type、tags→To8tag_colors→To9entries→To100tag_parents→To101versions 表→To102tag_parents→To103tags→To104删除 preferences→To200/To201field tables对应 9.6.0 字段模板重构→To202tag_parents→To300删除 folders 表对应 9.6.2 的 remove dead folders table #1444→To400新增 category_exclusions。每条迁移在独立事务中执行出错回滚成功后写入versions表。版本读取兼容新旧存储versions表DB_VERSION 101 加入存在时读Version行否则回退读旧preferences表中key DB_VERSION该表在 9.5.4 起弃用、9.6.0 起删除#1298。测试侧有完整的版本回归夹具tests/fixtures/empty_libraries/ 下提供DB_VERSION_6、DB_VERSION_7、DB_VERSION_8、DB_VERSION_9、DB_VERSION_100、DB_VERSION_101、DB_VERSION_103、DB_VERSION_200、DB_VERSION_201、DB_VERSION_202等各历史版本的空库样本由 tests/core/library/test_migrations.py 驱动迁移验证。从源码结构看changelog 与代码的对应关系非常直接每个大版本100 的倍数对应一次破坏性 schema 变更升级是自动且单向的旧程序无法打开主版本更高的库这是所有升级指引类问题的最终答案。四、关键特性的源码级佐证4.1 查询语言9.5.0 #606 起changelog 提到的布尔操作符、filetype/mediatype 搜索、glob 路径、smartcase、自动补全等特性实现位于独立的查询语言子包 src/tagstudio/core/query_lang/tokenizer.py分词9.6.0 修复过其ESCAPABLE_CHARS、parser.py、ast.py、util.py。语义文档见 docs/search.md相关回归测试在 tests/core/library/test_search.py测试库夹具为 tests/fixtures/search_library/。4.2.ts_ignore与 ripgrep9.5.4忽略系统实现于 src/tagstudio/core/library/ignore.py.ts_ignore位于库目录的.TagStudio文件夹下内置GLOBAL_IGNORE全局忽略列表含 changelog 9.5.0 提到的.DS_Store等并支持从模板src/tagstudio/resources/templates/ts_ignore_template.txt生成。规则匹配依赖wcmatch见 pyproject.toml 中wcmatch10.*依赖对应 9.5.6 中对 wcmatch 模式的修复 #1124/#1127。ripgrep 检测逻辑在 src/tagstudio/core/utils/ripgrep_status.py9.6.1 修复过 macOS 构建找不到 ripgrep 的问题 #1427。规则语法与示例见 docs/ignore.md。4.3 字段模板9.6.0字段体系实现位于 src/tagstudio/core/library/alchemy/fields.py 与 JSON 遗留实现 src/tagstudio/core/library/json/fields.pyQt 侧的模板管理器/编辑器控制器为 src/tagstudio/qt/controllers/edit_field_template_modal.py、src/tagstudio/qt/controllers/field_template_widget.py测试见 tests/qt/test_field_containers.py。功能文档见 docs/fields.md。数据库侧的type_key列删除#1370对应迁移链中的MigrationTo200/MigrationTo201。4.4 国际化changelog 每个版本的 Translations 小节对应仓库中的 src/tagstudio/i18n/translations.py 与语言资源目录 src/tagstudio/resources/translations/en、fr、de、ja、zh_Hant、es、ru、hu、it、pt_BR、sv、tok 等翻译回归测试在 tests/i18n/test_translations.py对应 9.5.1 中翻译崩溃程序的修复所引入的测试 #833。五、版本与环境的适用前提以当前仓库为准结合 pyproject.toml 可以确认当前工作树的真实约束注意它领先于 changelog 最后一个版本version 9.6.4changelog 最新只到 9.6.32026-08-15当前仓库代码已处于 9.6.4 开发中读 changelog 时需以文档记录的上界为准requires-python 3.14,3.15Python 版本要求经历 9.2.0 提升至 3.12、9.6.0 修复 3.13 支持#1047后当前主树已要求 3.14关键运行时依赖PySide66.11.2、SQLAlchemy~2.0、wcmatch10.*、mutagen、rawpy、py7zr/rarfile/py7zr压缩包预览、structlog等——与 changelog 中 9.6.1 以依赖组dependency groups替代可选依赖#1435的工程改版一致9.5.4 起库刷新性能依赖系统级 ripgrep 与 9.5.0 起的缩略图缓存settings.toml中cached_thumb_quality/cached_thumb_resolution可进一步调优安装与外部工具ffmpeg/ripgrep说明见 docs/install.md 与 docs/help/ffmpeg.md。六、如何使用这份 Changelog定位功能引入版本按第二节表格倒查每条特性都带 PR 编号与贡献者例如隐藏标签是 9.5.7#1139、字段模板是 9.6.0#1374/#1396。评估升级兼容性破坏性变更以!前缀标注9.5.0 的 SQLite 迁移、9.6.0 的字段解耦库版本不匹配时程序会拒绝打开主版本更高的库见第三节MigrationError逻辑而次版本差异会自动迁移见 src/tagstudio/core/library/alchemy/migrations.py。验证行为变更changelog 中每条记录都能在仓库中找到对应物——迁移行为看 tests/core/library/test_migrations.py 与版本夹具、重复文件处理看 tests/core/test_dupe_files.py、忽略规则看 src/tagstudio/core/library/ignore.py、搜索语法看 docs/search.md 与 docs/usage.md 的打标签章节9.6.2/9.6.3 的标签/字段栏交互细节以该文档为准。综上docs/changelog.md 完整覆盖了 TagStudio 从 9.1.0 到 9.6.3 的全部新增、变更与修复且每条记录都可以与当前仓库的源码、配置与测试一一对应SQLite 迁移链、.ts_ignore忽略系统、查询语言、字段模板与标签/字段栏交互构成了这条演进主线的五个可验证支点。【免费下载链接】TagStudioA User-Focused Photo File Management System项目地址: https://gitcode.com/GitHub_Trending/ta/TagStudio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表