まずは winget が入っているか確認する。
> winget -v v1.10.340
winget に登録されている dmd のパッケージのバージョンを確認する。
> winget list Dlang.DMD 名前 ID バージョン ソース --------------------------------- DMD Dlang.DMD 2.107.1 winget
登録されているバージョンが古かった。
ちなみに winget のパッケージはここで管理されている。
新しいパッケージを追加するための 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

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
従来のマニフェストに存在している項目は新しいマニフェストにもないと 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) が飛ぶ。
初めて 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 のパッケージが追加された。