Skip to content

[BUG] version.json is stale and dotfiles update checker reads the wrong path #1806

Description

@jpwong

Description

The ML4W version metadata and the legacy dotfiles update checker are currently inconsistent:

  1. dotfiles/.config/ml4w/version.json still reports 2.12.3 in the 2.14.1, 2.15, and 2.15.1 releases, as well as on main.
  2. dotfiles/.config/ml4w/scripts/ml4w-check-dotfiles-update tries to read a different, nonexistent path:
version=$(jq -r '.Version' ~/.config/ml4w/version/version.json)

The distributed file is actually located at:

~/.config/ml4w/version.json

As a result, version.json cannot reliably identify the installed ML4W version, and the checker cannot read it even if its contents are corrected.

Evidence

Current release/profile metadata correctly identifies the release as 2.15.1:

  • hyprland-dotfiles-stable.dotinst: version: 2.15.1, tag: 2.15.1
  • Git tag/release: 2.15.1
  • WelcomeApp/WelcomeWindow.qml: hard-coded Version 2.15.1
  • CHANGELOG.md: Version 2.15.1

But the current version.json still contains:

{
    "Title": "ML4W OS",
    "Subtitle": "Dotfiles for Hyprland",
    "Version": "2.12.3"
}

Repository links:

A repository-wide search currently finds version.json consumed only by ml4w-check-dotfiles-update, using the incorrect path above. The current Quickshell Welcome app does not read this file; its version is maintained separately as a hard-coded string.

Steps to reproduce

On an installation from the current stable profile:

jq -r '.Version' ~/.config/ml4w/version.json

Output:

2.12.3

Then check the path used by the update script:

test -f ~/.config/ml4w/version/version.json || echo 'checker path does not exist'

Output:

checker path does not exist

Expected behavior

  • Installed version metadata should match the release/profile version.
  • The update checker should read the actual metadata path.
  • Ideally, the release process should use one source of truth or validate that the Git tag, .dotinst version/tag, Welcome app version, changelog, and installed metadata agree.

Suggested minimal fix

  1. Update dotfiles/.config/ml4w/version.json to the current release version.
  2. Change the checker path to:
~/.config/ml4w/version.json
  1. Consider persisting the installed .dotinst version/tag (and optionally commit) under the installer profile config so the locally installed version can be queried reliably.

Related issue

Related to #1728, where an installer copy no-op also left users with version.json reporting 2.12.3. This report is distinct because the stale value exists in the official 2.15.1 source/tag itself, and the update checker independently points to the wrong path.

Environment

  • ML4W stable profile: com.ml4w.dotfiles.stable
  • Target release inspected: 2.15.1
  • Installer profile metadata: version: 2.15.1, tag: 2.15.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions