[Discussion] Multiple package version support in pkgm, potential problems and feature creep

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

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

評価

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

調査の方向性

Start by reading issue #24 and the discussion about the planned uninstall feature. The issue identifies /usr/local/bin and /usr/local/lib as affected paths but names no implementation files or tests; work is not defined until the version-support policy is decided.

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

説明

Following from #24 (which we cannot rely upon packages following semver unfortunately) I have hit several other issues thinking about this. I think we need to clarify this before #24 and starting an uninstall feature.

How do we want to support multiple versions?

some points:

  1. There can only be one version linked in /usr/local/bin using the packages name. Do we make it the highest version installed? how to run other versions?
  2. make symbolic links for /usr/local/bin/package-version/usr/local/pkgs/package folder/version/package-bin
  3. 2 above this would have to be done with other binaries in a package if they are made available. (pkgx. ‘provides:’ ?)
  4. 1 and 2 would also have to be done with libraries on /usr/local/lib
  5. If we want to support multiple versions how would this work with upgrades, upgrade only x or x.x what about patch versions ?
  6. How to keep versions we want to keep? Add a pin feature to stop upgrading and pruning of certain installed versions?
  7. do we want to be able to switch default version e.g change the symbolic link on /usr/local/bin/package
  8. How to deal with packages and versions removed from the pantry

As you can see this starts to become very messy and increases complexity.
Perhaps we only should have one version for each package or perhaps only the major or major and minor?
or perhaps only allow multiple versions for certain packages?

With libraries I would hope that libraries would be on path in the env and /usr/local/lib is just a fallback.
But we would have to think about this because its probably more likely that we want multiple versions of libraries.

Will pkgx's pantry be keeping multiple versions of everything?
I doubt it, maybe libraries, compilers and interpreters for an extended period of time.

主要言語
TypeScript
スター
60
フォーク
13
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

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

pkgxdev/pkgm のほかの issue

pkgxdev/pkgm の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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