Fire is step THREE! | github.com/perl6/toolchain-bikeshed | Channel logs: irclog.perlgeek.de/perl6-toolchain/today | useful prior art: metacpan.org/pod/CPAN::Meta::Spec
Set by moderator on 6 October 2016.
01:48 ilbot3 joined
moderator Fire is step THREE! | github.com/perl6/toolchain-bikeshed | Channel logs: irclog.perlgeek.de/perl6-toolchain/today | useful prior art: metacpan.org/pod/CPAN::Meta::Spec
05:36 domidumont joined 05:41 domidumont joined 06:13 domidumont joined 06:19 domidumont joined
tbrowder hi, anyone awake 12:06
nine yep 12:07
[Coke] nope 12:08
tbrowder I just put my new module into the modules list and notice all (at least the last on the list) have the url to the master branch. Shouldn't the url be to a specific commit? 12:09
[Coke] modules ecosystem doesn't really deal with that well yet.
IIRC
I think most things are pointing to maste,r aye.
nine That's sooo much in need of attention 12:10
tbrowder can i help?
maybe just experiment with the url? 12:12
bye 12:16
12:16 tbrowder left 12:25 tbrowder joined
ugexe git clone every repo, grep for changes to meta.json "version" field incrementing, create duplicate meta but replacing source-url with whatever points at that commit 14:16
14:22 hoelzro joined, ugexe joined 14:57 FROGGS joined
tbrowder .tell ugexe sounds good, i think that code is in the perl6/ecosystem repo? 15:15
16:36 domidumont joined 16:40 domidumont joined
tbrowder no, modules... 16:44
ugexe you have to clone them yourself 16:59
and determien which commits point to which versions yourself
18:57 Cheery_ joined, tony-o joined, b2gills joined 19:00 ribasushi joined 19:08 Cheery joined, hoelzro joined, llfourn joined 19:19 TimToady joined, ugexe joined, lizmat joined 19:30 tbrowder joined 19:33 stevieb joined 19:34 stmuk_ joined 19:47 nine joined, mst joined, DrForr joined, sivoais joined 19:48 mst joined, pnu_ joined 20:07 sivoais joined 20:08 ranguard_ joined, jdv79_ joined 20:09 camelia joined
tbrowder what about adding an attribute in the META file pointing to the commit for a release? make it a requirement for entries in the ecosystem? 20:10
then the build tools should be able to do the right thing 20:11
moritz or we could, like, make actual releases 20:14
create tarballs and the likes
github isn't a CDN, and we should strive not to abuse it as one
tbrowder roger that! sounds like a good idea. and make some new conventions on providing appropriate references in the META file? 20:17
20:18 sivoais joined
tbrowder then use downloads instead of clones in the build tools? 20:18
moritz aye
I see two possible approaches 20:19
the first is to add each release to the ecosystem
the second is to provide another level of indirection
that is, the ecosystem has an URL to a file that lists all releases, including version name and URL 20:20
not a single META file for the whole distribution
ugexe you can already use downloads instead of clones if your source-url points at one
20:21 JimmyZ_ joined, moritz_ joined
tbrowder that sounds good to me. ecosys would, say, have latest release for everything but could pull a specific version if requested... 20:22
20:22 [Coke] joined, sjn joined
tbrowder but isn't that for travis at the moment? 20:23
if so, that would confuse development versions wouldn't it? 20:24
ugexe `zef --/p6c --/cached --cpan install "CSV::Parser:ver<1.*>"` downloads a .tar.gz from cpan if it exists
moritz_ tbrowder: I don't see the confusion. Care to elaborate? 20:26
tbrowder well, from the user perspective i expect the latest release from zef/panda by default; but from a dev working on a follow-on release i expect travis to use my master branch by default 20:28
moritz_ tbrowder: travis is under your control as a developer, so nothing stops you from using travis on your repo 20:29
tbrowder but that's what my confusion is: without som other conventions or some user-scripting, how do the two systems differentiate between an official release and a development branch? 20:31
don't they both use the meta file? 20:32
moritz_ tbrowder: for an official release, you as the author create a tarball, upload it to a hosting service of your choice, and add the version and URL to the meta file that's know to the ecosystem 20:33
tbrowder: this might be the meta file in your github repo, or a static file you put somewhere on the internet
tbrowder okay, but that doesn't work yet does it? 20:34
moritz_ it doesn't, right
that's what I thought your comment about extending the META file was about 20:35
ugexe how does that not work?
travis doesnt care what url you point your META at 20:36
moritz_ ugexe: how can I tell the ecosystem about multiple released versions right now?
20:38 pnu_ joined, nine joined, ribasushi joined
tbrowder at the moment it seems that the module list just points to the master branch and its existing meta info; unless i use a dev branch, then how are the two commits resolved? 20:39
20:39 DrForr joined, stevieb joined, TimToady joined, llfourn joined, b2gills joined, lizmat joined, tony-o joined, camelia joined, mst joined, stmuk_ joined
tbrowder moritz: that's right. i know we have lots of ways to work development but am currently constrained to stay off the master branch if i don't want to interfere with a release (if i understand all) 20:42
ugexe moritz_: link to specific meta.info file for each version you wish to release, with the source-url pointing at the proper location for that version 20:44
for instance: github.com/sergot/http-useragent/b.../META.info
however the latest version is 1.1.22
github.com/sergot/http-useragent/b.../META.info
moritz_ ugexe: so multile entries in the ecosystem? 20:45
ugexe i just mean its possible now, not that its a good solution
20:47 sivoais joined
moritz ugexe: yes, understood 20:50
IMHO it's a reasonable first step
like, if you have a new version of a p5 module, you also upload it to a central resource
which is analog to adding a new line to the ecosystem file 20:51
tbrowder ugexe: please explain, with the current module list format, how can that be done? 20:53
unless the build tools are modified; in that case, couldn't we just point to a tarball as moritz suggested? 20:57
ugexe above there are 2 links representing different versions of http::useragent. the source-url for each of these can point anywhere, including github .tar.gz releases 20:58
what i think you're asking for is something to just automatically guess the resource uri from a specific commit, and thats going to be different for different git providers as well as some people may want it to automatically link to git releases themselves 21:02
moritz no, I'm not asking for that 21:06
ugexe no you
not you
if you want to do this now you would 1) bump the version in your meta 2) push to github 3) cut a release 4) update the meta with the github release .tar.gz url 5) add your github.com/user/repo/blob/afjalfkj3...META6.json to the ecosystem list 21:08
tbrowder ugex: nor am i. i agreed with moritz, just think that docs and rules will need to specify the desired links and maybe other conventions--not too onerous. 21:09
ugexe: to be clear, if i do just as you say the tools do not need to change, i can do that now? 21:10
ugexe tbrowder: correct. panda wont but zef will, because panda can only clone git repos (not fetch over http or extract archives) 21:11
tbrowder um, sorry i type without reading yr words... 21:12
ugexe: okay, next question: whose zef, the user or the module server? 21:13
ugexe the user 21:14
tbrowder ugexe: that's probably a giant part of my misunderstanding: when i locally do a zef/panda update, what is happening? do both read the module list and update local data? 21:17
ugexe they both just download a single JSON file that contains the META info from all urls in the ecosystem 21:18
tbrowder given the recent survey isn't it time to retire panda? otherwise use of the tar ball references would confuse users during some interim period
or at least modify panda to say it doesn't recognize the format and tell the user to change to zef. 21:20
a
all right, i'm going to try the new method on my module! 21:22
ugexe gist.github.com/ugexe/1b3b83e5759d...b2b22013de This is an example of what the ecosystem would generate if you follow the steps above (it wont generate the _ecosystem-list-entry-url field tho, thats just what you would enter into th eecosystem list)
a CLI tool could be made to do all those steps fairly easily i would imagine 21:25
tbrowder ugexe: that's helpful--thank!
s/thank/thanks/