Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-toolchain, 2016-06-03

| Channels | #perl6-toolchain index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:49 ilbot3 joined #perl6-toolchain
01:49 Topic for #perl6-toolchain is now Fire is step THREE! | https://github.com/perl6/toolchain-bikeshed | Channel logs: http://irclog.perlgeek.de/perl6-toolchain/today | useful prior art: https://metacpan.org/pod/CPAN::Meta::Spec
02:33 ribasushi joined #perl6-toolchain
03:40 ribasushi joined #perl6-toolchain
04:06 ribasushi joined #perl6-toolchain
04:26 ribasushi joined #perl6-toolchain
06:37 ribasushi joined #perl6-toolchain
06:51 ribasushi joined #perl6-toolchain
07:12 ribasushi joined #perl6-toolchain
08:37 nine_ joined #perl6-toolchain
08:38 ribasushi joined #perl6-toolchain
08:51 b2gills joined #perl6-toolchain
10:03 nine joined #perl6-toolchain
10:04 camelia joined #perl6-toolchain
11:04 nine ugexe: your recent change to Repository::FileSystem means that the META6.json is no longer the authoritative source for which modules are in that repo.
11:05 lizmat nine: should I revert ?
11:05 nine ugexe: I don't have a preference either way, just wanted to mention this clearly, so we're aware of the consequences.
11:06 nine Because I'm not sure this has really been discussed before. Looks like it's always been just a result of some implementation.
11:07 nine lizmat: an authoritative META6.json would give results closer to the installed dist while the current behavior makes extras like Build.pm work more consistently.
11:08 lizmat nine: but the idea of the FS repo would always be that just adding a file to the filesystem was enough to make it "installed" ?
11:09 ribasushi joined #perl6-toolchain
11:16 nine Yes, and it would be confusing if that didn't work. Obviously someone also thought that it would be nice if the META6.json were not only significant for installed dists, leaving us with the question of what exactly its role is in a FileSystem repo.
11:17 sjn is there a MANIFEST?
11:22 * sjn sees Bailador's META.info contains a provides field that looks eerily like a manifest
11:22 lizmat sjn: not that I know of, only a dummy Manifest object afaik
11:23 * sjn likes the fact that it's possible to check if a distribution is complete
11:24 sjn but that kinda assumes someone has to spend a little attention on making either the manifest, or a manifest.skip equivalent (when auto-generating the manifest)
11:24 sjn also,
11:24 sjn (warning: pet peeve coming up)
11:25 sjn I think there should be a smarter way of managing files in a distribution
11:26 lizmat sjn: but this is about the FileSystem repo, which has files managed by the user by adding/removing them from the file system
11:26 lizmat like in Perl 5
11:26 sjn yes
11:26 sjn some hints about file types would be really, really useful
11:27 sjn "this is a perl6 module file": "foo.bar"
11:28 sjn keeping track of which modules in a repo is fine and definitely the most important thing to do in a META6.json file (or eqv. metadata file)
11:29 sjn but it really isn't enough
11:52 sjn "templates": { "index.tpl": "templates/index.tpl" }, "css": { "mobile.css": "static/mobile.css" }
12:06 ribasushi joined #perl6-toolchain
13:09 sufrostico joined #perl6-toolchain
13:15 patrickz joined #perl6-toolchain
13:21 ugexe nine: i'm not sure it was meant to act as an authority though, just to allow one to use non-standard name-path mappings through `provides`
13:32 ugexe the better solution is to make build-time/Build.pm stuff declarative (of course), but thats probably better left for when we know everything that needs to be broken so we can break everything at once
13:33 ugexe sjn: see the last paragraph of https://design.perl6.org/S22.html#%25%3FRESOURCE for an idea on how the manifest could be built
13:36 sjn ugexe: righht
13:37 ugexe there is some support for that in my distribution PR, where given a known meta6 key-path (like %meta<a><b><c> key-path is a, b, c) it can accept a string or a hash (but would use the key of this hash as the original string value). the .value of that hash would then be ignored by anything that isn't concerned with build time stuff
13:37 sjn useful, but how about resources that aren't supposed to be used from the library/application?
13:37 ugexe but build tools would want to check that .value and use it for things
13:38 ugexe they can follow the same thing. the PR i reference does this for `provides` as well
13:38 sjn e.g. crontab entries, application-specific nagios scripts...
13:38 ugexe the files that get build get tacked on the end as a hash of the generated files
13:39 ribasushi joined #perl6-toolchain
13:39 ugexe wouldnt you handle those in your Build script, and let whatever Build module you would likely use handle it?
13:40 ugexe i understand what you're after, im just not sure
13:40 * sjn thinks would be positive if *less* would be done by a custom build script
13:40 ugexe because we do need install/uninstall hooks
13:40 sjn I'm just saying "we should have a place for these things too"
13:40 ugexe i dont think META6 is the place to handle crontab entries
13:41 sjn ugexe: you could refer to them (like a manifest with filetype information)
13:42 sjn then let the builder/installer do the right thing
13:42 sjn e.g. files listed as "crontab" are copied to /etc/cron.d/myapp.cron
13:43 sjn or whatever is correct for that system
13:43 sjn </pet-peeve>
13:44 ugexe "whatever is correct for that system" wouldnt be as simple as you make it out (i dont think anyway)
13:44 sjn sure it would
13:45 ugexe it has to know how your cron is configured to even be. if you're on windows... i don't even know
13:45 sjn you need a matching file for each system (e.g. in Ubuntu, we put httpd configuration in /etc/apache/sites-available or something like that
13:45 sjn )
13:47 sjn and if the file type/service/system feature isn't available, just don't do anything and maybe offer a warning with a pointer to the file and a few words about how to fix the installation?
13:47 sjn such a matching file, I would probably put in /etc/perl6/locations.json or something like taht
13:47 ugexe build a service locator into the core?
13:48 sjn nah, make it configurable, let the packagers make the file
13:48 sjn all with flat files and no smarts needed to figure out where files are supposed to end up
13:49 sjn (fsvo "flat" json :)
13:49 sjn also, with a little thought, this could be made into something user-overridable
13:50 ugexe my first thought is thats turning Build.pm into a type of configuration-file-as-script, but it sounds like you have a much better general idea than i do here
13:50 sjn e.g. "in our shop, we want to install stuff in /opt/ourshop/perl6"
13:51 sjn and just to inflate the wishful thinking even more; there's nothing blocking us from making this into a generic installation protocol. "Install Anywhere Protocol" :)
13:52 sjn perhaps with options to specify dependencies across domains or on system features and resources ("I need an unused port 80 for my app")
13:57 ugexe sure, those are good idea. but i think the scope is too big for CUR::Installation. however the foundation could be laid to allow those things with hooks or whatnot (requiring some sort Module::Build to handle most of those specifics)
13:58 ugexe not that such a module couldn't be included with rakudo (like Test or NativeCall)
14:02 sjn mm
14:03 sjn Hm. Anyone here who would like to take a stab at an "Install Anywhere Protocol"? :)
14:14 ribasushi joined #perl6-toolchain
14:44 ribasushi joined #perl6-toolchain
15:24 ugexe nine: https://gist.github.com/ugexe/017672ef39723ff6e33744d08a854872 something like this may be worthwhile as well (cache `provides` to avoid later meta6 lookups, and single assignment for found)
15:28 sjn joined #perl6-toolchain
16:47 nine ugexe: yes sounds very reasonable
17:14 ribasushi joined #perl6-toolchain
17:47 FROGGS joined #perl6-toolchain
17:50 Kassandry joined #perl6-toolchain
20:34 ribasushi joined #perl6-toolchain
20:45 sufrostico joined #perl6-toolchain
21:36 patrickz joined #perl6-toolchain
22:42 ribasushi joined #perl6-toolchain
23:44 sufrostico joined #perl6-toolchain

| Channels | #perl6-toolchain index | Today | | Search | Google Search | Plain-Text | summary