🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). Log available at irclogs.raku.org/raku/live.html . If you're a beginner, you can also check out the #raku-beginner channel!
Set by lizmat on 6 September 2022.
justthisguyaz OK. Any pointers for that? 00:02
Voldenet if I grasp it correctly, just implement Zef::PackageRepository, install it and modify zef's config 00:13
justthisguyaz Thanks!
Voldenet it has some docs at least 00:14
it's possible that simply Zef::Repository::LocalCache would be enough for this use case 00:16
00:17 hythm joined
Voldenet though I'm unsure what it does 00:17
justthisguyaz OK, I'll take a look. 00:18
ugexe ::LocalCache can serve as inspiration, but i think for a darkpan type thing people want something to reinstall the .tar.gz distribution whereas ::LocalCache keeps a copy of the extracted and post-build step distribution 00:22
00:31 Manifest0 left
hythm justthisguyaz also If you are open to other package managers, you can do that currently in Pakku (I'm the author of Pakku), assuming "/my-local-repo" directory contains Raku distributions, one can run `pakku config recman MyLocalRepo set location /my-local-repo`, and after that all distributions inside that local directory will be discoverable and 00:34
installable using Pakku.
justthisguyaz Thanks hythm! Good to have options. 00:35
00:39 buildable6__ left 00:42 buildable6 joined 01:41 hythm left 01:42 buildable6 left 01:44 buildable6 joined 02:41 dbonnafo joined 02:44 buildable6 left 02:45 buildable6 joined, dbonnafo left 03:02 dbonnafo joined 03:07 dbonnafo left
tonyo melzhik: danke 03:29
justthisguyaz: there's also a module called `envy` that will let you manage those repos similar to pinto 03:31
03:43 dbonnafo joined 03:45 buildable6 left 03:47 buildable6 joined 03:48 dbonnafo left
Xliff .seen japhb 04:04
tellable6 Xliff, I saw japhb 2023-10-27T02:52:21Z in #raku-dev: <japhb> Awwww
04:25 dbonnafo joined 04:30 dbonnafo left 04:47 buildable6 left 04:48 buildable6 joined 05:48 buildable6 left 05:49 buildable6 joined 06:26 dbonnafo joined 06:31 dbonnafo left 06:47 dbonnafo joined, abraxxa joined 06:49 buildable6 left 06:50 buildable6 joined 06:52 dbonnafo left 07:15 dbonnafo joined 07:22 Manifest0 joined 07:34 Sgeo left 07:37 sena_kun joined 07:46 abraxxa left 07:47 abraxxa joined 07:50 buildable6 left 07:53 buildable6 joined 07:57 dbonnafo_ joined, lichtkind joined 08:00 dbonnafo left 08:05 dbonnafo_ left 08:20 jpn joined 08:43 jpn left 08:52 buildable6 left 08:53 buildable6 left 08:55 buildable6 joined 09:06 guifa left 09:07 guifa joined
nemokosch hythm: I was just thinking about it a couple of days ago - how do i obtain the distributions locally in the first place? 09:26
tellable6 nemokosch, I'll pass your message to hythm
nemokosch I mean, it's not very fun if one has to go through all the dependencies manually 09:28
09:32 jpn joined, TieUpYourCamel joined 09:55 buildable6 left 09:57 buildable6 joined
tbrowder__ hi, is there an IRC for the RSC? 10:23
lizmat #raku-steering-council 10:24
tbrowder__ thnx. ok to blather on it?
serious only 10:25
lizmat yup, that's what it's there for
tbrowder__ what is use case for local repo collections, something like local cpan? classified systems, cutoff from internet, etc.? 10:26
lizmat those are two use cases, yes 10:27
10:33 sena_kun left
nemokosch cutoff from internet in my case 10:39
data export is forbidden but you can import what you need 10:40
so it could work if there was a way to "localize" the repos and copy them to the network
10:42 Manifest0 left 10:57 buildable6 left, buildable6 joined 11:05 peder left 11:10 peder joined 11:57 buildable6 left 11:58 buildable6 joined
lizmat And yet another Rakudo Weekly News hits the Net: rakudoweekly.blog/2023/10/30/2023-...ngly-good/ 11:59
ugexe the zef cache used to keep one from redownloading distributions but it ultimately was more trouble than it was worth due to people not bumping versions and wondering why they would get an old version 12:01
The see ecosystem 12:08
the zef ecosystem plugin allows has an option to load from a loca mirror that emulates the zef ecosystem layout on a local file system 12:09
tony-o would know more about that though 12:10
As far as how to distribute all distributions in all exosystems… that is a bit harder. Cocoa pods or whatever used to use GitHub to do something similar but were eventually stopped from doing it once their repo started using a certain amount of bandwidth / resources 12:13
tbrowder__ i asked about this before deleting modules from Fez/Zef and tonyo said not possible. 12:14
ugexe So it is probably best to not build on a “clone a repo with every distribution artifact” system
tbrowder yeah that’s mostly correct. But people still use p6c and cpan where you can do those things 12:15
tbrowder__ but i would like someway to mark a published article as not recommended so zef, among other searches, can somehow use it to filter author-approved modules. 12:19
12:20 lichtkind left
tbrowder__ i thought the goal is to use fez in lieu of the otthers 12:20
for all of its safety features, etc. 12:21
s/article/module/ 12:22
ugexe That is correct. But if some modules are still on p6c and cpan and they are dependencies of a distribution that is in the zef ecosystem then it still needs to some from somewhere 12:24
12:26 teatime joined, teatime left 12:30 edr joined 12:32 phogg left
ugexe We also shouldn't be doing things like using a mixed ecosystem source to source distributions from secure ecosystems like the zef ecosystem other than as a backup 12:34
For example I can upload a distribution to cpan or p6c that has a zef auth. That means relying on the mixed ecosystem to know which distribution came from where isn't so easy as just filtering on auth 12:36
tbrowder__ if i were emperor i would order cpan and p6c raku modules to be immediately be removed from there and moved to zef. 12:37
nemokosch In any case, for me it would be quintessential to be able to pull distributions in persistent and moveable way 12:38
Better than just "try and clone everything"
ugexe i wasn't referring to try and clone everything, i'm talking about like just cloning the REA
which would be a single clone
I talked with tony-o before also about adding an endpoint to fez to download an index and latest version of every module, but there were still a lot of details to work out (like also including all the versions that other things in that list depend on) 12:39
tbrowder__ but somehow i think the raku community should eventually ban continued use of p6c and cpan. 12:42
for anything raku related
ugexe yeah, github.com/Raku/problem-solving/issues/316 mentioned ending support on Jan 1 2023 but alas 12:46
just ending support would really only mean to stop indexing p6c and cpan though, for now anyway 12:52
until important modules like openssl etc are moved
otherwise zef still needs to source from p6c for things like that
that being said, i suspect most things have been moved over already so there probably isn't too much down river distributions left to go 12:53
12:58 buildable6 left 13:01 buildable6 joined 13:05 buildable6 left, buildable6 joined 13:10 buildable6 left, buildable6 joined 13:23 jgaz joined
ugexe www.codeavail.com/blog/raku-progra...-language/ reads like it was written by an LLM 13:28
it says some form of "Raku, formerly known as Perl 6" at least 4 times 13:29
El_Che there should be a memo to get rid of the Perl 6 part, muddling the PR waters 13:34
ugexe yeah... right now chatgpts favorite thing to say about raku is "Raku, formerly known as Perl 6," 13:36
El_Che indeed 13:37
nemokosch not gonna lie, cloning the whole REA seems... very overboard 13:41
and like absolutely not scalable 13:42
ugexe oh certainly. just there have been other package systems (for other languages etc) that did something similar at one point
and is attractive in its simplicity. but indeed there are many problems with it such that it isn't something i'd recommend either 13:44
14:01 buildable6 left 14:02 buildable6 joined 14:04 kst` left 14:09 raiph joined 14:15 lichtkind joined 14:24 japhb joined
ugexe i should combine CompUnit::Repository::Lib with CompUnit::Repository::Tar one day 14:34
where you point this "CompUnit::Repository::TarLib" at a directory of tar files instead of how you point "CompUnit::Repository::Tar" at a single tar file 14:35
15:02 buildable6 left 15:03 buildable6 joined 15:07 buildable6 left, buildable6 joined 15:37 phogg joined 16:03 buildable6 left 16:04 buildable6 joined 16:21 raiph left 17:02 derpydoo left 17:04 buildable6 left, derpydoo joined 17:05 buildable6 joined
tonyo REA encompasses all of the ecosystems but it removes some of the securities in zef 17:29
18:05 buildable6 left
tonyo tbrowder__: i like the idea of flagging an uploaded module as deprecated in the ecosystem and that skirts the "breaking" aspect of deleting modules 18:07
tbrowder__ 👍🏻 18:08
ugexe i think in most ecosystems deprecation happens on the namespace level
tonyo say more
ugexe i.e. you can deprecate all your previous versions
18:08 buildable6 joined
tonyo oh, yes - possible here too but just syntactic sugar 18:08
oh, yes - possible here too but just syntactic sugar 18:09
eg, you don't want that behavior if you have a libssl binding module and you've built against version X, new major version goes against Y. some point in the future you're building against Z. X is found to have a serious security flaw - you don't want to deprecate Y too
ugexe i mean it is sort of implied by bumping the minor version though 18:10
what is the difference between marking 0.2.0 as deprecated and releasing 0.2.1?
tonyo maybe unmaintained is a better word for the meaning 18:11
ugexe all distribution versions outside the latest are not maintained
thats why i mentioned being able to deprecate previous versions, i.e. deprecate the entire namespace
tonyo i disagree, if you've built 0.2.1 you're still technically maintaining 0.2.0
but you need a way to inform users that you're not recommending that module any more 18:12
ugexe you could only be maintaining 0.2.0 if you release
18:12 buildable6 left 18:13 buildable6 joined
tonyo if 0.2.1 is built on top of 0.2.0 you're still maintaining code that was release in 0.2.0 18:13
ugexe then what reason is there to deprecate 0.2.0 instead of just releasing 0.2.1
which already implies that
tonyo the reason is that you're recommending to users they should _not_ use that module anymore
EG a serious bug was found and they should either upgrade or find an alternative
ugexe that is what the 0.0.1 point release implies 18:14
tonyo yes but it's not explicit
0.2.0 may still work fine and if you're pinning dependencies on version then that one should still be fine until the author recommends you find something else 18:15
ugexe but what use is it then? if someone pins their version on 0.2.0 a package manager shouldnt ignore that because it is marked as deprecated 18:16
tonyo it needn't ignore it but it can alert that some discretion should be used by the installer
ugexe cached versions of that distribution would no longer be accurate either, as the meta data indicating the deprecation would have to be added after it has already been released and considered immutable 18:17
tonyo eg in the SSL module example you _could_ put deprecation notes
it only needs to exist in the index
18:17 buildable6 left
tonyo not in the dist itself 18:17
18:17 buildable6 joined
tonyo and that can be handled by the indexer/ecosystem, the json file ecosystem stuff contains meta data about the dist, not exactly what is in the dist itself 18:18
not exactly what is in the dist/META6 itself*. as an example there's no way to know the download link prior to verifying and indexing 18:19
ugexe i'm also a bit lost no what the module installer is supposed to do with that information 18:20
like that is a module author problem
tonyo it's an end user concern
if they search and find HTTP::Server and read a little they find they can couple that with SSL, so they go to install HTTP::Server that uses a compromised SSL version, they should be alerted when it's installed 18:21
in the search if they see it's not recommended by the author any more it also saves them reading anything of it
18:21 buildable6 left
ugexe i'm not sure i agree with that. the end user should not be troubled by authoring issues 18:21
18:21 buildable6 joined
tonyo it's not an authoring issue 18:22
ugexe some module author is the only one that can change that dependency as it is declared
tonyo you can't go back and update 0.2.0 to rely on a bumped SSL version
ugexe true, which someone pointed out that perhaps we should be pinning on e.g. 0.2.*
tonyo yes, in that way they need to fix it but you still need to be transparent with the user that what they're installing has been put in some state by the module author 18:23
daniel asked and i responded with that, but it's still an end user concern
at some point in the dependency chain they need to know that a module is not recommended by its author anymore 18:24
18:26 buildable6 left, buildable6 joined
ugexe yeah if it isn't in the actual meta6.json data it makes more sense to me 18:41
18:44 sena_kun joined
[Coke] different use case, what if it's already installed and now it's deprecated. 18:51
19:05 justache is now known as justHaunted 19:08 buildable6 left 19:10 buildable6 joined 19:16 dbonnafo joined
ugexe that seems like something that would work in sort of auditing mechanism 19:26
tonyo yea 19:45
agreed, maybe just a command in the great zef, `zef audit`
or whatever
19:47 jpn left 19:50 jpn joined 19:58 jpn left 20:07 derpydoo left 20:10 buildable6 left 20:11 buildable6 joined 20:15 buildable6 left, buildable6 joined 20:26 TieUpYourCamel left 21:11 buildable6 left 21:12 buildable6 joined 21:23 derpydoo joined 22:12 buildable6 left 22:15 buildable6 joined 22:18 hythm joined 22:19 buildable6 left, buildable6 joined
hythm nemokosch: yes you still need to get the distribution locally, but for example if you have a few local distributions in `/local-dists` and they depend on non-local distributions, these deps will be resolved from the online recommendation manager, you don't need to download the deps as well. 22:19
tellable6 2023-10-30T09:26:56Z #raku <nemokosch> hythm: I was just thinking about it a couple of days ago - how do i obtain the distributions locally in the first place?
hythm for the scenario were internet is cutoff, you will need to get these dists locally oneway or another. either by downloading them and storing in local path eg. '/local/dists', or better run a recommendation manager service (github.com/hythm7/recman-simple) on localhost, then configure Pakku to use the local recommendation manager instead of 22:20
the default one that requires internet access
nemokosch well, how do I get them locally? 22:21
this is my problem specifically. I don't want to go around collecting 50 distributions, but I also don't want to outright download the whole ecosystem
hythm why not just 'pakku download dist1 dist2....' , they will be downloaded to temp directory 22:23
dependencies will not be downloaded though, 22:24
Voldenet perhaps `pakku download $(zef depends cro)` 22:28
I didn't test it, perhaps the format of zef deps is not going to be usable here 22:29
22:33 Sgeo joined
hythm That will work actually. (if there is no `===> Updating fez mirror:....` in the output of `zef depends` command) 22:37
22:40 dbonnafo left
Voldenet I think zef outputs the "Updating fez mirror" to stderr 22:43
hythm yes, just tested it and it worked gist.github.com/hythm7/6c89d1b079e...fc18859530 22:47
22:48 bloatable6 left, bloatable6 joined, bisectable6 left, bisectable6 joined
tonyo why not juse use zef at that point? 22:50
23:01 sena_kun left 23:02 sena_kun joined 23:11 rba_ joined 23:12 mark22k9 joined 23:13 Dominika joined 23:14 [Coke]_ joined 23:15 sdomi left, [Coke] left, itaipu left, thowe left, jgaz left, rba left, rba_ is now known as rba, jgaz joined, buildable6 left, mark22k left, mark22k9 is now known as mark22k 23:16 itaipu joined, buildable6 joined
nemokosch frankly, in any case, it feels like "localizing" (caching, whatever) a distribution to the point that it works (ie. obviously with dependencies) shouldn't be this complicated 23:20
23:20 thowe joined
ugexe I mean zef already does that 23:21
It doesn’t save the .tar.gz file, and the directly it uses can’t just be moved
nemokosch it has to anyway
but it's not a proper interface
ugexe how so 23:22
nemokosch as you point out, it's just some sort of "hidden" directory where everything goes and you have to cherry-pick from that and hope for the best 23:23
ugexe you can use that class by itself
and set whatever directory you want
nemokosch I wouldn't say this is user friendly but honestly, I wouldn't even say this is user scope 23:26
Voldenet it's not as easy as `zef download-tree –target=./raku_modules rak`
though honestly various caches in other package systems works the same way 23:27
nemokosch at the end of the day, node dependency management wasn't such a bad thing 23:28
ugexe lol 23:29
Voldenet you mean arbitrary npm-cache folder? 23:30
tonyo the node deps stinks 23:31
nemokosch I mean the default npm use case with node_modules is literally movable
Voldenet heaviest_objects_in_the_universe.jpg
nemokosch well you haven't seen rather complex Raku distributions 23:32
tonyo that wasn't really an intended design feature. the number of times i've had to delete that folder and re-download everything is close to the number of times i've repicked up working on a project
or close to the number of times i've updated main at work after more than 3 days 23:33
nemokosch in any case, it just works
Voldenet I work on a few git branches at the same time a lot, so
ugexe It just works. Sometimes 23:34
Voldenet having N duplicates of binary blobs isn't the best
tonyo in your experience, in mine it's a terrible mess (and i use it almost every day of work)
nemokosch it's not the only time good old node_modules just works for something that has an unconvincing and overcomplicated solution in Raku land
tonyo lol. 23:35
nemokosch but it's definitely the most relevant for my particular situation
ugexe Implement something simpler and make our lives easier
nemokosch for now, I am the user
and as a user, maybe I get to say that my use case for work (which doesn't seem completely unheard of either) is completely unsupported 23:36
the advice is akin to "write it yourself" already
ugexe Sure. And I can say please solve the difficult problem for us if you have the insight to do so
tonyo it's akin to, here's some tools to help you do what you want. not write it yourself. 23:37
ugexe It can be something small and simple to demonstrate how it could work. It doesn’t have to be a full fledged core ready PR 23:39
nemokosch if we consider APIs to program tools
Voldenet ngl it would be nice to have some built-ins for "raku_modules"
23:40 lizmat left, lizmat joined
nemokosch and really, what boggles my mind is that zef, the CLI tool, definitely has to retrieve all the dependencies locally 23:40
in some order, it definitely must make all the necessary steps to establish movable local distributions 23:41
tonyo is your q how to make that possible?
23:41 dbonnafo joined
tonyo just keep a .lib folder and use raku -I.lib ... 23:41
nemokosch well, my question is, what do you do if you want Raku distributions from the ecosystem on a machine that has no access to the internet 23:43
tonyo assuming you had some media to transfer?
Voldenet copy ~/.zef
tonyo i'd probably nab the dists, transfer them via usb key _or whatever_ and then unload them into a local lib..short of that you could use envy and do zef install --deps-only --to=envy#your-cache . and then use envy's tool to tar/gz on that to move it 23:45
(the tar/gz would be manual but envy will tell you where the dir is iirc)
nemokosch what is this envy?
ugexe the Zef::Repository:Ecosystems supports a `uses-path` option too
Voldenet raku.land/zef:tony-o/envy
tonyo it
ugexe but you can't have a directory of extract modules that are movable
extracted^ 23:46
tonyo it's like venv
does the precomp fail?
err what fails in that?
oh, misread - disregard
ugexe i mean you can, and it would work some/most of the time
23:46 dbonnafo left
ugexe but a good amount of the time you have build artifacts 23:47
stuff in C or makefiles
with absolute paths
tonyo is there stuff that installs not to resources?
ugexe technically yeah, but i think we can ignore those 23:48
but yeah now that i think about it maybe it is still movable
since the e.g. Makefiles wouldnt need to be ran again
23:48 sena_kun left
Voldenet I'd create an issue somewhere (in zef repo?) for either documenting that use case which is probably possible already 23:52
or implementing some simplified set up
tonyo envy should let you install to a directory you can inspect and find fairly easily, it works similarly to venv in python nemo (or to a centralized `node_modules` dir that you reference by name rather than `pwd`) 23:53
23:55 lichtkind left