Releases: SMWHff/winrandr
Releases · SMWHff/winrandr
Release list
v0.9.4
重构
- 新增
scripts/_common.sh共享函数库,消除 build.sh/publish.sh/bump-version.sh 中的版本管理重复代码 - 提取
_calc_relative_position()纯函数,替换 6 个零 mock 坐标计算测试
Bug 修复
- 修复 GitHub Release 中文乱码(改用
--notes-file避免 GBK 编码丢失) - 修复构建脚本默认压缩模式问题 + 发版脚本 UTF-8 编码修复
CI
- 覆盖率阈值从 99% 降至 98%(适配真实硬件测试边界)
--cov-fail-under与pyproject.toml对齐
测试
- Mock 审核修复:违规正向用例 Mock 替换为纯函数测试
- 清除
test_identify_display_full_success违规 Mock 测试
v0.9.3
重构
profiles.py: 从load_profile提取_restore_display辅助函数,消除 C901 复杂度过高utils.py: 合并冗余错误日志,精简_build_path_subset- 新增
repair.py到版本控制(缺失 mode 修复模块)
新增
- 标准化发版流程:
scripts/release/publish.sh(8 步确认)、scripts/release/bump-version.sh、docs/release-process.md .claude/skills/release.md:/release技能定义test_cli_main_mock.py:异常分支 Mock 测试 253 行
CI
- 覆盖率阈值从 85% 提升至 95%(test.yml + pyproject.toml)
.gitignore添加*.cover忽略 coverage 并行模式临时文件- 清理
.claude/worktrees/遗留目录
文档
- 同步 CHANGELOG / architecture.md / README.md / CLAUDE.md 最新状态
release.yml更新默认发布说明
测试
- 测试夹具去重:3 个 profile 测试文件共享
conftest.py的temp_profiles - 覆盖率 99%,7 行未覆盖(入口样板/正向路径,不可 Mock)
v0.9.2
v0.9.2 — 代码质量提升与测试覆盖完善
v0.9.1
v0.9.0
v0.9.0
Bug 修复
- 修复 load_profile 在 set_noprimary 失败时未正确返回 False
- set_off 添加防禁用最后显示器保护
- 修复 Nuitka 编译 exe 环境下日志路径错误(增加文件日志降级处理)
新功能
- PowerShell 模块新增 4 个 cmdlet(Set-WinRandrDryRun、Set-WinRandrVerbose、Get-WinRandrProperties、Get-WinRandrProvider)
代码完善
- 改进类型注解精度(NoReturn、具体 tuple 类型)
- 增加 3 个未覆盖场景的测试
- fail_under 提升至 99%
- 修正 build.sh 注释和版本号提取方式(改用 grep 避免导入全包)
- 移除 .gitattributes 和 xrandr-reference.md 重复行
v0.8.0
v0.8.0
新功能
--night-mode:夜览模式减少蓝光(light/medium/heavy 或 0.0–1.0)- 连接类型检测:
--prop显示 HDMI/DP/USB-C/DVI/VGA - PowerShell 模块新增
Set-WinRandrNightMode、Get-WinRandrListModescmdlet
Bug 修复
- PowerShell 补全动态显示名正则错误(多了一个反斜杠)
--night-mode在补全脚本中缺失- 分辨率
is_preferred未比较刷新率,导致同分辨率不同刷新率都标为首选 _normalize_name对无法识别的输入静默返回未修改字符串
代码/测试完善
- 新增 22 项测试,gamma.py 覆盖率 100%
- 提取共享
_fake_displayfixture 到 conftest.py,消除 5 处重复 _relations提升为模块级常量build.sh添加 uv 前置检查clean.sh补充清理dist/winrandr.exepyproject.toml补充 PyPI 元数据
v0.7.1
v0.6.0
变更
- 拆分超限测试文件(test_cli_main.py → profiles/global/misc,test_models.py → test_edid.py)
- 拆分 test_cli_handlers.py / test_profiles.py / test_cli.py 中超限部分
- 重组 tests/unit/ 为 cli/ profiles/ win32/ 子目录结构
- 从 cli/init.py 提取 parser.py 独立文件
- 所有源文件 ≤300 行,所有目录 ≤8 文件
- 395 项测试,100% 行/分支覆盖率
v0.5.0
v0.5.0 (2026-07-08)
Breaking Changes
-v现在等价于--version(与 xrandr 一致),不再是--verbose的别名。
如需详细日志请使用--verbose(长选项不变)。
架构重构
winrandr/cli.py+cli_handlers.py→winrandr/cli/__init__.py+handlers.py子包winrandr/目录文件数从 9 降至 7,符合 ≤8 规范
新增
--list-providers:--listproviders的兼容别名--list-monitors:--listmonitors的兼容别名
测试
- 395 项通过,全模块 100% 分支覆盖率(1345 语句)
v0.4.0
v0.4.0
新增功能
--brightness/--gamma可不带--output,一次性批量应用到所有已连接显示器- 配置存档管理(Profile):
--save-profile/--load-profile/--list-profiles/--delete-profile --identify:闪屏识别显示器--list-profiles --json/--load-profile --dry-run/--save-profile --dry-run
质量
- 全模块 100% 分支覆盖率(1343 语句,0 遗漏)
- 393 项 pytest,lint 零警告
- 空存档名/显示器缺失/API 失败等所有边界路径覆盖
全局亮度/伽马
winrandr --brightness 0.7 # 批量调暗所有显示器
winrandr --gamma 1.0:0.9:0.8 # 批量伽马校正Shell 补全
. ./scripts/completions.ps1 # PowerShell
source scripts/completions.bash # Bash/Zsh