🦋 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. |
|||
00:04
deoac joined
00:21
buildable6 left
00:24
buildable6 joined
00:28
buildable6 left,
buildable6 joined
01:24
buildable6 left
01:27
buildable6 joined
01:31
jgaz left
02:19
deoac left
02:27
buildable6 left
02:28
buildable6 joined
02:32
buildable6 left,
buildable6 joined
|
|||
Geth | ecosystem/main: 8b6a554696 | hythm++ (committed using GitHub Web editor) | META.list Update META.list * Remove `Pakku` - now lives in zef ecosystem. * Remove `Pakku::Meta`, `Pakku::Spec`, `Pakku::Recman` and `Pakku::Recman::Client` - These modules were developed during initial version of Pakku, now they are incorporated into `Pakku` and not needed anymore. |
02:47 | |
02:54
derpydoo left
03:28
buildable6 left
03:29
buildable6 joined
04:10
gabiruh left
04:11
gabiruh joined
04:29
buildable6 left
04:31
buildable6 joined
04:35
buildable6 left
04:36
buildable6 joined
04:48
CIAvash joined
05:31
buildable6 left
05:34
buildable6 joined
05:37
chmod222 left
05:39
chmod222 joined
05:48
abraxxa joined
06:31
nine left,
nine joined
06:34
buildable6 left
06:38
buildable6 joined
07:22
jpn joined
07:30
hythm joined
07:38
buildable6 left
07:39
buildable6 joined
07:49
jpn left
07:59
dakkar joined
08:08
jpn joined
08:09
hythm left
08:12
sena_kun joined
08:13
jpn left
08:39
buildable6 left
08:40
buildable6 joined
09:01
Sgeo left
09:34
jpn joined
09:40
buildable6 left
09:42
buildable6 joined
|
|||
nemokosch | ez win | 09:59 | |
10:07
CIAvash left,
CIAvash joined
|
|||
ab5tract_ | does anyone know how to get rakubrew to compile arm64 binaries on macos? | 10:10 | |
10:24
CIAvash left
|
|||
lizmat | shouldn't this auto-detect ? | 10:25 | |
10:42
buildable6 left
10:44
buildable6 joined
|
|||
ugexe | Yeah it should just work | 11:23 | |
11:40
tea3po joined
11:43
teatwo left
11:44
buildable6 left
11:47
buildable6 joined
11:51
jpn left
11:55
tea3po left
11:56
tea3po joined
12:07
nine left,
nine joined
12:14
jpn joined
12:18
jpn left
12:31
jgaz joined
|
|||
nemokosch | raku.land/zef:guifa/Intl::Format::List | 12:40 | |
how can a dist specify an open range as its version? | 12:41 | ||
will this not create anomalies? | |||
12:47
buildable6 left
12:49
buildable6 joined
|
|||
ugexe | i think the 'how' is quite obvious | 12:51 | |
you are correct that you shouldn't do that though | 12:52 | ||
nemokosch | yeah well, the 'how' was more like "how did the Mona Lisa get stolen from Louvre" haha | 12:53 | |
"how could it actually manifest" | |||
ugexe | technically it should be treated as a non-range literal string, but no tooling will actually do that since everything does Version.new($the-string). it kind of goes back to comments like leont have made about different version types | ||
like a ConcreteVersion.new($the-string) could make a non-range version "1.2+" | 12:54 | ||
zef ecosystem should probably not allow that though at a minimum | 12:55 | ||
nemokosch | I'm not super fond of the Go's "let's not actually solve any problems and delegate even the URL-ish descriptors based on convention" | 12:56 | |
but perhaps disallowing something that is ambiguous within code as well is justified | |||
12:56
jpn joined
13:16
vrurg_ is now known as vrurg
13:20
jpn left
13:44
derpydoo joined
13:49
buildable6 left
13:51
buildable6 joined
14:05
jpn joined
14:10
melezhik joined
|
|||
melezhik | o/ | 14:10 | |
tellable6 | 2023-10-09T07:37:49Z #raku <ab5tract_> melezhik: it's just normal colon pair logic. | ||
melezhik | if there is a documentation for module versioning ? | ||
I mean the official doc site | 14:11 | ||
14:11
jpn left
|
|||
nemokosch | hi melezhik | 14:16 | |
does Sparky provide some nohup/pm2 kind of functionality (if it's running as a daemon anyway), or should it be combined with tools like that, if I want the built typescript to be kept running on my host? | 14:17 | ||
leont | ugexe: Yeah this whole situation is super frustrating | 14:28 | |
El_Che | nemokosch: go works with git tags and semver. The upgrade path of what is update is clear and documented. Do you something else? | 14:32 | |
nemokosch | in other words, they do nothing and just delegate the problem to git and the maintainers | 14:35 | |
if anything breaks, it's always your fault because only those make mistakes who do work | 14:36 | ||
antononcube | @leont Heads up -- you might be cherry-picked by someone bicolored. | 14:44 | |
leont | ? | 14:45 | |
antononcube | @leont conf.raku.org/talk/202 | 14:46 | |
14:51
buildable6 left
14:52
jpn joined
14:53
buildable6 joined,
merp left
14:56
jpn left
|
|||
leont | Ah I see :-) | 14:57 | |
14:59
merp joined
15:05
jpn joined
15:14
clarkema1 left
|
|||
El_Che | nemokosch: it is always the resposability of the release to release the correct version. What should they (or us) do? | 15:32 | |
nemokosch | ensure integrity, availability, some basic soundness for versions? | 15:38 | |
even a repository migration, that should have nothing to do with the released software, is basically a breaking change | 15:39 | ||
15:53
buildable6 left
|
|||
melezhik | Hi nemokosch ! You can run Sparky as systemd service , if I follow your question | 15:55 | |
15:55
buildable6 joined
|
|||
melezhik | these are two sparrowdo scenarios - github.com/melezhik/sparky/tree/master/systemd | 15:56 | |
github.com/melezhik/sparky/tree/ma...ing-daemon | |||
15:58
melezhik left
16:02
buildable6 left,
buildable6 joined
16:06
abraxxa left
|
|||
nemokosch | my question is rather if it can manage the running of the "built" system | 16:10 | |
16:30
jpn left
16:31
dakkar left
16:39
jpn joined
16:55
buildable6 left
16:58
buildable6 joined
17:35
jpn left
17:58
buildable6 left
18:01
buildable6 joined
18:03
jpn joined
18:21
melezhik joined
|
|||
melezhik | nemokosch: not sure if I understand your question | 18:22 | |
nemokosch | this is how I feel about these tools 😅 | 18:25 | |
18:27
jpn left
18:29
melezhik left
18:30
melezhik joined
|
|||
melezhik | What tools? | 18:30 | |
nemokosch | Sparrow6, Sparrowdo, Tomtit, Sparky, you name it | 18:32 | |
I checked the examples but what if I don't want to do the exact same thing? How do I extrapolate from the examples? | 18:33 | ||
these workflows usually include a directory magic word - what kind of directory is it about? is that a full path? an identifier of a config? an identifier to a target? | 18:34 | ||
18:35
melezhik left
18:37
melezhik joined
|
|||
melezhik | What exactly you want to know ? What exactly you are trying to do? Sparky is CI /CD server , please outline what do you want to automate and I will help you | 18:39 | |
And ... as far as I remember from our last task you decided to go ahead with Sparky, so let's use it, not other tools | 18:41 | ||
18:42
melezhik left
18:43
melezhik joined
18:48
melezhik left
|
|||
nemokosch | well, the impression is actual regardless, and it's not like they exist in vacuum | 18:52 | |
Sparky cross-references with Sparrowdo | |||
which in turn will reference Sparrow6 | 18:53 | ||
for the time being, the whole "build process" is to just automatically pull sources from github and have the latest main executable run | 18:54 | ||
18:54
melezhik joined
|
|||
run as a service | 18:55 | ||
the latest workflow is quite literally just git pull in a folder, followed by pm2 restart appropriate-task | |||
melezhik | Nemokosch: yes, you are right and what ? ) | 18:56 | |
nemokosch | what do you mean by that? | 18:57 | |
melezhik | I mean you are right about sparky uses sparrowdo uses sparrow6 dependency , and so far I wasn't clear what you are after | 18:59 | |
Now you are giving a bit more details and this is a bit better and I can try to help you | 19:00 | ||
19:01
buildable6 left,
melezhik left
|
|||
nemokosch | to the smallest meaningful detail, what I want to do is, on each push a certain branch receives, pull that branch, yarn install it, terminate the executable (which runs as a service), and start the new version of the executable (as a service) | 19:02 | |
of course it would be nice to plan for some feedback, should anything go wrong | 19:03 | ||
but that's about it | |||
19:04
buildable6 joined
19:07
jpn joined
19:08
melezhik joined
|
|||
melezhik | Ok 👌 seems like Sparky could do a job for you . Let me explain ... | 19:09 | |
1. You need to create a project ( well directory inside sparky root ) with a sparky.yaml with a scm repo and branch info  | 19:10 | ||
19:11
jpn left
|
|||
melezhik | github.com/melezhik/sparky#trigger...cm-changes | 19:11 | |
That's an easy step | |||
gist.github.com/melezhik/388a7d2c8...27b0800611 | 19:15 | ||
You don't need bootstrap as sparrow is already installed on your local host as a part of sparky , also you don't need a sudo as you are going to run sparky jobs on localhost as a user , not root | 19:17 | ||
Does it make a sense so far ? | |||
19:18
melezhik left
19:31
melezhik joined
|
|||
melezhik | 2. Then inside the same directory where sparky.yaml file is located your place (a Raku scenario) file named sparrowfile - gist.github.com/melezhik/02b8fe1c0...bbf94b2349 | 19:32 | |
this is an example code mimicking your requirements | |||
that is it | 19:33 | ||
nemokosch | thank you, I'm in a call but I'll check asap | 19:34 | |
melezhik | sure )) | 19:35 | |
I updated sparrowfile a bit so please check the latest gist version | 19:41 | ||
19:43
jpn joined
19:48
jpn left
19:52
jpn joined
|
|||
melezhik | now when you have a firm grasp of this simple scenario you can write something more interesting - run a parent job that triggers a child build job and when this job finishes reports it's status (via email or irc ) - gist.github.com/melezhik/b53991e91...a8e0955296 | 19:54 | |
as you can see Sparky allows a lot of flexibility if required ))) | |||
one can even run parent / child job on two separate Sparky instances (thus distributing load and run in cluster mode) | 19:55 | ||
19:57
jpn left
20:00
melezhik left
20:01
jpn joined
20:02
jgaz left
20:04
buildable6 left
20:05
buildable6 joined
20:07
jpn left
20:08
jpn joined
20:09
buildable6 left,
buildable6 joined
20:12
jpn left
|
|||
nemokosch | melezhik: what is tags in the sparky.yaml file? | 20:24 | |
tellable6 | nemokosch, I'll pass your message to melezhik | ||
librasteve | this is how I feel about these tools 😅 ... me too | ||
tonyo | lizmat: i indicated i'd be doing my talk live for 2023 but some family stuff has come up and i'll need to prerecord it | 20:28 | |
jdv | no q&a? | ||
tonyo | i may be able to do the q&a bit but i'm unsure, i may be driving at that time | 20:29 | |
or i can do the q&a textually and post it as a follow up | |||
thebb | when would I get an error like "Variable $!a used where no 'self' is available" ? | 20:30 | |
librasteve | thebb: calling a method from a class sub | 20:32 | |
eg | 20:33 | ||
tonyo | m: class AA { has $!data = 1; method b { say $!data; }; }; "OK:"; AA.new.b; "NOT OK:"; AA.b; | ||
camelia | WARNINGS for <tmp>: 1 Useless use of constant string "OK:" in sink context (line 1) Useless use of constant string "NOT OK:" in sink context (line 1) Cannot look up attributes in a AA type object. Did you forget a '.new'? in method b at <t… |
||
thebb | hmmm ok | 20:35 | |
tonyo | using methods on the class where an instance is needed is the most likely case | ||
to put it in plain language | |||
20:36
jpn joined
|
|||
thebb | so I had to change sub to submethod and it doesn't seem to complain | 20:38 | |
librasteve | errr - I think you need to have method (submethod does something else) | 20:40 | |
does that work? | 20:41 | ||
nemokosch | isn't submethod like a "statically resolved" method? | ||
it somehow counters inheritance, that's all I can recall | |||
librasteve | ^^ yep - that's the somethong else | ||
thebb | ok so method it is :D | 20:42 | |
librasteve | if it works ;-) | ||
++ | |||
20:51
melezhik joined
|
|||
melezhik | Nemokosch: did you get those examples ? Do they solve your scenario? | 20:54 | |
tellable6 | 2023-10-18T20:24:55Z #raku <nemokosch> melezhik: what is tags in the sparky.yaml file? | ||
nemokosch | work in progress 🙂 | 20:56 | |
where does the SCM_SHA variable come from? | 20:58 | ||
tonyo | thebb: what is the name of your submethod? | ||
melezhik | Because you keep asking me new questions without confirming you have understood things I told you before I start feeling maybe 🤔 our conversation is not very productive ... | ||
nemokosch | not gonna lie, I don't feel responsible for that at all | 21:00 | |
it would just help if you answered the questions, that's all | 21:01 | ||
I'm not sure what sort of big revelation you expect from me, apparently | 21:02 | ||
melezhik | I don't expect any revelation from you. All I expect if you answer my questions too - like you just said "it would just help if you answers mt | 21:04 | |
my question" - so please do the sane favor me | 21:05 | ||
21:05
buildable6 left
|
|||
melezhik | If you don't bother answer my questions why then should bother I ? | 21:06 | |
21:06
buildable6 joined
|
|||
nemokosch | what questions do you have, then? | 21:07 | |
melezhik | Ok. It's easy just scroll up in a history "[23:54:00] melezhik: Nemokosch: did you get those examples ? Do they solve your scenario? " | 21:08 | |
nemokosch | and I said "work in progress" | ||
melezhik | Or this one - "[22:17:37] melezhik: Does it make a sense so far ? " | 21:09 | |
21:10
buildable6 left
21:11
buildable6 joined
|
|||
nemokosch | I said I was in a call | 21:11 | |
is it such a crime that I talked with my grandparents for an hour after literal months | 21:12 | ||
librasteve | @whistlingzephyr .... are you there? | ||
whistlingzephyr | yup, what's up? | ||
librasteve | ^^ | 21:13 | |
whistlingzephyr | lemme read, apologies | ||
librasteve | np | ||
nemokosch | by the way, I created the files, under .sparky/projects/rad.io(name of the bot), set the url's and branch, ran nohup sparkyd, commited to the branch | 21:14 | |
nothing happened | |||
and I can perfectly imagine that I did something wrong - this is part of the reason I'm asking questions | |||
because I anticipated it wouldn't work at first, and the chances just get worse if I don't even have a clue about the details | 21:15 | ||
melezhik | Not at at all, it's just a style of communication when you don't answer questions I asked you and continue with a new question from your side this makes the whole process of communication quite irritating, if you try ti change this this will help ) | ||
nemokosch | good sir, you didn't receive an answer to a real-time question because I was away, you went on, I don't think it's fair to go back there | 21:16 | |
whistlingzephyr | hmm, @nemokosch could you try to be a little more validating when asking for help? I understand that you have questions and also that you were busy but it's the best to not leave the other person in the dark and avoid taking responsibility for the lack of feedback to the answers and requests for clarifications you recieved | 21:17 | |
nemokosch | the current situation doesn't look like that, though, does it? | ||
melezhik | You probably don't get my point , it's not about timing , you could have answered my question in a day or two )) , it's about you don't answer my questions first and keep asking questions from your side | ||
whistlingzephyr | well, from my quick reading of the chatlog it seems like your tone has been pretty questionable where you could've been more considerate in terms of prioritizing what information you give/ask first | 21:18 | |
nemokosch | And I think you don't get that certain questions simply expire | ||
whistlingzephyr | I'm sorry, as a moderator I kinda have to be responsible for avoiding conflicts here | ||
and I think it's the best if we try taking the benefit of the doubt and avoid making things more uncomfortable | 21:19 | ||
nemokosch | I frankly didn't anticipate this would be such a big deal and I don't find the whole framing fair at all | ||
librasteve | hmm | ||
whistlingzephyr | I wasn't given a framing, I came to the chat and read the chatlog, then created my own conclusions | 21:20 | |
I guess I'm more used to caring both about what's said and how it's said than only the former | |||
nemokosch | sorry, I don't find your own conclusions valid | ||
21:20
jpn left
|
|||
in any case, there is no point in continuing, it would be hard to stay interested after this procedure | 21:21 | ||
whistlingzephyr | that's fair. well, I'm not exactly sure how to help this case further right now given it doesn't seem to be worth the trouble, so yeah as long as the conversation is called off that's fine with me too | ||
melezhik: I apologize for the mess btw, I'll see what I can do to help reducing further occurrences (mostly by discussing it) | 21:23 | ||
librasteve | hmm - The only requirement is that you know how to be nice to all kinds of people (and butterflies) | ||
whistlingzephyr | also, @librasteve thanks for the ping | ||
nemokosch | in any case, it's deeply saddening when you get this nervy attitude from somebody who you wanted to highlight as somebody whose work is underappreciated | ||
librasteve | ^^ this is the ethos of raku raku.org | ||
whistlingzephyr | I think there's no point in dragging this on any further | 21:24 | |
tenor.com/view/cat-butterfly-aesth...f-20085983 | |||
here's a cat and a butterfly | |||
librasteve | sadly Discord(tm) does not seem to honor the ethos of this group (see history) | 21:25 | |
nemokosch | this discussion was salvageable, and now everyone is left with a disappointment and time wasted | 21:29 | |
melezhik | whistlingzephyr - thanks for your help | 21:33 | |
El_Che | nemokosh: go uses a proxy by default. Every retrieved version is cached so you can't remove it or overwrite it. | 21:37 | |
nemokosh: besides perl, go is the ecosystem with the less breakage I have encountered (zero so far). I can't say the same about JS or Ruby | 21:38 | ||
*least | 21:39 | ||
21:39
melezhik left
|
|||
roguerakudev | @nemokosch / melezhik - Admin of the Discord here - let's try to assume good intentions and take feedback on board instead of getting snippy. I think this was ultimately just a miscommunication, and that's okay. | 21:49 | |
tonyo | go's resolution left a lot to be desired last i used it (1.20) | ||
i'm sure it's better now (that lang moves slowly but stays pretty stable) | 21:50 | ||
El_Che | tonyo: it's certainly up for discussion, but it's clear and documented | ||
tonyo: it wasn't in the past | |||
tonyo | my last job was writing in go, it left me with a lot of head scratchers for sure | 21:51 | |
haskell might be the most rock solid and annoying to use, that i've used | |||
El_Che | it catches up very slowly on things we take from granten on dynamic languages | 21:52 | |
tonyo | go or haskell? | ||
El_Che | go | ||
added modules (fixed the versioning very valid critique), generics, and now generic slice functions | |||
until a few months ago you had to write your own loops for everything | 21:53 | ||
ugexe | someone should implement raku.work file support | ||
El_Che | like for slice contains element and simple stuff like that | ||
stuff where raku shines | |||
tonyo | i haven't seen the generic slice functions. generics were new when i was getting out of go, they're an eyesore the way i saw it. | 21:54 | |
ugexe | co-pilot writes all my go loops | ||
El_Che | ugexe: :) | ||
tonyo: they are not pretty and are limited, but they are better than nothing and they do the job | |||
tonyo | heh, the c preprocessor wrote all of mine | ||
are they available on struct funcs now? | 21:55 | ||
El_Che | my last point of annoyance is enums | ||
tonyo: no, only functions not on "methods" | |||
tonyo | bummer | ||
El_Che | funct(aStruct, someParams) does its ugly job | ||
-t | |||
tonyo | yea, i had mine set up like (A) func Abc (T, ...) { abc[T](a, ... // or whatever the syntax is, kind of burnt from work | 21:56 | |
El_Che | the most limiting for me when using generics with structs is that you can't itenarate the keys | ||
so you end with ugly switches | 21:57 | ||
tonyo | 30 parameter func | ||
nemokosch | it seems that Go's ecosystem "doesn't break" simply because it doesn't really exist. It's all just repository owners "doing things right". I've read a horror story on Reddit about repositories that got migrated, or had a version-looking piece that got mistaken for an actual version, and there is no "ecosystem answer" to that, it's apparently all just DIHWIDT | ||
I think somebody could do the same thing with rather little effort for basically any language | 21:58 | ||
El_Che | that's not correct | ||
tonyo | it is (or was) a bit ephemeral | ||
i think mostly was | |||
El_Che | like a saidm there is a proxy | ||
that was the case for modules on go 1.11/1.13 | |||
(preview/stable) | |||
ugexe | Go's ecosystem certainly breaks | 21:59 | |
El_Che | not since then | ||
yes, but not by the module system itself | |||
just by publishing buggy modules | |||
nemokosch | yeah well... | ||
ugexe | yeah... for me its usually breaking changes without a major version bump | 22:00 | |
El_Che | that a bug | ||
and a ugly one at that | |||
tonyo | as that ecosystem grows there's definitely more and more bad practices in play | ||
nemokosch | anyway, it seems like the praisal should go to "the proxy" in any case, I wonder what it does that prevents the usual problems from using a git provider as ecosystem | ||
ugexe | you can rewrite history on git repos, and i presume this cannot be done through the go proxy | 22:01 | |
nemokosch | tonyo: have you used Ada? | 22:02 | |
El_Che | yeah, the proxy handles that case | ||
for a time at least | |||
but you can't stop bad actors if they really want to break stuff | 22:03 | ||
nemokosch | I haven't used Haskell but it seems like a solid candidate for "solid and annoying" | ||
tonyo | i haven't, is that the symbol based one? | ||
ugexe | the zef cache did sort of the same thing at a local machine level, but that mostly just confused people | ||
nemokosch | Perhaps not | ||
Ada is the lawyer's Pascal | |||
tonyo | ope, not the one i was thinking of | 22:04 | |
nemokosch | the US defense yadda yadda language | ||
El_Che | the dependency chain in go is less small than you would think | ||
and a small module can break a lot of shit | |||
I have a very small lib, nothing big (279 stars, a fork from a abandoned module). No pressure you would think | 22:05 | ||
nemokosch | isn't the complete dependency chain listed on the user's side in Go? | ||
El_Che | there are 67 376 repositories depending on it adnd 9399 packages according to github | ||
that's freaky | 22:06 | ||
nemokosh: there are direct and indirect dependencies | |||
22:06
buildable6 left
|
|||
El_Che | they are part of the build and you can vendor them in your repo | 22:06 | |
tonyo | sounds like a node module | ||
El_Che | still, you need to check what you pull in | 22:07 | |
tonyo | this is one of mine, didn't think much of it when published: www.npmjs.com/package/optional | ||
El_Che | lots of weekly download | 22:08 | |
s | |||
nice | |||
22:08
buildable6 joined
|
|||
nemokosch | Npm downloads are something else | 22:08 | |
22:13
Sgeo joined
|
|||
El_Che | github shows clone info. The lib with low activity had 45K clones this week | 22:14 | |
it sounds like CI | |||
the internet is so fragile | 22:15 | ||
nemokosch | we need a proxy to the internet | 22:17 | |
El_Che | :) | 22:19 | |
nemokosch | Does this bridge get the strikethrough across in any way, by the way? | 22:20 | |
Iirc it does tranlate italic and bold | 22:21 | ||
italic bold | |||
22:22
sena_kun left
|
|||
tonyo | i don't see any strikethroughts, if you've put any | 22:28 | |
nemokosch | Then probably it doesn't work with that | 22:34 | |
But given Poe's law, the second best representation of strikethrough text is plain text 😄 | 22:35 | ||
23:08
buildable6 left
23:09
buildable6 joined
23:13
buildable6 left,
buildable6 joined
23:40
tea3po left,
tea3po joined
23:57
derpydoo left
|