Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal] Alternative versions of manifest #3493

Closed
Ash258 opened this issue Jun 3, 2019 · 1 comment
Closed

[Proposal] Alternative versions of manifest #3493

Ash258 opened this issue Jun 3, 2019 · 1 comment

Comments

@Ash258
Copy link
Contributor

Ash258 commented Jun 3, 2019

It would be nice to support different versions of manifest (beta, alpha, rc, eap, ...) (Types should be under discussion)

Proposed implementation:

bucket/
  ├── nightly/
  │    ├── ffmpeg.json
  │    └── wavebox.json
  ├── beta/
  │    ├── pwsh.json
  │    └── wavebox.json
  ├── alpha/
  │    ├── pwsh.json
  │    └── wavebox.json
  ├── rc/
  │    ├── pwsh.json
  │    └── wavebox.json
  ├── old/ # PHP,
  │    ├── pwsh@6.1.1.json
  │    └── wavebox@4.1.10.json
  ├── ffmpeg.json
  ├── pwsh.json
  └── wavebox.json

How could commands look like:

scoop install pwsh --beta
scoop install ffmpeg --nightly
scoop install ffmpeg --type nightly
scoop install pwsh --some-universal-pre-release-tag-which-load-other-type-of-manifest # Maybe the latest one if there are more = Higher version will have higher priority

It would require small changes:

  • Find-BucketDirectory, which would accept new parameter Type with predefined ValidateSet and if this is specified then return nested folder
  • Install.json New property "type": "nightly"
  • List command should show type
  • Auto-pr. something like gci $Dir -Directory |% { checkver * -dir $_ -u }; hub commit all

Old versions

This could be implementation even for #3023. But this would require new manifest property ("archive": true) and then would auto-pr automatically copy older version into old directory and commit.

Archive property because some vendors ship only latest version, change URL, have static url, ... (#3023 (comment))

Some cons:

  • There would be much more commits (Is it even problem?? 🤔)
  • More manifests to maintain (Should not be problem in community driven buckets)
  • Pin out other cons

TODO:

Somehow list what versions are available (gci -file $bucketdir\old "$manifest@*.json" 🤔)

Note: This is just late night thought (when I cannot sleep 😀) and the most easiest implementation which came up on my mind at first. There is possible that it would generate some problems, Which I didn't take into account. I only considered it as Bucket maintainer, and user, not scoop developer

@niheaven
Copy link
Member

niheaven commented Jun 4, 2019

Just some thought:

We have the versions bucket, and an unused nightly bucket, so alternative manifests could be put there.

For selected installation, maybe we should automatically select corresponding one, e.g., scoop install pwsh -> pwsh.json, scoop install pwsh --beta -> versions\pwsh-beta.json, scoop install python --alpha -> versions\python-alpha.json, etc.

And I think scoop install pwsh@beta is better then scoop install pwsh --beta, using --beta as argument is somehow strange 😅 There should be some reserved words after @ such as 'alpha', 'beta', 'rc', 'nightly'. (no app use these words as version number, right?) And looking up app-ver.json should be prior when scoop install app@ver, locked version manifest should be in versions bucket and never checkvered. (e.g. lynx-283.json, need to rename existing manifests)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants