OCI: Define MediaTypes and decompression logic for nupkg/zip
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 45/100
調査の方向性
まず、既存の OCI アーティファクトの pull パスを追跡し、tar および tar+gzip レイヤーがどのように処理されているかを確認します。nupkg および zip のメディアタイプを定義し、それらのレイヤーに unzip 処理を適用して、既存の形式に影響を与えずにネイティブの zip パッケージが消費されることを検証します。
索引モデルが issue の本文から書いたものです。
説明
Summary of the new feature / enhancement
As a publisher, I want to publish PowerShell Modules packaged in nupkg as ORAS artifacts to consume in their native zip format rather than having to convert them to tar+gzip.
If I am hosting a large registry (e.g. https://pwsh.gallery), I can reference the same storage/packages for both nugetv2/v3 and oras packages, otherwise I have to hold and maintain duplicate copies/storage of every package.
Proposed technical implementation details (optional)
OCI allows definitions of both a media type and an image type. Rather then be generic, we should define types for both of these and implement them for nupkg/zip:
Nupkg MediaType: application/vnd.dotnet.nupkg.v1+zip
Zip Layer MediaType: application/vnd.oci.image.layer.v1.zip
When pulling packages, apply proper unzip to these layers and then handle the same as the tar+gzip. Potentially support a strict option to only accept items that were strictly published with the dotnet.nupkg mediatype.
This behavior would only occur on the specified image type, so it would not break any compatibility.
Registries could choose to then host powershell modules in either native zip, tar, tar+gzip, or tar+zstd.
This implementation would not require any registry-side changes, as they are designed for this and do not need to know or understand the zip format to work for both publishing and retrieval, unless a registry does some sort of non-standard validation of the artifact.
It may make sense to define these formats or the transfer mechanism in general in a PowerShell RFC so that all OCI-based PowerShell tools have a standard set of instructions to work from.
- 主要言語
- C#
- スター
- 576
- フォーク
- 114
- 平均マージ
- 23時間 17分
- マージ済み PR(30日)
- 8
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
PowerShell/PSResourceGet のほかの issue
-
Create parent directories only after the containment check in InstallHelper.TryExtractToDirectory オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PowerShell/PSResourceGet#2056 ·
-
feature_request
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
PowerShell/PSResourceGet#2013 · コメント 3 件 ·
-
feature_request Needs-Triage
PowerShell/PSResourceGet#2057 · 担当者 1 名 ·
-
Needs-Triage
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
PowerShell/PSResourceGet#2055 ·
-
Needs-Triage
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
PowerShell/PSResourceGet#2054 ·
PowerShell/PSResourceGet の issue をすべて見る
似ている issue
-
effort:S P3 refactor
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
nightscout/nocturne#1532 ·
-
core dependencies
難易度 1/5 1時間未満 初心者へのやさしさ 80/100
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
C#/.NET Roslyn LSP オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
DotNetNext/SqlSugar#1458 ·