-
Notifications
You must be signed in to change notification settings - Fork 2
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
What problem does this solve? #42
Comments
|
Via https://twitter.com/oilsforunix/status/1680957458431213569 :
This oilshell effort sounds more like a "package manager-manager" (like how cmake is a "build script generator"). |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Yes. Users can specify their plugins in a local
Lockfile is tracked in #47
This is defined by the plugin manager. Intentionally not part of the spec, because it's target-dependent. Do you see a problem with that?
I believe any git ref can be expressed in the version, though this is basically the one thing blocking this project: I need to decide whether we should deviate from NPM's version spec (which is pretty nasty). I think probably the answer is "yes, deviate".
That might be something inherited from NPM. May need to revisit (see above).
I think the conclusion by the vim/nvim ecosystem is "neither" or "doesn't matter". It's out of scope for packspac. Nvim/Vim plugin managers need to manage 'runtimepath' (and maybe 'packpath').
NPM has a spec around this.
Part of the work of packspec is to leave target-dependent decisions up to the target. The goal here is, narrowly, to allow dependencies + versions to be specified; everything beyond that is out of scope. |
I am asking all of this because I see flaws in all current plugin managers, as they don't have easy access to all plugin specs from the start.
I am currently exploring a solution wherein user can call So, in my opinion, this may fix my dissatisfaction with current plugin managers - no magic, flat config, programmatically writable spec file and asynchronous installs. Not sure if the issues I touched upon even matter to anyone, but I came to explore packspec to see if my solution can be made in a standardized manner, to not create another snapshot/dependencies/lockfile specification used only by me. |
It means you need spec repository like Emacs MELPA? Certainly, having a central repository would be convenient for users to search and install plugins, but there are several issues:
Note: In the case of MELPA, the approval process seems to be manual. |
No, I didn't mean central repository, although this seems like an interesting idea. I meant json file in user's config that holds user-defined plugin spec (commit/tag, branch, dir, hooks, opt/start, etc.). |
Not to hijack the thread but there is IMO a pretty successful POC based on rockspecs (the format used by luarocks) with luarocks.org holding probably > 400 neovim plugins (https://github.com/nvim-neorocks/nurr uploads 350 by itself). With https://github.com/nvim-neorocks/rocks.nvim you can My petpeeve and my main frustration with the plugin ecosystem now is that all plugins mandate some sort of setup when there shouldn't be any ! Many plugins require empty So packspecs might do more but a lot could be accomplished first by the usage of vim builtins (autoload and so on). |
This comment has been minimized.
This comment has been minimized.
Just to make things clear, I dont contest that some plugins require configuration but 80% could happily work without a config out of the box.
If you dont use the plugin, dont install it ?! or install it in packpath's |
What problem does a "packspec" solve?
The problem needs to be worth solving. #41 proposes to limit the scope to:
Anything else? Is this problem worth solving? Does #41 solve it?
Elevator pitch
packspec (or whatever "wild west half-baked dependencies declaration format") is merely a high-leverage, ultra-low-effort way to start formally connecting the existing web of vim/nvim dependencies. It doesn't preclude a LuaRocks or other centralized solution later, it simply formalizes what already exists.
The text was updated successfully, but these errors were encountered: