Support package keywords / categories

オープン
#650 コメント 0 件 リアクション 5 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
領域
api, backend

調査の方向性

Start by reviewing the existing purs publish registry compatibility code at src/Language/PureScript/Publish/Registry/Compat.hs and the related Pursuit issues 147, 431, and 416. Determine whether the registry should preserve deprecation or arbitrary keywords, then define the accepted metadata and verify that published purs.json packages expose the intended information.

索引モデルが issue の本文から書いたものです。

説明

discussion pursuit

You can currently deprecate packages on Pursuit by setting the keywords field in your bower.json file to contain the keyword pursuit-deprecated. A package with this keyword automatically gets a banner:

image

The above screenshot shows a deprecated banner because that keyword is set:

https://github.com/purescript-deprecated/purescript-node-fs-aff/blob/56414801882dd23de272bf0bd927160b13b6e86f/bower.json#L11-L15

Pursuit knows of the keyword because the compiler, in purs publish, will copy the contents of the Bower file into the JSON payload sent to Pursuit. See, for example, the contents of the package upload for a deprecated package here:

https://github.com/purescript/pursuit-backups/blob/c2b55e73ece4105759007acbd6681b03d6991d4a/purescript-symbols/3.0.1.json

Of course, any package published by the registry will use a purs.json file, itself derived from the bowerfile, or the spago.dhall file, or the spago.yaml file. In this case, purs publish will create a Bower package out of the purs.json file, which of course has no keywords field:

https://github.com/purescript/purescript/blob/4afea2fbefeebd5e89c67d5a951efee870bcf2f2/src/Language/PureScript/Publish/Registry/Compat.hs#L16-L36

The end result is that it is currently impossible to indicate a package is deprecated via the registry. This raises the bigger question: do we want to allow package deprecation?

Package Deprecation and Keywords

A "deprecated" package is really a social category (it's still usable at its published version, of course, but the author is encouraging you not to use it). We may choose to let authors indicate this, or we may not. Advantages of letting a user indicate information like deprecation include:

  • For keywords we support, we can display extra information in documentation (such as the deprecation badge)
  • For arbitrary keywords, we can support a keyword search on Pursuit

One possible approach is a fixed list of keywords or categories that we know mean something; Crates, for example, has a specific list of categories you can put a package in: https://crates.io/category_slugs

But you can also put arbitrary keywords (up to 5, I believe) in your cargo.toml. We could also support this, allowing people to self-describe with whatever keywords they want.

Related Issues

This has certainly come up before. See:

主要言語
PureScript
スター
95
フォーク
79
平均マージ
16時間 13分
マージ済み PR(30日)
14

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

purescript/registry-dev のほかの issue

purescript/registry-dev の issue をすべて見る

似ている issue

Backend & API Design の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。