Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

deps: replace vendored refresh_rate 1.0.2 with upstream 2.0.1

未關閉
#1,584 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
42/100
Issue 類型
功能
描述清晰度
描述清楚
活躍度
活躍
技術堆疊
dart, flutter
領域
desktop, devtools

研究方向

Start by verifying the refresh_rate publisher transfer and reviewing the native diff from 1.0.2 to 2.0.1, especially the Linux, Windows, and macOS changes. Then inspect pubspec.yaml, third_party/refresh_rate/, third_party/README.md, and lib/core/motion/display_refresh_service.dart; finish by checking CI on Linux, Windows, and macOS and confirming the dependency override and vendored copy are removed.

由索引模型根據 Issue 內容生成。

描述

enhancement motion P3

Summary

third_party/refresh_rate is a vendored copy of refresh_rate 1.0.2 kept only for two build fixes. Upstream 2.0.1 appears to fix both natively, so the fork can likely be dropped in favour of refresh_rate: ^2.0.1.

Why the fork exists vs. 2.0.1

Reason for the fork In 2.0.1
Linux -Werror: uninitialized rates[0] Linux plugin rewritten on generated Pigeon GObject bindings; the hand-rolled rates array is gone
macOS SPM: Package.swift pointed at ../Classes, outside the package root (#555) Package.swift uses path: "Sources/refresh_rate" inside the package

App compatibility

Only lib/core/motion/display_refresh_service.dart uses the package.

  • RefreshRate.enable() now returns Future<RateRequestResult>; we call it unawaited (wrap in unawaited(...) if the lint is on).
  • showHz() and info.{currentRate,maxRate,isVariableRefreshRate} are source-compatible.
  • DisplayRefreshService.currentHz / maxHz have no other callers.

Behaviour changes: on Linux maxRate is 0.0 (was max across monitors) and unknown values no longer fall back to 60 Hz. info is populated asynchronously, so the first debug log may show 0 Hz.

Tasks

  • Verify the package publisher: repository moved from qoder-official/refresh_rate to afewgoodcoders/refresh_rate while the Android package is still in.qoder.refresh_rate. Confirm it is a legitimate transfer and skim the native diff 1.0.2 → 2.0.1 (Windows and macOS changed too).
  • pubspec.yaml: refresh_rate: ^2.0.1, remove the refresh_rate entry from dependency_overrides.
  • Delete third_party/refresh_rate/ and update third_party/README.md if it references it.
  • CI green on Linux (-Werror), Windows and macOS.
  • Follow-up, separate PR: reconsider flutter.config.enable-swift-package-manager: false. It disables SPM for all plugins, not just this one.

Fallback

If the Linux -Werror build or Windows/macOS breaks on upstream 2.0.1, keep the fork and re-vendor 2.0.1 with only the needed patch.

Found during the dependency review.

主要語言
Dart
星號
23
分支
1
平均合併
31 分鐘
30 天內合併 PR
570

環境準備

在 Codespaces 中開啟

在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

QueryaHub/Querya-Desktop 的其他 Issue

查看 QueryaHub/Querya-Desktop 的全部 Issue

相似的 Issue

更多 Dart Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。