<< 15-12-2025 >>

01:09:24*Mister_Magister quit (Quit: bye)
01:29:05FromDiscord<treeform> In reply to @enthus1ast. "Or <@107140179025735680> would you": I added nimble file
02:25:49*th3r00t quit (Ping timeout: 264 seconds)
02:31:48*th3r00t joined #nim
02:35:51*rockcavera quit (Remote host closed the connection)
03:05:25*th3r00t quit (Ping timeout: 264 seconds)
03:07:52*th3r00t joined #nim
08:00:18*Mister_Magister joined #nim
08:19:19FromDiscord<kapendev> In reply to @ieltan "We really need a": Why not NPM for Nim?
08:25:43FromDiscord<mjsdev> NPM is also bad
08:32:59Amun-Ra*really* bad
08:49:04FromDiscord<pmunch> In reply to @enthus1ast. "I have the feeling": Just wiping out the pkg1 directory works wonders for the confusion
09:05:38FromDiscord<ieltan> In reply to @kapendev "Why not NPM for": I'm not too familiar with NPM personally so i cannot recommend or discourage following it's design. but I do use cargo and it never really disappointed or got in my way. If NPM is anything similar to pip which i do have the displeasure to deal with then it's a massive upgrade and example to follow in term of tooling...
09:09:11FromDiscord<ieltan> One thing to keep in mind is that package managers on interpreted languages and compiled language dont deal with the same thing, the former have to handle distributing programs to actual users and handling their dependencies, the latter dont have to because everything is statically compiled and shared libraries are typically externally managed
09:09:39FromDiscord<ieltan> this is one of the reasons why many of those packages manager fail badly at this job overall...
09:10:26FromDiscord<ieltan> I would say on this basis alone Nim should follow the cargo model rather than the NPM one since they just dont deal with the same problems
09:11:08FromDiscord<aethrvmn> poetry for nim would be best
09:32:12*beholders_eye joined #nim
10:35:20*beholders_eye quit (Read error: Connection reset by peer)
10:37:43*beholders_eye joined #nim
11:38:32FromDiscord<_nenc> what about uv for nim
11:39:04FromDiscord<_nenc> (if i am right, uv is similar to cargo in some ways)
11:40:31FromDiscord<aethrvmn> uv is faster poetry with less flexibility imo
11:41:07FromDiscord<aethrvmn> But also is does too much that python needs because python is a shit lang (I mostly work with python so I can shittalk it)
11:41:41FromDiscord<aethrvmn> Plus uv having uv run pip and uv run pipx is completely useless
11:41:48FromDiscord<aethrvmn> Etc etc
11:48:02FromDiscord<nnsee> what really grinds my gears is that `uv venv` does not install pip by default
11:48:29FromDiscord<nnsee> so you have to do `python -m ensurepip` every time you create a new venv
12:48:46*tokyovigilante quit (Ping timeout: 265 seconds)
12:54:54FromDiscord<aethrvmn> Idk if they fixed it but another thing was (when I was checking uv out) that you have to pass your pypi key as an env var rather than storing it somewhere
12:54:55*beholders_eye quit (Ping timeout: 240 seconds)
12:55:29FromDiscord<aethrvmn> Poetry stores it (unencrypted) which is not great but better than carrying it in your .bashrc or in your history
12:55:49FromDiscord<nnsee> why would it be in your env var?
12:55:52FromDiscord<nnsee> (edit) "env var?" => "history?"
12:56:20FromDiscord<aethrvmn> You had to PYPI\_API=... uv ...
12:56:21FromDiscord<nnsee> store it somewhere secure and do `. ~/.config/token_or_whatever && uv`
12:56:30FromDiscord<nnsee> In reply to @aethrvmn "You had to PYPI\_API=...": you don't _have_ to do that
12:58:06FromDiscord<aethrvmn> Yes, I know, but if you're new to linux or you dont know how env vars work you do the above
12:58:12FromDiscord<aethrvmn> If you ask an llm etc
13:00:21FromDiscord<aethrvmn> Plus the uv docs say "just do `uv publish --token ...`
13:00:30FromDiscord<aethrvmn> Plus the uv docs say "just do↵uv publish --token ..."
13:00:43FromDiscord<aethrvmn> Plus the uv docs say "just do`uv publish --token ...`"
13:03:15FromDiscord<nnsee> yeah that's not great
13:29:32*beholders_eye joined #nim
14:17:02FromDiscord<nervecenter> Anything that lets me build my project tasks with Makefiles instead of using a highly opinionated tool like cargo is a win in my book.
15:03:34FromDiscord<enthus1ast.> In reply to @pmunch "Just wiping out the": Yeah will try that ↵But afaik there are some other meta files
15:05:11FromDiscord<pmunch> Hmm, it worked fine for me when I last did it
16:46:34FromDiscord<mjsdev> sent a long message, see https://pasty.ee/ZnaIuHBO
16:46:39FromDiscord<mjsdev> (edit) "https://pasty.ee/pczoQoQs" => "https://pasty.ee/xNFbjuAq"
17:08:14FromDiscord<tauruuuuuus> I think i just teied that two days ago and it worked
17:12:57FromDiscord<Robyn [She/Her]> In reply to @ieltan "We really need a": Working on it! :D
17:13:02FromDiscord<Robyn [She/Her]> Well, for Nimskull
17:18:08FromDiscord<xtrayambak> In reply to @ieltan "We really need a": Gonna shamelessly shill my thing here: https://github.com/xTrayambak/neo
17:18:27FromDiscord<xtrayambak> It's not perfect, but I personally love it. It does everything I need, while being faster than Nimble.
17:21:46FromDiscord<aethrvmn> Poetry does the same actually...
17:52:43FromDiscord<mjsdev> @xtrayambak I stole your naive nimble parser code
17:53:01FromDiscord<mjsdev> though probably won't use it long term
18:27:47FromDiscord<litlighilit> npm will be greatly unhappy with these words 🤣As it've just updated its security policies for publishing packages\:↵one has to use grained token or something else https://apostrophecms.com/blog/npm-cheat-sheet-how-to-publish-and-deploy-modules-after-december-9th-2025
18:34:44FromDiscord<litlighilit> npm has just updated its security policies for publishing packages\:↵one has to use grained token or something else https://apostrophecms.com/blog/npm-cheat-sheet-how-to-publish-and-deploy-modules-after-december-9th-2025which makes me pay several hours just for publishing my new release (as I got too confused to find out why `npm publish` refused to finish)
18:35:07FromDiscord<litlighilit> npm has just updated its security policies for publishing packages\:↵one has to use grained token or something else https://apostrophecms.com/blog/npm-cheat-sheet-how-to-publish-and-deploy-modules-after-december-9th-2025↵which makes me pay several hours just for publishing my new release (as I got too confused to find out why npm publish refused to finish like it used to)
18:37:00FromDiscord<litlighilit> I just complaint about one thing today\:npm has just updated its security policies for publishing packages\:one has to use grained token or something else https://apostrophecms.com/blog/npm-cheat-sheet-how-to-publish-and-deploy-modules-after-december-9th-2025↵which makes me pay several hours just for publishing my new release (as I got too confused to find out why npm publish refused to finish like it used to)
18:38:33FromDiscord<litlighilit> nimony (Nim v3) just does so. iirc↵(@nervecenter)
18:41:29*xet7 joined #nim
19:06:32FromDiscord<mjsdev> One of the things I'm trying to do with percy is make it so that doing your own repo is easier -- it's much nicer for developers if people trust repositories, not packages within a massive repository.
19:06:58FromDiscord<mjsdev> I don't know that I'll ever publish my packages in the official Nim repo
19:07:23FromDiscord<mjsdev> It should be easy for you to add my repository (if you trust me) to use them.
20:51:52*beholders_eye quit (Ping timeout: 246 seconds)
20:51:54FromDiscord<aethrvmn> people still havent learned from juggling PPAs I see↵(@mjsdev)
20:52:36FromDiscord<aethrvmn> I would be ok with smth like a Nim AUR, but a Nim apt-style + PPAs would be hellish
20:53:59FromDiscord<aethrvmn> [Edit](https://discord.com/channels/371759389889003530/371759389889003532/1450228900696428694): we need to stop reinventing PPAs
20:54:12FromDiscord<mjsdev> I don't see the equivalency. One is for end user distribution the other is for developer packages.
20:56:02FromDiscord<aethrvmn> But you are just supposed to remember that there are X repos available for your packages, and each developer must keep their own logs of which git servers have which packages↵(@mjsdev)
20:56:27FromDiscord<aethrvmn> And I move from codeberg to forgejo, then everybody needs to update their url
20:56:29FromDiscord<mjsdev> eh?
20:56:49FromDiscord<aethrvmn> If I put your repo to use your package
20:56:53FromDiscord<mjsdev> Why would everyone need to update their URL if they're using your repo?
20:56:54FromDiscord<aethrvmn> And you then move your repo
20:57:23FromDiscord<aethrvmn> How would I update?
20:58:02FromDiscord<mjsdev> If you use my packages in your app you: `percy set source mattsah gh://mattsah/packages` or something like that to the app that uses those packages.
20:58:20FromDiscord<mjsdev> if I move all my packages, I update my URLs in the package repo.
20:58:32FromDiscord<mjsdev> everyone is now using the new package urls
20:58:34FromDiscord<aethrvmn> Yes, and then you move your repo because gh said "Ok, we have yet again updated our ToC, you need to post your nudes"
20:59:05FromDiscord<aethrvmn> > "\>if I move all my packages, I update my URLs in the package repo.↵> ↵↵but this already happens
20:59:07FromDiscord<mjsdev> Sure, and if nim-lang moves its repo....
20:59:24FromDiscord<mjsdev> > but this already happens↵↵Exactly
20:59:28FromDiscord<aethrvmn> in nim-lang/packages there's a list of all packages known to nimble
20:59:49FromDiscord<aethrvmn> So you're saying that you're just going to use the packages.json?
20:59:54FromDiscord<aethrvmn> I got confused because of the phrasing
21:00:04FromDiscord<aethrvmn> I though you wanted to start pointing to bare repos
21:00:06FromDiscord<aethrvmn> sorry
21:00:26FromDiscord<mjsdev> I'm saying it should be possible to have multiple nim-lang package repositories
21:00:54FromDiscord<mjsdev> I mean, just take the case of private packages
21:01:31*cws quit (Ping timeout: 264 seconds)
21:01:35FromDiscord<mjsdev> I have company X, company X has 20 nim packages that are totally private... we just operate our own package repo, and people add the package repo to the project, then those projects use that repo to resolve package names.
21:02:17FromDiscord<mjsdev> If someone on a team moves their project, they update the packages.json in the package repo.
21:02:42FromDiscord<aethrvmn> But isn't that part of `~/.config/nimble/nimble.ini`?
21:02:46FromDiscord<mjsdev> Sure, if the package repo repo (repo inception) moves, they need to update that... but that should be more rare.
21:03:07FromDiscord<mjsdev> I have no idea how nimble does it (or if it does). I'm writing my own package manager.
21:03:27FromDiscord<mjsdev> As far as I'm concerned nimble/atlas are broken beyond repair (conceptually)
21:03:31FromDiscord<aethrvmn> ok ok↵(@mjsdev)
21:22:55*hygo joined #nim
22:19:42*cws joined #nim