Release Meeting: 17 Oct 2016


1. Urgent Task review

  • 14063 (Closed): Bootstrap fails to correctly detect path when mod_rewrite engine is disabled. Fix checked into Item14180 branch.
  • 14117 (Waiting for Release): TML sends TinyMCE into an eternal loop Upstream bug, no progress.
  • 14126 (No Action Required): Random topics or webs get access restricted No recreation, or other supporting reports.
  • 14195 (Closed): Loop in Foswiki::UI::View::revisionsAround under some conditions. Fix checked in - probably ready for release.

2. Development Discussion

  • CleanUpFoswikiLocales Under Investigation: Provide relevant locale support in pure Foswiki code and eliminate perl/OS locale
  • ExtensionVersionsAndCleanUp
  • 14152 (Being Worked On): Implement OONewPluginModel proposal: New OO Plugin proposal ready for review.
  • 14180 (Closed): Bootstrap enhancements and refactoring. Bootstrap changes
    • Refactored into separate Foswiki::Configure::Bootstrap - no operational impact
    • Pub path replaces /bin with /pub vs. /bin/../pub
    • Properly handles apache ENV with mod_rewrite disabled.
    • Detects a proxy for properly setting DefaultUrlHost
    • Tested with mod_perl, nginx+fastcgi, apache with & without mod_rewrite.

3. Release plan / strategy

Review of features / Feature branches

New proposals - Proposals on 14 day clock

No new proposals need review

14 Day timer ended - Last call

No proposals reaching 14-day threshold.

Major redesign proposals / Development discussion for 3.0+ / 4.0

3. Next release

Patch release 2.1.3

  • Release from: Release02x01
  • Beta start: TBD
  • Release target: August 2016

Feature release 2.2.0

We are at the feature freeze, and still no proposals on the ReleasePlan have been merged! Agreed to defer 2.2 until December

  • Feature Freeze: 1 Dec 2016
  • Release from: master
  • Beta start: 15 Dec 2016
  • Release target: Jan 2017

Next meeting - - Monday 31 Oct 2016 1300Z — ReleaseMeeting02x02_20161031


