Repository navigation
"legacy" and "modern" bundles and tools ( jpm / jeep / janet-pm ) #1748
|
I'm relatively new to Janet, so maybe I've missed something. I've read a half-dozen or so papers/blogs/documents on the subject (see title of this discussion), but after becoming minimally fluent in Janet, itself, I'm still at a loss about best practice for packaging / bundles / etc. Is there an existing or developing consensus on choosing modern vs legacy bundles for new development? And what about tools? Are we condemned to understand/use several different tools at various levels of official support? Honestly, the ambiguity surrounding this subject feels (to me) very unlike the clarity associated with the Janet language itself. Do the people most influential in the excellent Janet project have opinions and recommendations for these issues? I'd love to hear. And thanks to the creators and contributors to Janet! |
Replies: 4 comments 8 replies
|
So my advice is basically - if you are not writing C or any other system language, use the old style packages (project.janet) as they should work both with jpm and janet-pm (spork). Spork will automatically create the bundle stuff for you so it just works. If you are extending C but only in a very simple manner, both will work. project.janet is pretty general but can get confusing and difficult once customization is needed. For other languages (rust, zig, etc.) or more complicated flows with custom compilers, flags, etc., I would recommend spork and using bundles. It's more verbose but breaks things out into steps. Either way, try installing spork first and using |
|
Thanks Calvin. The advice is much appreciateed!
…On Tue, May 12, 2026 at 2:39 PM Calvin Rose ***@***.***> wrote:
So my advice is basically - if you are not writing C or any other system
language, use the old style packages (project.janet) as they should work
both with jpm and janet-pm (spork). Spork will automatically create the
bundle stuff for you so it just works.
If you are extending C but only in a very simple manner, both will work.
project.janet is pretty general but can get confusing and difficult once
customization is needed.
For other languages (rust, zig, etc.) or more complicated flows with
custom compilers, flags, etc., I would recommend spork and using bundles.
It's more verbose but breaks things out into steps.
Either way, try installing spork first and using janet-pm instead of jpm.
—
Reply to this email directly, view it on GitHub
<#1748 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAEPMUS66AIOZGHM75G2BGL42N4VFAVCNFSM6AAAAACYZLIVWKVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTMOBZGY2TCOI>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
I'm similarly confused, and in my case I haven't found the half-dozen articles suggesting one package manager or the other. I've been playing with Janet for a week, trying to figure out how jpm works (it's admittedly a bit clunky, defaults to writing to system directories for some reason. Not the best practice on Linux). I've now just found a passing mention of janet-pm and bundles and I have no idea what they are; a project I'm trying out suggests using janet-pm, but I haven't found a way to tell it NOT to write to /usr/lib/janet, even using its venv feature. I tried using sudo, it has overwritten spork I installed with my distro package manager along with janet, my /usr/lib/janet directory got borked and I had to reinstall the whole language from scratch. Ugh. Honestly, it's been an enormous source of friction. The language is great to pick up, but I still have no idea how to best approach packaging choices from third-parties to contribute to their repository. It's been a few times already I try to run some janet code off github, trying to install dependencies fails for one reason or another (it tries to write to system dirs, native compilation fails, has an ad-hoc package system with its own issues) and I have to abandon the endeavour. I wish the official documentation would bless one tool, and make a mention of these alternatives, what's their status, if things are in flux or it's just a case of NIH. Case in point, is jpm deprecated? Is janet-pm the future? I'm fine using languages with no official package manager (such as Odin), but they make it very easy to vendor stuff in and have builtin libraries that ship with the language itself. Given that 99% of janet projects depend on spork, which is distributed as a separate repo, 99% of time you have to deal with dependencies. /rant from a frustrated janet noob |
|
I was trying to port spork for FreeBSD without jpm(1) but ran into issues: I tried the It was at that point I had to go back to jpm(1) to make the port. |
So my advice is basically - if you are not writing C or any other system language, use the old style packages (project.janet) as they should work both with jpm and janet-pm (spork). Spork will automatically create the bundle stuff for you so it just works.
If you are extending C but only in a very simple manner, both will work. project.janet is pretty general but can get confusing and difficult once customization is needed.
For other languages (rust, zig, etc.) or more complicated flows with custom compilers, flags, etc., I would recommend spork and using bundles. It's more verbose but breaks things out into steps.
Either way, try installing spork first and using
janet-pminstead ofjpm.