Don't ask adding Kaimon to global env #19
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
kahliburke/Kaimon.jl#19
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Each time I start Kaimon, it suggests adding it to the global environment. I think it would be better to suggest this just once during the package configuration, and then respect the user's decision.
Personally I think adding Kaimon.jl to the global environment is not necessarily a good thing. Kaimon depends on some 120 downstream packages, and having all of them in the global env manifest may easily lead to dependencies conflicts. Just one example: Kaimon requires JSON 1.5, whereas many important packages still depend on JSON v0.21 - e.g. WebIO.jl, and 33 more packages depending on it.
One could add Kaimon through the
workspacefeature, but my preferred way is by using my ShareAdd.jl package. The usage is as following:@Eben60 , that's a fair request. I'll take a look at that, I'll take a look at what can be done. It's also possible that I could take some of the core functionality and create a lighter weight version of it. I really just want to be able to enable a startup script that will connect the sessions automatically.
@Eben60 — good point on both counts. Just pushed a commit that makes the prompt dismissible: it now offers
[Y/n/never]and persists aglobal_install_dismissedflag in~/.config/kaimon/config.json. If you change your mind,kaimon --reset-global-promptre-enables it. Will land in v1.2.1.On the deeper concern about dependency bloat — you're right that ShareAdd.jl helps with
Project.tomlpollution but can't solve runtime version conflicts, since Julia only loads one version of a package per session. Even in a shared env, Kaimon's JSON 1.5 requirement would still clash with anything using JSON 0.21 in the same REPL.Looking at
src/gate.jl, the Gate itself is already lightweight — ZMQ + REPL + Serialization + Dates + TOML — and everything else in Kaimon is server/TUI/indexing code that the user's REPL doesn't need. I'll investigate whether splitting Gate out into a minimal standalone package (say,KaimonGate.jl) makes sense so users can install just the protocol piece in their global env without pulling in the full Kaimon dep graph. That would directly address the conflict issue rather than work around it.Fixed in
65ca824— the prompt is now dismissible. Released as part of the upcoming v1.3. Thanks for the report!Filing a separate enhancement to track the deeper fix (splitting Gate into a minimal standalone package).