Time Nick Message
14:55:14 (You joined the channel)
15:01:30 gac410 Hi everyone
15:02:49 gac410 Ready to start?
15:05:52 gac410 Urgent tasks
15:06:02 JulianLevens I'm ready
15:06:51 gac410 One new one - already fixed - ... Registration confirmation/approval corrupts utf-8 names
15:07:33 gac410 Had to change the registration approval files to "Storable" from Data::Dumper format.
15:08:21 gac410 some objections because they are binary - no longer browsable. But it's pretty simple to add a new %PENDINGREGISTRATION% macro that reports on the files.
15:09:01 gac410 I think that's better than alternatives - hacking/overiding Dumper, or using a non-standard CPAN module
15:10:33 gac410 A pending report is really a new feature, but I'm thinking it would be better to add it to support the Storable change even if it's out of spec for a "patch" release.
15:10:55 ubera|| +1
15:10:59 vrurg Hi everyone
15:11:26 gac410 Hi vrurg .. Thanks ubera||
15:12:20 gac410 Has anyone tested bootstrap on the Item14180 branch? That fixes several bootstrap issues, but it's a bit major for a patch. I'd really like to get a 2nd opinion before I merge it.
15:13:13 gac410 Fixes - bootstrap broken if apache mod_rewrite is disabled.
15:14:51 gac410 Also fixes Item13578: ... changes the ../pub relative path to a direct path.
15:15:21 gac410 And Item14181: - detects proxy in bootstrap
15:17:33 gac410 Someone raised Item13410 - search order incorrect when paging is active. But that's a real major search bug - beyond a patch release for sure, and needs a developer willing to dig into search
15:18:54 gac410 I'd like to get the 14180 branch merged, and get a patch release out sooner than later. though I think I said that in September too smile
15:19:26 gac410 Anyone have anything else that should really be picked up in a patch release?
15:22:19 gac410 Anyone???
15:22:28 JulianLevens Not from me
15:23:27 gac410 Okay. ... Next Minor release would be 2.2. There is a big list of committed features, but so far nobody has made any progress in checking them in toward a December freeze
15:24:25 gac410 CDot and MichaelDaum are both missing today, ... they have the bulk of the features. I have a couple that I've made no progress on. JulianLevens has the backlinks challenge
15:24:33 JulianLevens yes, I noticed my FW ToDo list was not making much progress - must try harder
15:26:08 gac410 So I don't think we can report much on Minor Release progress... may have to slide it again once we get into November if there is still no action.
15:27:55 gac410 So... that brings us to Next Major release - the OO Foswiki - Item13897. Has anyone else been looking at it?
15:28:33 gac410 I've been running it, made a few minor fixes. The core at least looks pretty solid.
15:29:05 JulianLevens I very briefly tried to run an install from that branch - without success, but that's because I didn't really try
15:29:54 vrurg gac410: It looks but in fact there is still a lot of work to be done. But some of it either beyond my possibilities or needs expertise.
15:30:48 JulianLevens What expertise is that?
15:31:41 gac410 I think we all need help with "divide and conqueror" ... and with something as big as foswiki, I have no idea where to begin smile
15:31:52 vrurg I hoped for some review on extensions. If the model gets accepted then I'd merge and work on bootstrap process. Because bootstrapping is different for extensions and for no extensions core.
15:32:53 vrurg JulianLevens: review of the code, especially the new extensions.
15:33:02 JulianLevens Well I'll commit to getting an OO Foswiki running on a VM - baby steps
15:33:34 vrurg Minor thing like wether Request should or shouldn't set meaningful defaults for web and topic, etc.
15:33:41 gac410 So I just started trying to find the Extensions code on github so I could post a link.
15:33:47 gac410 And can't find it frown, sad smile
15:34:08 vrurg It's Item14152 branch.
15:34:29 gac410 Doh... looking on the wrong branch big grin
15:35:07 vrurg Rename them perhaps? I'm used to give it a name of supporting task for easy mind-linking.
15:35:23 JulianLevens Then I'll start to read the code, and you'll get questions from me, feedback follows later
15:35:40 gac410 And here it is:
15:36:32 vrurg Ideally it would be to have major issues or concerns to be raised in
15:36:41 gac410 Ah... I remember a question vrurg when I was looking at push / pop context.
15:37:18 gac410 currently core has concept of the "current" web vs the "requested" web. I think your model of going to the Request object to get the web looses that.
15:38:28 vrurg gac410: Requested can be determined from engine data. Alternatively I can introduce and additional attribute on Request – requestedWeb.
15:39:00 gac410 Push/Pop context can change the "apparent" current web/topic for purposes of preferences stack. Does the Request object's web/topic follow that or does it always reflect the "url" requested web?
15:39:09 vrurg The point behind setting defaults is not to have undef attributes so other code can be simplified by not checking for this condition.
15:39:33 gac410 Right I understand the default. That's different from my question.
15:41:22 gac410 I'm not sure it actually matters, where the default is set. But having the context properly manipulate the "position" in the web/topic is really critical. And I think you have it right, but figured I'd bring it up.
15:41:47 vrurg I can't give you exact answer on push/pop but I guess it does. If I'm wrong then will fix it.
15:42:45 gac410 It does seem to be working correctly. When I was fixing the RESTTests (It was a victim of a bad merge by me) it has a specific test to verify an old web/topic context bug
15:42:51 vrurg As it is critical then my guess would be that some of core tests would rely on it and would be failing otherwise.
15:43:20 gac410 And once I realized I had to disable the Cache, the test passes
15:44:22 gac410 Changing subject slightly on your comments in
15:45:06 gac410 You added: Get rid of all Store implementation code. What is that saying?
15:46:03 vrurg Should be in multiple – 'implementations'. The almost never used store implementations classes.
15:46:04 gac410 Also, I think it would help all of us if you could add to that page, ToDo items that you think need addressing. Right now the status looks pretty "green" to me smile
15:46:18 Lynnwood__ has quit: Ping timeout: 252 seconds.
15:47:03 gac410 I think a lot of that was added to support some extensions - MongoDB, and maybe Crawford's DB Store
15:47:08 vrurg My ToDo consist of 5 items where documentation is the most imporant one. But this is my hell on Earth as I often miss the correct words.
15:48:03 vrurg Otherwise it is all about testing and converting core plugins.
15:48:27 gac410 If I understand the new model, it does NOT eliminate the old Plugins / Contrib model, but sits along side it?
15:48:54 gac410 If that is true, it makes it much easier to 'accept' IMO anyway
15:49:59 vrurg Store implementations was ugly. This is where the new extensions model came from. Especially class overriding was initialy thought of as the replacement and extension to allow other stores, LSC implementations, etc.
15:50:10 gac410 Anything that "tosses away" 300+ extensions would be a bit of a non-starter. Minor API changes is one thing, but a whole new model is a much bigger change.
15:50:53 JulianLevens As I've commented elsewhere there are simpler and more standard ways to have nested Store classes
15:51:26 vrurg Yep, I clearly understand this. If the new model gets accepted then the old one shall be deprecated in a way to make new plugins emrge in the new format. Otherwise they can happily co-exists.
15:52:10 gac410 Okay great! That's a good thing.
15:53:26 gac410 Store is indeed an area where there are a lot of wish list items. Delegation to CDN for attachments, Database mirroring, database storage, etc. All made very difficult by our current implementation.
15:53:45 vrurg JulianLevens: Store was just the initial point. But the eventual implementation is more about extending or even replacing practically any part of the core by an extension completely transparently for the rest of the core.
15:54:21 JulianLevens I'll need to read the code to really grok that
15:54:43 gac410 Login/Mapping/Passwords is another area where our architecture is difficult
15:54:59 vrurg JulianLevens: read the proposal and empty extensions docs. They're ugly but hopefully provide the necessary information.
15:55:25 vrurg s/extensions/extension/
15:57:30 JulianLevens I can see me helping a lot with documentation - native English speaker to start with
15:58:15 vrurg gac410: Regarding the easyness of acceptance – Michael raised few concerns about the model. I hoped to have him see the docs/code and provide some thoughts. But...
15:58:18 JulianLevens More importantly, there is a lot of new stuff for me to grasp and documenting that as I go is a good method
16:00:10 vrurg That's my dream. wink What takes me 1hr in Russian/Ukrainian – may take 6 to be done in English. And the result is still as if a 3yr old trying to reproduce a Bayron's poem... wink
16:00:38 gac410 Y, Michael and CDot have been scarce at the last few release meetings. They are both quite critical to have on board.
16:01:53 gac410 BTW I was going to work on the jsonrpc tests vrurg, but they were modeled after the RESTTests, and when I went to compare, they were totally broken by my bad merge, so had to get that done first.
16:02:08 gac410 So RESTTests now pass yay
16:02:28 vrurg Ok, meanwhile I have two major things to think of. It was never discussed before but I'm thinking about automation of dependency module installation. That "we don't have it in standard repo" thing is damn annoying. We lost a lot of possibilities by limiting ourselves.
16:02:57 gac410 dependency ... like other foswiki modules, or dependency ... like CPAN
16:04:04 gac410 There is an old module that attempted to automate CPAN installation. It was pretty bad. Attempted to use apt, rpm, and fell back to CPANPLUS which has been deprected.
16:04:30 vrurg CPAN. If we manage to reduce the number of preinstalled modules to absolute minimum (like Moo only, perhaps) – and the rest would be installed during bootstrap. This would have another issue resolved as we could have installed only proven to be compatible versions of dependencies.
16:04:42 gac410 As I was on gentoo, I never wanted it. it did not support emerge or g-cpan
16:04:57 JulianLevens gac410: any idea what that module was called?
16:05:37 gac410 it's in tools ... tools/
16:06:21 vrurg Another thing to work on is LocalLib.cfg replacement. This part I wanna have incorporated into config code. And have it compatible with the new extensions.
16:06:27 gac410 You will find Vrurg that "Enterprise" sites that have RHat / et. al support contracts, will STRONGLY STRONGLY object to CPAN.
16:06:29 ubera|| What about cpanm nowadays? Using "native" packages likely would be fragile unless we offer foswiki .debs/.rpms?
16:07:19 gac410 vrurg, unless you have a signed contract to provide security patches for cpan, it aint gettin by the corporate powers that be ... at least in some places.
16:07:46 vrurg Would they object of installing into our local directory structure? Phew, that'd be strange because it makes the whole idea of CPANContrib useless.
16:07:59 gac410 cpanm++ y indeed it works great.
16:08:41 gac410 vrurg, it's the "one size fits all" issue. CPANContrib is there for hosted sites who cannot install modules. Only a desperate last resort.
16:09:02 vrurg I mean, what difference does it make whether a module was installed with contrib or fetched dynamically from the external source if it eventually ends up in Foswiki's LOCAL directory structure and not visible to other Perl code in the system?
16:09:53 vrurg gac410: Anyway, that kind of feature could easily be disabled if not desired.
16:10:13 gac410 Because if there is a CVE against the perl module, are we going to release a new foswiki to pick it up. Would we even know. Distro's supply daily/weekly security patches. Foswiki does not.
16:10:48 vrurg But it'll be handy for hosted environment and for entry-level admins not knowing how's perl organized and how modules are to be installed. Yet it could free us from distro repositories.
16:12:06 vrurg gac410: This is resolvable. First of all, a module wouldn't be fetched/installed locally if already available. Second, there could be a choice of what version to install. Or if no version then the latest one is used.
16:12:36 JulianLevens I'm hoping to automate installation, which might even be able to mitigate installation of apt security patches - just won't happen soon frown, sad smile
16:12:39 vrurg I mean it's not a big deal to tune the procedure as far as you have the code which does the thing.
16:13:45 gac410 Probably a corner case, but I've definitely seen cases where a foswiki-supplied cpan conflicted with a stale os-supplied module. Anyway, it's all an area to tread cautiously
16:14:31 gac410 Some are nearly impossible to install ... imagemagick / graphicsmagick and some of the SSL modules that depend upon external code comes to mind.
16:15:10 vrurg Anyway, I want it but not sure if get time for it yet. The LocalLib replacement is of higher priority here. Though both tasks are closely related because they're about early stages of application life.
16:15:58 gac410 y ... LocalLib / SetLib, and early handling of critical missing dependencies are pretty important.
16:16:56 gac410 Our two most popular newbie install issues (with no data to support) are:
16:16:56 gac410 1) Why am I seeing perl code instead of foswiki ... and
16:16:56 gac410 2) Why am I getting 500 - Internal error.
16:17:11 vrurg This is why I was awaiting for the new extensions review and acceptance. They change a lot and implementation would be very much different with or without them.
16:18:49 gac410 vrurg: rather than waiting for a release meeting, might be best, when you see CDot or MichaelDaum active, to hit them up in the main channel.
16:19:09 gac410 It seems that this time is not working out for them now frown, sad smile
16:20:02 vrurg Perhaps. I've got pretty busy last three weeks, not seeing them often.
16:21:16 vrurg Anyway, there still routine tasks like getting rid of %Foswiki::cfg and replacing it with $app->cfg wherever possible and alike.
16:22:50 gac410 Lavr is important - former release manager, supports large FW installation at Motorola. But will generally resist anything that is not 100% backwards compatible.
16:22:50 gac410 jargan / aka jast, supports a large foswiki based service, but mostly runs a fork maintained at
16:24:24 gac410 discovered the importance of the %Foswiki::cfg -> $app->cfg change in RESTTests ... Config changes were quietly disappearing
16:25:22 JulianLevens I need to get to some $work, any other key-points to discuss
16:25:24 gac410 Also important to set them in the loadExtraConfig routine, and not in the setup routine
16:25:25 vrurg I think people like Lavr are mostly lost for the new releases. Would Foswiki have more developers it'd be much better to maintain an LTE release for them.
16:26:17 gac410 JulianLevens: Not that I can think of. We are 1.5 hours into meeting. Unless anyone else has anything ... let's adjourn
16:26:34 vrurg JulianLevens is right. I would finally have my breakfast and come to work too.
16:27:05 gac410 avoided dripping cereal into the laptop so breakfast is done.
16:27:20 JulianLevens Ok, thanks everyone
16:27:34 ubera|| thanks
16:27:35 vrurg Thanks!
16:27:39 ubera|| Teatime!
16:28:07 gac410 Okay everyone Thanks. TO DO everyone, please review in
16:28:31 gac410 TO DO, please check out new bootstrap in Item14180 branch too big grin
16:28:50 gac410 have a good day all Thanks
Topic revision: r3 - 17 Oct 2016, GeorgeClark
The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License    Legal Imprint    Privacy Policy