Skip to content

Commit ab4bb1e

Browse files
authored
Add API ideas
1 parent cb56732 commit ab4bb1e

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

DESIGN.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,49 @@ as long as it has `METADATA_FILE` telling `nupm` what to do.
101101

102102
Nushell's module design conflates CLI interface with API -- they are the same.
103103

104-
WIP
104+
- `nupm new [--script] [--module]`
105+
- create a new local package with template files ([`kubouch/nuun`])
106+
- `nupm list`
107+
- list currently installed packages and if they're out of date
108+
- `nupm install`
109+
- install package into the currently active overlay (can override which overlay to install to)
110+
- `nupm add`
111+
- add a dependency to the current project
112+
- it is different from `nupm install`: this one adds the dependency to the MANIFEST_FILE, `nupm install` does not
113+
- `nupm uninstall`
114+
- uninstall a package from a currently active overlay (can override which overlay to install to)
115+
- `nupm update`
116+
- update all packages in a currently active overlay overlay (can specify package and/or overlay name)
117+
- can be used to self-update (let's avoid having both "update" and "upgrade")
118+
- `nupm search`
119+
- search package repository
120+
121+
- `nupm check`
122+
- parse the project to search for errors but do not run it
123+
- `nupm test`
124+
- run unit and integration tests of local package
125+
- `nupm bench`
126+
- run benchmarks
127+
- `nupm doc`
128+
- generate documentation
129+
- `nupm publish`
130+
- publish package to a repository
131+
- (not sure about this one, for now, repository can be a github repo with packages submitted by PRs)
132+
133+
- `nupm overlay new`
134+
- create a new global overlay (Python's virtual environment style)
135+
- `--local` flag could generate an overlay locally from the currently opened project
136+
- `nupm overlay remove`
137+
- deletes the overlay
138+
- `nupm overlay list`
139+
- list all overlays
140+
- `nupm overlay list <overlay-name>` lists all packages installed within the overlay
141+
- `nupm overlay export`
142+
- dump all the installed package names, versions, etc. to a file
143+
- `nupm overlay import`
144+
- create overlay from exported file
145+
146+
We could later think about being able to extend nupm, like cargo has plugins.
105147

106148
## Other
107149

0 commit comments

Comments
 (0)