Subject: KampalaMeetingLog2015x04x02.txt Date: April 2, 2015 5:00:21 PM PDT [2:59pm]  HaraldJoerg joined the chat room. [2:59pm] HaraldJoerg: Good ...erm... evening? [2:59pm]  HideyoImazu joined the chat room. [3:00pm] PeterThoeny: hi HaraldJoerg & HideyoImazu-san! [3:01pm] HaraldJoerg: Hello Peter [3:01pm] PeterThoeny: good morning and good late evening [3:01pm] HaraldJoerg: Hello Hideyo-san [3:01pm] HideyoImazu: Hi Peter and Harald [3:01pm] PeterThoeny: it's midnight again for you harald, right? [3:01pm] HaraldJoerg: Yeop [3:01pm] HaraldJoerg: Friday started a minute ago [3:02pm] PeterThoeny: no-a-mass! to stay awake [3:02pm] PeterThoeny: and the usa is behind again, like in internet connectivity speed [3:02pm] PeterThoeny: the only thing we are ahead of the rest of the world is in prison population [3:03pm] HaraldJoerg: And in the equipment provided to national security services by the government [3:04pm] PeterThoeny: haha [3:04pm] PeterThoeny: this weekend we will be busy [3:04pm] PeterThoeny: rocket launches on sat [3:04pm] PeterThoeny: big swiss party on sun [3:05pm] HaraldJoerg: I don't hope so, as far as I am concerned. I need a couple of lazy days [3:05pm] PeterThoeny: what's new on your side? [3:05pm] HaraldJoerg: Regarding TWiki hacking, I've done a couple of experiments (resulting in Codev topics) [3:06pm] PeterThoeny: HideyoImazu-san, how was your trip to usa and canada [3:06pm] PeterThoeny: ok, let's start with formal meeting [3:06pm] HideyoImazu: both Montreal and New York were cold [3:06pm] PeterThoeny: as part of that we cover HaraldJoerg's work [3:07pm] PeterThoeny: agenda at http://twiki.org/cgi-bin/view/Codev/KampalaReleaseMeeting2015x04x02 [3:07pm] PeterThoeny: 1. Feature Requests for Kampala Release [3:07pm] PeterThoeny: 2. Extensions [3:07pm] PeterThoeny: 3. Review Urgent and Not So Urgent Bugs [3:07pm] PeterThoeny: 4. Miscellaneous [3:07pm] PeterThoeny: ---++ 1. Feature Requests for Kampala Release [3:07pm] PeterThoeny: maybe easiest to look at changes: [3:07pm] PeterThoeny: http://twiki.org/cgi-bin/view/Codev/WebChanges [3:08pm] HaraldJoerg: I just went there [3:08pm] HaraldJoerg: Maybe PSGI can be added to a patch release, as long as it is just one line in TWiki.pm that needs to be changed [3:08pm] PeterThoeny: harald reported http://twiki.org/cgi-bin/view/Codev/TWikiasPSGIapplication [3:08pm] PeterThoeny: and proposed http://twiki.org/cgi-bin/view/Codev/AdaptTWikiToPSGIEngineContrib [3:09pm] PeterThoeny: i think this is a great proposal [3:09pm] HaraldJoerg: I'm about to commit the first shot, though I'd call it still experimental [3:09pm] HaraldJoerg: configure isn't covered yet [3:09pm] PeterThoeny: and since it looks like a safe change to the twiki core we can take it into the next patch relase [3:09pm] PeterThoeny: "release" [3:10pm] HideyoImazu: great [3:10pm] HaraldJoerg: -    $engine = eval qq(use $TWiki::cfg{Engine}; $TWiki::cfg{Engine}->new); [3:10pm] HaraldJoerg: +    $engine //= eval qq(use $TWiki::cfg{Engine}; $TWiki::cfg{Engine}->new); [3:10pm] HaraldJoerg: The only difference is that I need to create the engine in advance, before entering TWiki.pm [3:11pm] PeterThoeny: what is //= ? [3:11pm] PeterThoeny: meant ||= ? [3:11pm] HideyoImazu: it's a construct introduced by Perl 5.10 [3:11pm] PeterThoeny: oh, not familiar [3:11pm] HaraldJoerg: In Damian Conway's words: ör. [3:11pm] PeterThoeny: haha [3:12pm] HaraldJoerg: I can write ||= safely though. A logically false engine is as useless as an undefined one [3:13pm] PeterThoeny: currently we require 5.8.0, recommend 5.8.4 or newer: http://twiki.org/cgi-bin/view/TWiki/TWikiSystemRequirements [3:13pm] HideyoImazu: then, //= should not be there [3:13pm] HaraldJoerg: Yeah, Perl 5.10 is only eight years old [3:14pm] PeterThoeny: btw, is there a way to test the syntax of perl code against an older perl when you run a newer perl? [3:15pm] HaraldJoerg: Many features will warn or not even compile if you don't explicitily say use 5.010 [3:15pm] PeterThoeny: red hat, centos, amazon etc are still stuck at v5.8.8 [3:15pm] HaraldJoerg: Ouch [3:15pm] HaraldJoerg: My oldest Debian has 5.10 [3:15pm] PeterThoeny: and those are the most pupular linux servers in a corporate env [3:15pm] HaraldJoerg: On Windows, we're running 5.20 [3:16pm] HideyoImazu: builtin functions such as "say" works only under "use 5.010" but //= doesn't get warning without it, I suppose [3:16pm] HaraldJoerg: But ok, as far as I know, Plack should work with 5.8 [3:16pm] PeterThoeny: anyway, this is something to watch out for when enhancing twiki and core plugins [3:17pm] PeterThoeny: once red hat finally upgrades we can assume higher perl version too [3:17pm] HaraldJoerg: Confirmed: Plack requires 5.8.1 [3:18pm] PeterThoeny: HaraldJoerg, anything specific you;d like to discuss on the psgi feature enhancement? [3:19pm] HaraldJoerg: Well, configure is still an issue [3:19pm] HaraldJoerg: and where to put the application file twiki.psgi [3:20pm] HaraldJoerg: In /bin, it collides with regular CGI stuff, so I'd prefer to put it elsewhere [3:20pm] PeterThoeny: why does it collide? [3:20pm] PeterThoeny: possible to put in tools? [3:20pm] HaraldJoerg: Collide only in the sense of HTTPD configuration [3:21pm] HaraldJoerg: You could use /bin/twiki.psgi in CGI environment, which wouldn't work [3:21pm] HaraldJoerg: It doesn't really fit in tools if you want to run it from FastCGI or mod_perl [3:22pm] PeterThoeny: what of you use a for twiki.psgi in the twiki.conf? [3:22pm] PeterThoeny: that way you can define special rules for psgi [3:22pm] HaraldJoerg: Sure, but that would require everyone investigating their twiki.conf [3:23pm] PeterThoeny: this feature is primarily for developers [3:23pm] HaraldJoerg: I don't think so [3:23pm] PeterThoeny: for new admins we can enhance the apache config generator [3:23pm] PeterThoeny: http://twiki.org/cgi-bin/view/TWiki/ApacheConfigGenerator [3:24pm] PeterThoeny: whixh is the documented preferred way to create twiki.conf [3:24pm] PeterThoeny: "which" [3:24pm] HaraldJoerg: Yes, Apache config is quite different [3:24pm] HaraldJoerg: For a starter, you'd need to change FilesMatch to LocationMatch [3:24pm] HaraldJoerg: There is but one file twiki.psgi, the action is part of the path [3:25pm] PeterThoeny: i am a bit reluctant to add a new directory and separate apache config because it raises the complexity for admins [3:25pm] HaraldJoerg: Similar to Martin Cleavers good ol' twiki.cgu [3:25pm] HaraldJoerg: s/cgu/cgi/ [3:25pm] HaraldJoerg: It isn't a separate apache config, it's an alternative config [3:25pm] HaraldJoerg: running both CGI and PSGI in the same installation doesn't make sense [3:26pm] HaraldJoerg: (provided that I solve the configure problem [3:27pm] PeterThoeny: do you envision shipping the psgi contrib with core twiki? or keep as separate download? [3:27pm] HaraldJoerg: Before Kampala, I'd definitely prefer a separate download [3:27pm] HaraldJoerg: I consider it still very experimental [3:28pm] HaraldJoerg: TWiki has a lot of hidden places where it does things not yet covered PSGI-like [3:28pm] PeterThoeny: yes for now, but once functional, ship with twiki or separate install? [3:29pm] HaraldJoerg: No idea... if it is stable, it could actually replace the CGI engine in the long run [3:29pm] PeterThoeny: i'd say ok to create new base dir if separate install, not so good if pre-installed in core twiki [3:29pm] HaraldJoerg: I'm absolutely fine with this [3:30pm] HideyoImazu: even Fast CGI support is not bundled with a release yet [3:30pm] PeterThoeny: since we have some time to decide, how about for now a new base directory? [3:30pm] HaraldJoerg: A separate dir gives a fallback to CGI without changing too much in HTTPD config [3:30pm] HideyoImazu: so for the time being PSGI support can be separated from a release [3:30pm] PeterThoeny: yes [3:31pm] HaraldJoerg: For a "personal TWiki", I'd bundle PSGI [3:32pm] PeterThoeny: yes, that is very promising [3:32pm] PeterThoeny: shall we vote on AdaptTWikiToPSGIEngineContrib feature request? [3:32pm] HaraldJoerg: And maybe add some preinstalled LocalSite.cfg, with no login manager and no registration, predefined directory structure and URLs [3:33pm] HaraldJoerg: For personal TWiki, any security considerations regarding installing extensions through a web interface are void [3:34pm] HaraldJoerg: However, I haven't tested tools and the like right now [3:34pm] PeterThoeny: do you want to wait for the 7 day feedback period, or vote now on feature? [3:35pm] HaraldJoerg: I can wait as well, if you'd like to have a look at the code.  I can commit tonight and update the docs so that you can give it a shot [3:36pm] PeterThoeny: no, i am fine [3:36pm] PeterThoeny: shall we vote? [3:36pm] HideyoImazu: sure [3:36pm] HaraldJoerg: I'm fine with that, too [3:36pm] PeterThoeny: +1 [3:37pm] HideyoImazu: +1 [3:37pm] HaraldJoerg: Thanks for your trust! [3:37pm] PeterThoeny: accepted by today's release meeting [3:38pm] PeterThoeny: one more proposal: [3:38pm] PeterThoeny: http://twiki.org/cgi-bin/view/Codev/InlineDocsAccordingToPodSpec [3:38pm] PeterThoeny: also by harald [3:38pm] PeterThoeny: proposed 12 days ago [3:38pm] HaraldJoerg: BTW: you don't even need to pseudo-install the Engine.  Right now I'm running my SVN twiki from the PSGI engine developed in a completely different directory [3:38pm] PeterThoeny: but it has no committed developer and date [3:38pm] HaraldJoerg: A, the POD stuff.. it is rather harmless, [3:39pm] HaraldJoerg: I did not intend to force it, but *if* I'm touching a module, I might fix that as well [3:39pm] HaraldJoerg: I tripped over it when running Pod::Checker over the files [3:40pm] PeterThoeny: i am fine with this, no strong opinion one way or the other [3:40pm] PeterThoeny: please set the committed developer and date [3:40pm] HaraldJoerg: As far as I can see, there's a rather simple change to be done in the script which generates the TWikiScripts stuff (which doesn't work too well anyway these days) [3:41pm] HaraldJoerg: Is there any description how to run this script? [3:42pm] PeterThoeny: afaik, the only time the twiki pod script is used is in teh build to generate TWiki::Func twiki topic [3:43pm] PeterThoeny: i have not looked into how this is done [3:43pm] HaraldJoerg: How is TWikiScripts generated, then? ...and why do we write TWiki comments instead of POD? [3:43pm] PeterThoeny: that is the only need at this time i think [3:44pm] PeterThoeny: TWikiScripts is a manually maintained topic [3:44pm] HaraldJoerg: Ouch [3:45pm] PeterThoeny: TWiki::Func docs at http://twiki.org/cgi-bin/view/TWiki06x00/TWikiFuncDotPm is auto-generated [3:45pm] PeterThoeny: and looks pretty decent [3:45pm] PeterThoeny: with bullets, tml tables etc [3:45pm] HaraldJoerg: Yes, and this is an absolute MUST because it is an external specification [3:47pm] HaraldJoerg: Occasionally I wish to have something like that for internal modules, too [3:47pm] HaraldJoerg: With POD, there's always perldoc path/to/module.pm [3:48pm] PeterThoeny: ah, i just remember, we also have http://twiki.org/cgi-bin/view/Plugins/PerlDocPlugin [3:49pm] PeterThoeny: if installed, you can get the pod docs from any perl module in the inc path [3:49pm] PeterThoeny: ok, anything else on feature requests? [3:50pm] PeterThoeny: nothing from me [3:50pm] HaraldJoerg: Oh, then I need to look into this, too, when changing =begin twiki stuff [3:50pm] PeterThoeny: i remember that plugin is very trivial, so trivial to fix [3:50pm] PeterThoeny: (if needed) [3:51pm] PeterThoeny: ---++ 2. Extensions [3:51pm] PeterThoeny: http://twiki.org/cgi-bin/view/Plugins/WebChanges [3:51pm] HaraldJoerg: Trivial if every =begin twiki has its =end twiki before =cut [3:52pm] PeterThoeny: http://twiki.org/cgi-bin/view/Plugins/SetGetPlugin [3:52pm] PeterThoeny: i finsied the json object and json path support [3:52pm] PeterThoeny: i find it already pretty useful [3:53pm] HaraldJoerg: Nice... is it targeted towards Ajax? [3:53pm] PeterThoeny: see example at http://twiki.org/cgi-bin/view/Plugins/SetGetPlugin#JSON_Example [3:53pm] PeterThoeny: yes, ajax, but also other uses [3:54pm] PeterThoeny: for a client i use it to persitently cache a large query with 20 entries for an autocomplete js object [3:54pm] PeterThoeny: so, topic A has the SET to create the json object [3:55pm] PeterThoeny: that topic takes 40 sec to load [3:55pm] PeterThoeny: not meant for humans, but refreshed via cron once per hour [3:56pm] PeterThoeny: topic B has the autocomplete, it simply loads the json structure needed by the jquery code [3:56pm] HaraldJoerg: Ah, that's nice.  Run some collection stuff in the background.. [3:56pm] PeterThoeny: so SET{bug_structure} is slow, GET{bug_structure} is fast [3:57pm] PeterThoeny: s/bug_structure/big_structure/g [3:57pm] PeterThoeny: that brings me to a related plugin in work: [3:58pm] PeterThoeny: http://twiki.org/cgi-bin/view/Plugins/IfThenActionPlugin (not yet published) [3:58pm] PeterThoeny: plugin code is 90% done [3:58pm] PeterThoeny: docs 80% done [3:58pm] PeterThoeny: docs http://svn.twiki.org/svn/twiki/trunk/IfThenActionPlugin/data/TWiki/IfThenActionPlugin.txt [3:59pm] HideyoImazu: one basic question about persistentency of SetGetPlugin. is the name space is global or per web? [3:59pm] PeterThoeny: at this point is is global [3:59pm] PeterThoeny: so not good if you have mb data [4:00pm] PeterThoeny: a logical enhancement is to be able to specify a store/bucket for persistentcy [4:00pm] HideyoImazu: using metadata repository might be worth considering [4:00pm] PeterThoeny: such as store="bugtracker" [4:01pm] PeterThoeny: ah, an optional dependency on mdrepo, yes [4:01pm] PeterThoeny: feel free to enhance accordingly [4:01pm] PeterThoeny: back to if-then-actions [4:02pm] PeterThoeny: basic need why i create this plugin: [4:02pm] PeterThoeny: same example before with topic A and topic B [4:03pm] PeterThoeny: if you view topic A via cron, you still have out of date structure [4:03pm] PeterThoeny: which can be confusing if a person adds a new record, then tries to find it and it is not there [4:03pm] PeterThoeny: so we need a way to invalidate/refresh the cache [4:03pm] PeterThoeny: this plugin makes it possible [4:04pm] PeterThoeny: example: [4:04pm] PeterThoeny: | *If* | *Source* | *Then* | *Target* | *Comment* | [4:04pm] PeterThoeny: | save | Sandbox.IfThenActionTest | view | Sandbox.IfThenActionView | this does a normal topic view | [4:04pm] PeterThoeny: | save | Sandbox.IfThenActionTest | viewdaemon | Sandbox.IfThenActionViewDaemon | this does a daemon view, e.g. is non-blocking | [4:04pm] PeterThoeny: so: if save Sandbox.IfThenActionTest then view Sandbox.IfThenActionView [4:04pm] HaraldJoerg: Ah, thats a nice solution [4:05pm] PeterThoeny: each then-action is a class [4:05pm] PeterThoeny: so, simply drop in a new perl module and you get a new then-action [4:05pm] PeterThoeny: at this point we have two then-actions: [4:06pm] PeterThoeny: - view: normal (blocking) view [4:06pm] PeterThoeny: - viewdaemon: non-blocking view (useful for a topic that loads in 40 sec) [4:06pm] PeterThoeny: so now we can define a rule that refreshes the cache asynchronously [4:07pm] PeterThoeny: what do yiu think? [4:07pm] HaraldJoerg: Nice idea [4:08pm] HaraldJoerg: The names 'view' and 'viewdaemon' sound a bit misleading since there's nobody who actually views the topics [4:08pm] PeterThoeny: i am looking at another then-action: setformfield [4:08pm] PeterThoeny: example: [4:08pm] PeterThoeny: | save | Sandbox.CID-* | setformfield | $children/formfield(Status) = formfield(Status) | this updates all children's Status field to the current topic's Status field | [4:09pm] PeterThoeny: at this point the only if-action is save [4:09pm] PeterThoeny: in future we can add other if-actions [4:09pm] PeterThoeny: any idea what can be useful? [4:09pm] HaraldJoerg: upload [4:10pm] PeterThoeny: good idea [4:11pm] PeterThoeny: we also can add additional then-actions [4:11pm] PeterThoeny: such as mailto [4:11pm] PeterThoeny: what else? [4:12pm] PeterThoeny: time check: +72 min - we should wrap up soon [4:12pm] PeterThoeny: http://twiki.org/cgi-bin/view/Plugins/LdapContribAdminPlugin [4:12pm] HaraldJoerg: May I ask a simple procedural questions? [4:12pm] PeterThoeny: small fix by harald, thanks [4:12pm] PeterThoeny: yes? [4:13pm] HaraldJoerg: It's about this small fix: Are non-core plugins maintained in the branch as well? [4:13pm] PeterThoeny: this is up to the developer [4:13pm] PeterThoeny: some do, some don't [4:13pm] HaraldJoerg: Or it is it complete if it is in trunk and in plugins web? [4:14pm] PeterThoeny: i always keep plugins i maintain in sync in trunk and latest branch [4:14pm] PeterThoeny: i only test in trunk though [4:14pm] PeterThoeny: so far worked for me [4:14pm] HaraldJoerg: Ok, then I copy the fix to the branch, easy enough [4:15pm] PeterThoeny: i think i mentioned before, i created simple shell scripts: [4:15pm] HaraldJoerg: Next question: Do such bugs go through a WaitingForRelease cycle? [4:15pm] PeterThoeny: - cp2b - copy relevant files to branch [4:16pm] HaraldJoerg: Yes, I know these scripts, I've virtually the same here [4:16pm] PeterThoeny: - cd2b - cd to extenion's branch location [4:16pm] PeterThoeny: - cd2t - cd to extenion's trunk location [4:16pm] PeterThoeny: [4:17pm] PeterThoeny: no, the waitingforrelease is used to compile the list of changes in release notes [4:17pm] PeterThoeny: e.g. should only be used for twiki core and core extensions [4:17pm] HaraldJoerg: Ok, then I'll submit the fix to the branch and then close the bug [4:17pm] PeterThoeny: for all other extensions use n/a [4:18pm] PeterThoeny: non core extsions: [4:19pm] PeterThoeny: - current state: closed [4:19pm] PeterThoeny: - target release: n/a [4:19pm] HaraldJoerg: Ah, thanks [4:19pm] PeterThoeny: anything else on extensions? [4:19pm] HaraldJoerg: Not from me [4:19pm] PeterThoeny: ---++ 3. Review Urgent and Not So Urgent Bugs [4:19pm] PeterThoeny: i have nothing here [4:19pm] PeterThoeny: anything? [4:20pm] HideyoImazu: nothing from me [4:20pm] PeterThoeny: ---++ 4. Miscellaneous [4:20pm] PeterThoeny: anything? [4:20pm] HideyoImazu: no [4:20pm] HaraldJoerg: no [4:21pm] PeterThoeny: time check: +80 min [4:21pm] PeterThoeny: ok, let's close the meeting [4:21pm] PeterThoeny: thank you both! [4:21pm] PeterThoeny: i'll post the minutes and logs [4:21pm] HaraldJoerg: Thanks for your patience [4:22pm] HideyoImazu: ttyl [4:22pm] PeterThoeny: thanks for hanging out that late! [4:22pm]  HideyoImazu left the chat room. (Quit: Page closed) [4:22pm] PeterThoeny: ttyl [4:22pm] HaraldJoerg: Ah, perhaps one final question? [4:23pm] PeterThoeny: sure [4:23pm] HaraldJoerg: Is there an easy way to create the ...Dev and ...Appraisal pages for an extension? [4:23pm] HaraldJoerg: I'd like to restrict the PSGI contrib page to user docs and have the status reports in ...Dev [4:24pm] PeterThoeny: not automated way at this point [4:24pm] PeterThoeny: i usually create those pages [4:24pm] PeterThoeny: i can do now if you like [4:25pm] HaraldJoerg: I'd guess you are faster than I am... or are you just creating with explicitly setting topic parent and templatetopic? [4:26pm] PeterThoeny: yes for topic parent, copy & paste existing topicm i know, primitive, but works [4:27pm] HaraldJoerg: Ok, that explains why I failed to find a template topic... [4:29pm]  HaraldJoerg1 joined the chat room. [4:29pm] HaraldJoerg1:Ooops... Router decided to restart [4:29pm] PeterThoeny: http://twiki.org/cgi-bin/view/Plugins/PSGIEngineContribDev created [4:29pm] HaraldJoerg1:Thanks! [4:30pm] HaraldJoerg1:I'll fill it... after sunrise. [4:30pm] PeterThoeny: http://twiki.org/cgi-bin/view/Plugins/PSGIEngineContribAppraisal - done [4:32pm]  HaraldJoerg left the chat room. (Ping timeout: 264 seconds) [4:32pm] HaraldJoerg1:Nice.  Then I'll update docs, commit, and fire up BuildContrib to get the page online, too [4:33pm] HaraldJoerg1:Good evening to you! [4:33pm]  HaraldJoerg1 left the chat room.