Replies: 4 comments 5 replies
-
I agree on the need. I did some whole-nimbleverse testing when doing I also thought of a perhaps simpler way to describe the poor package construction. Starting point: what does a package manager mostly do? Fetch and install dependencies. What is the primary way for one package to depend upon another in Nim? There are a handful of dependencies with a secondary way "to depend" on an installed package as a program, not as a library. E.g., build tools & code generators { things like Almost all namespace collisions actually come from the stdlib itself not using Anyway, the way |
Beta Was this translation helpful? Give feedback.
-
Well, I don't want to prevent anyone from coming up with a better idea by supplying them with a weaker one. One thought I had was to go ahead and rename Another idea would be to import the distribution into a project via a local I don't love either of these solutions. What I'd really like, honestly, is to just store the distribution submodules as bare repositories and clone them, locally, shallowly, and directly into my project via Nimph. Failing that, maybe just use a symlink to connect These don't feel like solutions that others will want to use, though, and it's unlikely the Windows folks will tolerate a symlink, let alone a bare repository. Plus, it doesn't further the goal of the distribution -- we don't want Nimph rolling your dependencies for you anymore -- we want everyone using the same, tested, stable versions. So, yeah, I'm still trying to figure out how this can work for everyone (and myself) and while it feels like it can work better than |
Beta Was this translation helpful? Give feedback.
-
fision bears mentioning - just in case you/any reader was unaware, as it gets very little discussion/exposure on IRC/Forum/etc. (I guess @juancarlospaco dropped the usual double-s on purpose..something about Spanish spelling.) That's more on the opposite side of the version stability space you seem to be exploring, but otherwise seems a similar "back reaction" to fusion. (All these physics puns are making my head acquire angular momentum, erm I mean spin!) |
Beta Was this translation helpful? Give feedback.
-
@disruptek IMO nim-lang/RFCs#291 fixes all those issues; with this RFC, no need for eg: # dist/config.nims:
const dist = getCurrentSourcePath.parentDir
--path:gram:dist/gram
--path:untar:dist/untar/src
... # add all packages tracked by dist here with the correct path |
Beta Was this translation helpful? Give feedback.
-
Basically, the user cannot simply
--nimblePath=/dist
whatfer Nimble reasons -- it demands directories formed with-x.y.z
(or whatever) in their name. This runs counter to the goal of a single namespace which denies possible collisions.As this later feature is more important than
--nimblePath
, we may need a way to shim the distribution into paths, especially in the case where asrc/
subdirectory exists needlessly. There are several ways to do this; I'm interested to hear your preferences.Another alternative is to fork packages and fix their structures. Any other ideas?
Beta Was this translation helpful? Give feedback.
All reactions