-
Notifications
You must be signed in to change notification settings - Fork 31
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
[features]: Attempt of Unification of Utility And Operation Instantiation #55
Comments
system
version
package #54Prefer plugin, remove index for manual version maintaining
env
|
Native:Definition: The package is installed directly from source or binaries without any version management. Use Case: Tools that do not require version management or are system-level dependencies. Example: gcc, make, or system utilities. Version Manager:Definition: The package is managed by a version manager (e.g., nvm for Node.js, rvm for Ruby). Use Case: Tools that require multiple versions or isolated environments. Example: node, ruby, python. Prebuilt:Definition: The package is downloaded as precompiled binaries and installed directly. Use Case: Tools that are distributed as binaries and do not require compilation. Example: docker, vscode. Self-Versioned:Definition: The package comes with its own version manager (e.g., Rust with rustup). Use Case: Tools that bundle their own version management system. Example: rust, bun. |
RuntimePath Storage
Construct a test sandbox...(May need other Lua package aid) Config
|
CLIUtils
Cmds
|
shimsenv
create shims:
shims registry
|
Package Plugin Supplementmeta:
register:
|
Features Describe | 功能描述
Current runtime is quoted by every feature, and spread out over many files includes
common.lua
,xlings.lua
, parts ofutils.lua
,platform.lua
. It could be parts ofcli
,runtime
,system
separation.Usage Scenario | 需求背景/使用场景
Maybe Solutions | 可能的实现方案 - (if you are developer)
cli
,runtime
,system
and much more by utility.cli
: Parse input; call a certain functionality or feature.runtime
: provide infos of current execution, such ashome
,cwd
,xlings_home
; control the current env or index.system
: provideOS
,Arch
,PM
info with their interaction.env
: handle version and path.package
: package_index and related utility.Currently, there are two ways of separation, first as functionality, second as cli args. If we want to emphasize on functionality, the callee should be each functionality as args rather than
install
,uninstall
, it's vague whetheruninstall
package oruninstall
xlings
itself. So a better choice is to separate by functionality, and abandon theverb
args (xlings xim *args*
). If we want to extend many, such segregation seems unavoidable.For example:
Additional context | 额外补充
The text was updated successfully, but these errors were encountered: