...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

dmdの新しいバージョンをwingetに登録する

まずは winget が入っているか確認する。

> winget -v
v1.10.340

winget に登録されている dmd のパッケージのバージョンを確認する。

> winget list Dlang.DMD
名前 ID        バージョン ソース
---------------------------------
DMD  Dlang.DMD 2.107.1    winget

登録されているバージョンが古かった。

ちなみに winget のパッケージはここで管理されている。

github.com

新しいパッケージを追加するための WingetCreate が入っているか確認する。

> wingetcreate
Windows パッケージ マネージャー マニフェスト作成者 v1.9.4.0
Copyright (c) Microsoft Corporation. All rights reserved.

マニフェスト作成コマンドラインユーティリティは、Windows パッケージマネージャーリポジトリにアプリを送信するためのマニフェストを生成します。

使用できるコマンドは次のとおりです:

  new              新しいマニフェストの生成に役立つ一連の質問を開始します
  update           既存のマニフェストのフィールドを更新します
  new-locale       新しいロケール マニフェストの生成に役立つ一連の質問を開始します
  update-locale    既存のロケール マニフェストの更新に役立つ一連の質問を開始します
  submit           有効なマニフェストを Windows パッケージ マネージャーのリポジトリに直接送信します。
  settings         設定を開く
  token            GitHub 認証トークン キャッシュを変更します
  cache            キャッシュに保存されているダウンロード済みインストーラーを管理します
  show             Windows パッケージ マネージャーのリポジトリからマニフェストを表示する
  info             ツールの一般情報を表示します

詳細については、次の場所を参照してください: https://aka.ms/winget-create
プライバシーに関する声明: https://aka.ms/winget-create-privacy

入っていなかったらインストールする。

> winget install wingetcreate

新しい dmdインストーラーの URL を調べる。

dlang.org

https://downloads.dlang.org/releases/2.x/2.111.0/dmd-2.111.0.exe

2.111.0 の URL を引数に書いてマニフェストの作成を実行する。

> wingetcreate update --urls https://downloads.dlang.org/releases/2.x/2.111.0/dmd-2.111.0.exe --version 2.111.0 Dlang.DMD

次の3つのテキストファイルが作成される。

\manifests\d\Dlang\DMD\2.111.0\Dlang.DMD.installer.yaml

\manifests\d\Dlang\DMD\2.111.0\Dlang.DMD.locale.en-US.yaml

\manifests\d\Dlang\DMD\2.111.0\Dlang.DMD.yaml

従来のマニフェストに存在している項目は新しいマニフェストにもないと bot のチェックではじかれてしまうので、 Dlang.DMD.installer.yaml に ReleaseDate の行を追加する。 日付は、該当バージョンのリリース日を yyyy-mm-dd の形式で入力。

# Created using wingetcreate 1.9.4.0
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.9.0.schema.json

PackageIdentifier: Dlang.DMD
PackageVersion: 2.111.0
InstallerType: nullsoft
Scope: machine
InstallModes:
- interactive
- silent
UpgradeBehavior: install
FileExtensions:
- d
- dd
- def
- di
- exe
- lib
- obj
- res
Installers:
- Architecture: x86
  InstallerUrl: https://downloads.dlang.org/releases/2.x/2.111.0/dmd-2.111.0.exe
  InstallerSha256: 20FF65988E15B4B74242798895C9179A38573F714D500ADE377F4AAC8E862928
ManifestType: installer
ManifestVersion: 1.9.0
ReleaseDate: 2025-04-01

作成された設定ファイルのチェックをかける。

> winget validate manifests\d\Dlang\DMD\2.111.0

管理者権限の PowerShell を起動して実行して、ローカル環境にあるマニフェストでインストールできるようにする。

> winget settings --enable LocalManifestFiles

ちゃんとマニフェストが作成できたか、試しにインストールしてみる。

> winget install -m manifests\d\Dlang\DMD\2.111.0

うまくインストールできたらプルリクエスト。

> wingetcreate submit manifests\d\Dlang\DMD\2.111.0

これで自分の GitHub アカウントに fork が作成され、公式リポジトリにプルリクエスト (PR) が飛ぶ。

github.com

初めて PR するときは、ライセンスに同意することをコメント欄で発言しなければならない。

bot が PR に不備がないかチェックしてくれるのに1~2時間かかるもよう。

チェックを通過していればコミッターが翌日くらいには確認してマージしてくれる。

> winget list Dlang.DMD
名前 ID        バージョン ソース
---------------------------------
DMD  Dlang.DMD 2.111.0    winget
> winget show Dlang.DMD
見つかりました DMD [Dlang.DMD]
バージョン: 2.111.0
公開元: D Language Foundation
発行元 URL: https://dlang.org/
作成者: D Language Foundation
モニカー: dmd
説明: DMD Compiler for Windows
ホーム ページ: https://dlang.org/dmd-windows.html
ライセンス: BSL-1.0
ライセンス URL: https://www.boost.org/LICENSE_1_0.txt
著作権: Copyright (c) 1999-2023 by the D Language Foundation
タグ:
  compiler
  dlang
インストーラー:
  インストーラーの種類: nullsoft
  インストーラーの URL: https://downloads.dlang.org/releases/2.x/2.111.0/dmd-2.111.0.exe
  インストーラーの SHA256: 20ff65988e15b4b74242798895c9179a38573f714d500ade377f4aac8e862928
  リリース日: 2025-04-01
  オフライン配信をサポート: true

新しい dmd のパッケージが追加された。