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

The Roadmap of the Nushell package manager. #1

Closed
15 tasks
amtoine opened this issue May 21, 2023 · 4 comments · Fixed by #2
Closed
15 tasks

The Roadmap of the Nushell package manager. #1

amtoine opened this issue May 21, 2023 · 4 comments · Fixed by #2
Labels

Comments

@amtoine
Copy link
Member

amtoine commented May 21, 2023

⚠️ Work In Progress ⚠️

projects to check out

🏃 bootstrap (rustup)

Note
see a prototype here

  • install Nushell without any other requirement -> POSIX compliant / bash bootstrap?
  • install nupm itself -> see the amtoine/nupm bootstrap
  • change the version of Nushell with overlays -> kubouch/nuun

🔧 commands to have

  • nupm new [--script] [--module]: create a new local package with template files (kubouch/nuun)
  • nupm init: initialize an existing local package (kubouch/nuun)
  • nupm test [--module] [--workspace]: run unit and integration tests of local package
    `---> i think the std run-tests command just be pulled out of the standard library of Nushell
  • inspired by cargo
    • nupm install: ... (different ways of doing this in amtoine/nupm and kubouch/nuun)
    • nupm uninstall: ...
    • nupm update: ... (prototype in amtoine/nupm)
    • nupm bench: ...
    • nupm search: ...
    • nupm publish: ...
    • nupm doc: ...

🍬 other nice things to have

  • install plugins
  • have a centralized list of official and community packages to
    • pull them with nupm install
    • search them with nupm search

💡 concepts to have in mind

  • activations from amtoine/nupm: ...
  • overlays from kubouch/nuun: ...
  • require the least amount of user manual intervention
    `---> required things might be
    • using the CLI of nupm of course
    • bootstrapping
    • (optional) setting NUPM_HOME to change the location of all files (and be XDG-compliant imo)
    • adding a path to PATH
    • adding a path to NU_LIB_DIRS
    • adding at least one use or overlay use to bring some commands and modules to the startup scope of the shell
  • how do we configure nupm
    • config file?
    • environment variables?
    • both?
@amtoine amtoine pinned this issue May 21, 2023
@amtoine amtoine added the design label May 21, 2023
@amtoine amtoine changed the title ROADMAP The Roadmap of the Nushell package manager. May 21, 2023
@amtoine
Copy link
Member Author

amtoine commented May 26, 2023

know packages

candidate packages:

how should we name our packages, nu-foo or foo.nu?

@colemickens
Copy link

I hope this will include "locking" the same way Cargo does. This will help other package managers that will want to package nushell plugins. I guess this is assuming that remote scripts can include other remote scripts. Having a lockfile mechanism would go a long way to ensuring reproducibility and resilience.

@uncomfyhalomacro
Copy link

I hope I can see an architecture.md soon or something. 👀 i want to contribute

@fdncred
Copy link
Collaborator

fdncred commented May 30, 2023

I would hope that this would include Windows support since one of nushell's biggest features is being cross-platform.

@amtoine amtoine closed this as completed in #2 Jun 5, 2023
amtoine added a commit that referenced this issue Jun 5, 2023
A WIP of a design document. Still has some parts to fill in

should close #1 by moving all the design into `DESIGN.md` 👍 

👉 see the document
[here](https://github.com/nushell/nupm/blob/kubouch-patch-1/docs/design/README.md)

---------

Co-authored-by: amtoine <stevan.antoine@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants