2009-08-03T00:15:33  *** grzywacz has quit IRC
2009-08-03T00:33:47  *** amartani has joined #moin-dev
2009-08-03T00:42:27  <CIA-43> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6344:f293629420bb 2.0-storage/MoinMoin/storage/_tests/test_serialization.py: do not print xml for failing serialization tests as long as backend is full of stuff
2009-08-03T00:42:30  <CIA-43> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6345:46714ff3ef5e 2.0-storage/MoinMoin/security/_tests/test_security.py: acl tests: do not toggle cfg.acl_hierarchic within the same test/request
2009-08-03T00:42:33  <CIA-43> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6346:ade2315d69cf 2.0-storage/MoinMoin/ (config/multiconfig.py storage/backends/acl.py): move cache with precompiled ACLs from cfg.cache to acl middleware
2009-08-03T00:53:14  *** y84 has joined #moin-dev
2009-08-03T01:16:45  *** tpfennig has joined #moin-dev
2009-08-03T01:18:43  <CIA-43> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6347:8b62e769f5dc 2.0-storage/MoinMoin/security/__init__.py: refactored AccessControlList: access cfg only from __init__
2009-08-03T01:40:59  <CIA-43> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6348:071842faa436 2.0-storage/MoinMoin/ (7 files in 7 dirs): remove some leftover usage of 'delete' permission, fix docstrings
2009-08-03T01:41:33  *** tpfennig has quit IRC
2009-08-03T01:56:54  <CIA-43> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6349:fe04bb7da635 2.0-storage/wikiserver.py: wikiserver: import the right Config, use correct namespace
2009-08-03T01:59:27  <amartani> ThomasWaldmann: the cache dir is shared among wikis in a farm?
2009-08-03T02:09:16  <ThomasWaldmann> amartani: it can be, that is how scope=farm works
2009-08-03T02:10:56  <amartani> hum, ok, so there is really a problem there..
2009-08-03T02:11:13  <amartani> as the paths are now
2009-08-03T02:14:04  <amartani> the siteid is always ascii, or it needs to be encoded also?
2009-08-03T02:16:12  <ThomasWaldmann> how about just using get_arena_dir if you can't use CacheEntry?
2009-08-03T02:17:15  <amartani> I'm using it.
2009-08-03T02:17:42  <ThomasWaldmann> so what's the problem?
2009-08-03T02:18:57  <amartani> it is returning the same path for the same page on different wikis
2009-08-03T02:22:00  <ThomasWaldmann> scope?
2009-08-03T02:22:55  <amartani> item
2009-08-03T02:24:23  <ThomasWaldmann> that's a bug
2009-08-03T02:24:36  <ThomasWaldmann> wait a sec
2009-08-03T02:26:45  <amartani> ThomasWaldmann: i can fix it if you want, I just wanted to know why it was done that way
2009-08-03T02:29:10  <CIA-43> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6350:c90c4b53cf1c 2.0-storage/MoinMoin/caching.py: caching: with scope='item' it needs to use different storage areas per wiki or collisions will happen
2009-08-03T02:29:45  <ThomasWaldmann> because someone was not thinking about shared cache_dir
2009-08-03T02:30:41  <amartani> ok, thanks..
2009-08-03T02:30:49  <ThomasWaldmann> (the fix is better done in main repo as likely other code also needs it fixed)
2009-08-03T02:33:00  <amartani> sure
2009-08-03T02:40:22  <CIA-43> Alexandre Martani <amartani AT gmail DOT com> default * 6477:710591b1a5f3 2.0-storage-editor-amartani/ (23 files in 15 dirs): merge 2.0-storage
2009-08-03T08:26:29  <ThomasWaldmann> moin
2009-08-03T08:32:19  <dennda> moin
2009-08-03T08:37:15  <waldi> moiin
2009-08-03T08:45:16  <ThomasWaldmann> btw, the little cleanup I did in the acl code is to make it easier to move acls from acl_rights_* to ACL middleware params
2009-08-03T08:47:01  <ThomasWaldmann> dennda: btw, we try to use common prefix, if possible. thus it is ns_*, not *_ns.
2009-08-03T08:49:06  <ThomasWaldmann> and before changing it back, check wether default is still needed or mappings[-1] can be used.
2009-08-03T08:49:25  <dennda> will scrutinize
2009-08-03T09:28:55  <ThomasWaldmann> dennda: in the failing tests, I see "user_prefix". If you rename the other stuff to ns_*, please do it there also.
2009-08-03T09:30:03  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6351:daa5311ce3c5 2.0-storage/MoinMoin/ (3 files in 3 dirs): storage: Don't use a router backend for other tests than the router tests but provide fresh memory backends for each testcase
2009-08-03T09:30:28  <dennda> ^ fixes all recent acl middleware tests
2009-08-03T09:35:46  <ThomasWaldmann> that test_num_pages property looks a bit crazy
2009-08-03T09:36:21  <ThomasWaldmann> (please switch on brain before coding :)
2009-08-03T09:38:28  <ThomasWaldmann> and storage property does not look that great either
2009-08-03T09:42:33  <dennda> What's wrong?
2009-08-03T09:42:47  <ThomasWaldmann> just read your code and imagine what it does
2009-08-03T09:43:27  <ThomasWaldmann> also, running all tests in a rather synthetic environment is maybe not the best approach
2009-08-03T09:44:17  <ThomasWaldmann> (I mean "not using the router". Because using the router will be what is done in practical wiki setups.)
2009-08-03T09:44:40  <dennda> It creates a new backend for every access of the attribute, which results in 1 new backend per testcase as you don't access it via request.cfg.storage but self.backend, which is provided by the test framework
2009-08-03T09:45:15  <ThomasWaldmann> how do you know that the attribute is accessed only once per test?
2009-08-03T09:46:13  <ThomasWaldmann> well, maybe that is the case right now, but basically you can't know.
2009-08-03T09:46:38  <dennda> Before each test runs, the setupmethod of the framework is called, which provides the attribute "backend" for each test, which may be based on request.cfg.storage, but you don't access request.cfg.storage directly from within the test
2009-08-03T09:47:05  <ThomasWaldmann> foo = self.request.cfg.storage
2009-08-03T09:47:08  <ThomasWaldmann> now what?
2009-08-03T09:48:39  <ThomasWaldmann> also, cloning a complete backend, overwriting all targets, just to count items....
2009-08-03T09:52:26  <dennda> you mean "doing that every time when accessing the attribute"?
2009-08-03T09:52:30  <dennda> wrt counting
2009-08-03T09:59:52  <ThomasWaldmann> yes
2009-08-03T10:00:33  <ThomasWaldmann> also, what you use is a expensive and not side-effect free operation
2009-08-03T10:01:52  <dennda> I doubt I wrote that
2009-08-03T10:06:31  <ThomasWaldmann> maybe just backout that changeset
2009-08-03T10:06:46  <ThomasWaldmann> brb
2009-08-03T10:20:32  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6352:a39351f1e2d0 2.0-storage/MoinMoin/ (3 files in 3 dirs): Backed out changeset daa5311ce3c5 -- test properties
2009-08-03T10:20:34  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6353:e818e3bfdac6 2.0-storage/MoinMoin/ (_tests/wikiconfig.py storage/_tests/test_backends.py): storage: *DO* use a router backend for acl tests. We are now back to where we were before I started fiddling with test config, with the difference that we use a routerbackend for acl tests.
2009-08-03T10:23:27  <dreimark> moin
2009-08-03T10:23:32  * dreimark reads backlogs
2009-08-03T10:27:00  <dreimark> 131 +                l = self.conn_mgr.get_connection(binddn, bindpw)
2009-08-03T10:27:13  <dreimark> that l = is annoyoing in ldap_group3.patch
2009-08-03T10:27:29  <dreimark> PEP8 vioation
2009-08-03T10:27:33  <dreimark> _peck_: ^^
2009-08-03T10:29:56  <dreimark> don't use a var named filter that will overwrite filter
2009-08-03T10:30:06  <dreimark>  197 +        filter='',                 # filter to use when searching for groups
2009-08-03T10:31:05  <dreimark>  213 +        filter = self._getfilter(group_name)
2009-08-03T10:35:44  <dreimark>  387 +                return [x[1][attribute][0] for x in data]
2009-08-03T10:36:48  <dreimark> I wished a commet line what is [x[1][attribute][0] for also on the x[0] line above
2009-08-03T10:51:30  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6354:0f3dd17458ee 2.0-storage/MoinMoin/storage/ (3 files in 2 dirs): storage: Don't require additional 'default' argument for routerbackend initialization. The last namespace passed must be '/' or '' and is the default.
2009-08-03T10:51:32  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6355:5e4234b5f663 2.0-storage/ (4 files in 3 dirs): storage: user_ns -> ns_user. Throw out content_ns since we don't need it anymore (It's always '/')
2009-08-03T11:01:35  <_peck_> dreimark: it will not overwrtite since it's not the same method
2009-08-03T11:02:22  <dreimark> filter is  a builtin function
2009-08-03T11:02:28  <_peck_> ah ok
2009-08-03T11:03:04  <_peck_> for the l it a code i took as is but i can change it
2009-08-03T11:03:12  <dreimark> (that' why we name it on various plaes fitler_fn)
2009-08-03T11:03:19  <dreimark> s/tl/lt/
2009-08-03T11:03:38  <dreimark> ThomasWaldmann: has suggested to name it conn
2009-08-03T11:04:05  <dreimark> while changing that part of yould it would be nice to make it better
2009-08-03T11:04:06  <dennda> ThomasWaldmann: So after thinking about it, I think it's ok that storage.get_backend(ns_user).create_item("joe") will be "Users/joe". You have to be aware that you are dealing with user items anyway or you certainly shouldn't deal with them...
2009-08-03T11:06:23  <ThomasWaldmann> dreimark: yeah, that l is from old code, i also recommended to change it to conn
2009-08-03T11:08:43  <ThomasWaldmann> dennda: could you please and finally notice that we have user homepage and user profile and that those are different things that should get clear names?
2009-08-03T11:09:20  <ThomasWaldmann> see also that test where you confuse that yourself
2009-08-03T11:09:55  <ThomasWaldmann> and Users/JoeDoe is a homepage, not a profile
2009-08-03T11:10:10  <dennda> I am talking about UserProfile
2009-08-03T11:10:18  <dennda> do you want ns_user -> ns_user_profiles?
2009-08-03T11:10:30  <ThomasWaldmann> (this is for not confusing Mediawiki users, who are used to User(s?):TheirName)
2009-08-03T11:11:11  <ThomasWaldmann> well, as the content is "UserProfiles", that's not far fetched....
2009-08-03T11:11:32  <ThomasWaldmann> s/content/value/
2009-08-03T11:11:57  <dennda> i meant
2009-08-03T11:12:13  <dennda> So after thinking about it, I think it's ok that storage.get_backend(ns_user).create_item("joe") will be "UsersProfiles/joe". You have to be aware that you are dealing with user items anyway or you certainly shouldn't deal with them...
2009-08-03T11:12:31  <dennda> ns_user_profiles*
2009-08-03T11:13:00  <ThomasWaldmann> since when are our user item names realnames?
2009-08-03T11:13:49  <dennda> does that matter for the test?
2009-08-03T11:14:00  <dennda> s/joe/2189as7d89/
2009-08-03T11:14:01  <ThomasWaldmann> i want realistic tests :)
2009-08-03T11:14:32  <ThomasWaldmann> and that test I am referring to showed nothing but confusion
2009-08-03T11:20:48  <ThomasWaldmann> 0f3dd17458ee ok, that looks like fixing some test failures
2009-08-03T11:22:20  <ThomasWaldmann>      4.7 -    backend = Config.storage.get_backend(Config.content_ns)
2009-08-03T11:22:20  <ThomasWaldmann>      4.8 +    backend = Config.storage
2009-08-03T11:22:26  <ThomasWaldmann> much better :)
2009-08-03T11:22:45  <ThomasWaldmann> you know what we can do now? :)
2009-08-03T11:23:02  <dennda> go on vacation?
2009-08-03T11:23:12  <ThomasWaldmann> no :P
2009-08-03T11:23:15  <dennda> too bad :-)
2009-08-03T11:24:00  <ThomasWaldmann> but we can load test user(s), trashed items, user homepages, ... from the xml
2009-08-03T11:24:31  <ThomasWaldmann> so when you're doing practical tests, you don't need to create a user first
2009-08-03T11:25:11  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6356:24bfbbf5c59d 2.0-storage/ (4 files in 4 dirs): storage: ns_user -> ns_user_profiles. Refactor and fix router's user test
2009-08-03T11:25:21  <dennda> is that better?
2009-08-03T11:28:53  <ThomasWaldmann>     2.36 +        all_items = [item.name.lstrip(self.ns_user_profiles) for item in all_items]
2009-08-03T11:28:56  <ThomasWaldmann>     2.37 +        assert userid in all_items
2009-08-03T11:28:58  <ThomasWaldmann> you can do that better
2009-08-03T11:31:09  <dennda> you mean assert self.backend.has_item(self.ns_user_profiles + userid)?
2009-08-03T11:31:48  <dennda> i considered that an optional test when writing it, but it's likely overkill
2009-08-03T11:31:50  <ThomasWaldmann> yes, or: (x+y) in all
2009-08-03T11:32:24  <ThomasWaldmann> MoinMoin/_tests/wikiconfig.py ns_user_profiles = 'UserProfiles/'
2009-08-03T11:32:55  <dennda> what about that?
2009-08-03T11:32:58  <ThomasWaldmann> wikiconfig.py ns_user_profiles = 'UserProfiles/'
2009-08-03T11:33:09  <ThomasWaldmann> i guess you want to move that to multiconfig
2009-08-03T11:33:35  <ThomasWaldmann> same for other ns_*
2009-08-03T11:34:01  <dennda> jup
2009-08-03T11:34:19  <ThomasWaldmann> and please to the right place there :)
2009-08-03T11:34:52  <ThomasWaldmann> that's where the config items with common prefix are defined and documented
2009-08-03T11:42:25  <dennda> finding that is a challenge by itself
2009-08-03T11:44:30  <dennda> ThomasWaldmann: ah, you mean the config items that are prefixed with their group name automatically?
2009-08-03T11:44:51  <dennda> so we would have request.cfg.storage_namespace.user_profiles or something like that?
2009-08-03T11:46:31  <dreimark> dimazest: I am back, can you tell me how much tests are allowed to fail currently
2009-08-03T11:50:14  <_peck_> i uploaded a new version of the ldap patch with language correction and use of logger everywhere
2009-08-03T11:54:55  <dreimark> ThomasWaldmann: looks like on win32 Image recreates cache files on every request
2009-08-03T11:55:04  <dreimark> (reported on the arnica page)
2009-08-03T12:03:01  <dreimark> dimazest: http://moinmo.in/TakeoKatsuki my be add a note to him that you refactor xapian currently (because he may be an interested windows user who could try out how it works there)
2009-08-03T12:06:27  <dennda> ah it's prefixed like ns + _ +  ...
2009-08-03T12:11:16  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6357:b74b378b3525 2.0-storage/MoinMoin/storage/_tests/test_backends_router.py: storage: refine router user test
2009-08-03T12:11:18  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6358:1d5a6be5e9ae 2.0-storage/ (5 files in 5 dirs): storage: Pull up namespace declarations to multiconfig
2009-08-03T12:15:54  <dreimark> bbl
2009-08-03T12:21:47  *** SuBmUnDo_ has quit IRC
2009-08-03T12:22:04  *** Submundo_____ has joined #moin-dev
2009-08-03T12:23:08  * dennda thinks about how to best approach the acl part of the story now
2009-08-03T12:27:00  <dennda> By exposing user profiles as moinmo.in/UserProfiles/ we need to be extra careful to get the acls there right. That was not that much of a problem before
2009-08-03T12:27:23  <dennda> looking at your CS now
2009-08-03T12:28:23  *** Submundo_____ has quit IRC
2009-08-03T12:28:23  *** starshine_away has quit IRC
2009-08-03T12:28:23  *** vpv has quit IRC
2009-08-03T12:28:23  *** xorAxAx has quit IRC
2009-08-03T12:28:23  *** CIA-43 has quit IRC
2009-08-03T12:29:00  *** Submundo_____ has joined #moin-dev
2009-08-03T12:29:00  *** starshine_away has joined #moin-dev
2009-08-03T12:29:00  *** CIA-43 has joined #moin-dev
2009-08-03T12:29:00  *** xorAxAx has joined #moin-dev
2009-08-03T12:29:00  *** vpv has joined #moin-dev
2009-08-03T12:36:44  <ThomasWaldmann> dennda: i already proposed how to solve per backend acls easily
2009-08-03T12:37:15  <ThomasWaldmann> (with not much more needed than cleaning up acl code a bit)
2009-08-03T12:37:17  <dennda> well yes by supplying them to the acl middleware and using a seperate acl mw for each backend
2009-08-03T12:37:52  <ThomasWaldmann> yes
2009-08-03T12:41:05  <ThomasWaldmann> dennda: if you like to make it easier, you could modify your enduser stuff so that it reads acl_rights_* from cfg and uses it for all content-related namespaces (content, trash, user homepages)
2009-08-03T12:42:21  <ThomasWaldmann> or, even better maybe, let enduser have acl_rights_* as __init__ args
2009-08-03T12:43:09  <ThomasWaldmann> and a acl_user_profiles="All:"
2009-08-03T12:43:40  <dennda> what I need to do first is to refactor the acl mw to accept a dict of acls and use those, then rip out automatic AMW patchery, then set it up easily with enduser
2009-08-03T12:43:51  <dennda> do you agree?
2009-08-03T12:44:04  <ThomasWaldmann> why "a dict of acls"?
2009-08-03T12:44:41  <dennda> or __init__(self, request, backend, before, after, default, hierarchic)
2009-08-03T12:44:46  <dennda> as opposed to
2009-08-03T12:45:33  <dennda> __init__(self, request, backend, {'before': ..., 'after': ..., 'default': ..., 'hierarchic': ...})
2009-08-03T12:45:37  <dennda> using kwargs is better tho
2009-08-03T12:45:55  <ThomasWaldmann> first please. and sequence before, default, after
2009-08-03T12:46:37  <ThomasWaldmann> (if you have a acl dict, you still can explode it using ** as I have already shown on the wiki page)
2009-08-03T12:46:50  <dennda> i know
2009-08-03T12:47:17  <dennda> but then it needs to be acl_rights_before, etc in __init__(..) as well
2009-08-03T12:47:29  <dennda> somewhat lenghty
2009-08-03T12:47:36  <ThomasWaldmann> btw, while you're cleaning up: the rights_valid is also still in cfg, please check if it could be just another arg with sane default
2009-08-03T12:48:06  <ThomasWaldmann> it needs to be whatever __init__ wants
2009-08-03T12:48:47  <dennda> so you are ok with shortening it to before instead of acl_rights_before?
2009-08-03T12:48:52  <ThomasWaldmann> best outcome would be if we could kill cfg.acl_*
2009-08-03T12:49:18  <ThomasWaldmann> yes, as it is given to a acl wrapper, context should be clear enough
2009-08-03T12:51:55  *** starshine_away has quit IRC
2009-08-03T12:51:55  *** vpv has quit IRC
2009-08-03T12:51:55  *** xorAxAx has quit IRC
2009-08-03T12:51:55  *** CIA-43 has quit IRC
2009-08-03T12:51:55  *** Submundo_____ has quit IRC
2009-08-03T12:52:50  *** Submundo_____ has joined #moin-dev
2009-08-03T12:52:50  *** starshine_away has joined #moin-dev
2009-08-03T12:52:50  *** CIA-43 has joined #moin-dev
2009-08-03T12:52:50  *** xorAxAx has joined #moin-dev
2009-08-03T12:52:50  *** vpv has joined #moin-dev
2009-08-03T12:54:35  <dennda> hmmm
2009-08-03T12:55:46  <dennda> the may check relies on the request being available so it can retrieve the user name from there
2009-08-03T12:56:33  <dennda> and as we can't check the acls without the user name, we still need to patch the amws onto the backends for each request
2009-08-03T12:57:06  <dennda> in your example cfg you already used the request object
2009-08-03T12:58:20  <ThomasWaldmann> so, what's the problem?
2009-08-03T12:58:58  <dennda> where is that stuff set up?
2009-08-03T12:59:08  <dennda> that can't just be done in the wiki config
2009-08-03T13:00:17  <dennda> hmm thinking
2009-08-03T13:01:18  <ThomasWaldmann> can you just read what I put on the wiki page?
2009-08-03T13:02:09  <ThomasWaldmann> that problem is already solved in the same way as for groups (they also need request), so it is just a function that gets a request
2009-08-03T13:02:50  <ThomasWaldmann> and as you'll call that stuff from a request/context object anyway, giving "self" shouldn't be a big problem
2009-08-03T13:04:01  <ThomasWaldmann> the only place where you have to be careful, esp. if you change stuff, is sequence of setup of request.user and request.storage
2009-08-03T13:04:04  <dennda> so that def storage thing is supposed to be an attribute of the request object?
2009-08-03T13:04:29  <ThomasWaldmann> and availability of the 2nd thing while setting up the first thing
2009-08-03T13:04:49  <ThomasWaldmann> that's a piece from a wikiconfig
2009-08-03T13:07:26  <dennda> so in wsgiapp there will be a property for the request object that will call that storage function and pass self...
2009-08-03T13:09:00  <ThomasWaldmann>     58     context.storage = AclWrapperBackend(context)
2009-08-03T13:09:22  <ThomasWaldmann> surprise surprise, you almost have that already :P
2009-08-03T13:15:12  <dennda> not that easy to read your mind, you know :-)
2009-08-03T13:26:56  <dennda> hm yes, stepped into the user vs. storage trap now
2009-08-03T13:31:53  <ThomasWaldmann> :)
2009-08-03T13:50:12  <dennda> Either I'm overseeing something obvious or it isn't all that trivial
2009-08-03T13:50:20  *** starshine_away has quit IRC
2009-08-03T13:50:20  *** vpv has quit IRC
2009-08-03T13:50:20  *** xorAxAx has quit IRC
2009-08-03T13:50:20  *** CIA-43 has quit IRC
2009-08-03T13:50:20  *** Submundo_____ has quit IRC
2009-08-03T13:50:58  <ThomasWaldmann> _peck_: is elt a usual abbreviation of element?
2009-08-03T13:52:19  *** Submundo_____ has joined #moin-dev
2009-08-03T13:52:19  *** starshine_away has joined #moin-dev
2009-08-03T13:52:19  *** CIA-43 has joined #moin-dev
2009-08-03T13:52:19  *** xorAxAx has joined #moin-dev
2009-08-03T13:52:19  *** vpv has joined #moin-dev
2009-08-03T13:54:06  *** starshine_away has quit IRC
2009-08-03T13:54:06  *** vpv has quit IRC
2009-08-03T13:54:06  *** xorAxAx has quit IRC
2009-08-03T13:54:06  *** CIA-43 has quit IRC
2009-08-03T13:54:06  *** Submundo_____ has quit IRC
2009-08-03T13:54:22  <ThomasWaldmann> _peck_: btw, do you have a repo of your moin ldap stuff published somewhere?
2009-08-03T13:56:28  *** Submundo_____ has joined #moin-dev
2009-08-03T13:56:28  *** starshine_away has joined #moin-dev
2009-08-03T13:56:28  *** CIA-43 has joined #moin-dev
2009-08-03T13:56:28  *** xorAxAx has joined #moin-dev
2009-08-03T13:56:28  *** vpv has joined #moin-dev
2009-08-03T14:02:15  <dennda> ThomasWaldmann: Do you have an idea already of how that needs to be done or would you need to take a look yourself? The problem is that user needs storage and storage needs user. It's getting more difficult if we want to seperate init() and init_backend()
2009-08-03T14:04:56  <ThomasWaldmann> well, the only thing storage needs from user is the name, right?
2009-08-03T14:04:57  <_peck_> yes elt is a usual abbreviation
2009-08-03T14:05:15  <_peck_> and no, my repo is not public since it is on a private lan
2009-08-03T14:05:47  <ThomasWaldmann> _peck_: i am just thinking about better collaboration, that patch uploading isn't that comfortable :)
2009-08-03T14:05:49  <_peck_> isn't the patch sufficient ?
2009-08-03T14:05:53  <_peck_> yes
2009-08-03T14:06:16  <ThomasWaldmann> i think group member listing is not implemented yet, right?
2009-08-03T14:06:51  <_peck_> it is
2009-08-03T14:07:40  <_peck_> mmh it looks wrong in fact
2009-08-03T14:08:11  <_peck_> no it's ok
2009-08-03T14:08:17  <ThomasWaldmann> X)
2009-08-03T14:09:08  <_peck_> sorry it needs a map
2009-08-03T14:09:11  <ThomasWaldmann> I am thinking about just committing it to moin/1.9, but the problem is that I personally can't really test it
2009-08-03T14:09:37  <ThomasWaldmann> and I am not quite sure whether the 1.9 ldap testing framework works or not
2009-08-03T14:10:27  <ThomasWaldmann> (first "test" was "manually test it in a ldap environment", second "testing" is automated unit tests)
2009-08-03T14:10:45  <_peck_> how do you unit test ldap ?
2009-08-03T14:11:39  <dennda> and where do I get the name from?
2009-08-03T14:12:34  <_peck_> ThomasWaldmann: i can create unit tests if i understand the basics of py.test and how to provide ldap results to it
2009-08-03T14:15:41  <ThomasWaldmann> _peck_: by starting a slapd
2009-08-03T14:16:17  <ThomasWaldmann> there are already some ldap tests, just have a look
2009-08-03T14:16:47  <ThomasWaldmann> it maybe needs fixing due to the wsgi refactoring, though
2009-08-03T14:23:13  <dennda> ah
2009-08-03T14:23:22  <dennda> hm
2009-08-03T14:29:29  <_peck_> i dont really understand how py.test works
2009-08-03T14:29:43  <_peck_> how is made calls to ldap_testbase ?
2009-08-03T14:30:21  <ThomasWaldmann> that is not directly used by py.test
2009-08-03T14:30:45  <ThomasWaldmann> http://hg.moinmo.in/moin/1.9/file/7a8e1567e7e4/MoinMoin/auth/_tests/test_ldap_login.py look there
2009-08-03T14:31:09  <ThomasWaldmann> (and see the py.test.skip comment)
2009-08-03T14:31:26  <dennda> ThomasWaldmann: So you suggest getting the name from the session and using that for the AMW?
2009-08-03T14:31:27  <_peck_> i dont' have this file
2009-08-03T14:31:37  <_peck_> is it because i'm not up to date ?
2009-08-03T14:31:59  <ThomasWaldmann> it's there since long
2009-08-03T14:32:37  <ThomasWaldmann> you are using moin/1.9 ?
2009-08-03T14:32:53  <_peck_> ok i wasn't looking at the right place
2009-08-03T14:33:40  <_peck_> that's a lot of code
2009-08-03T14:34:39  <ThomasWaldmann> http://imgs.xkcd.com/comics/estimation.png
2009-08-03T14:35:48  <ThomasWaldmann> it even worked, a year ago :D
2009-08-03T14:36:41  <dimazest> dreimark: hi
2009-08-03T14:37:43  <dennda> gnagnagna now cfg is not there yet at this point
2009-08-03T14:40:39  *** amartani has quit IRC
2009-08-03T14:49:45  <dennda> ARGH
2009-08-03T14:49:46  <dennda> !!!!!!!!!!!
2009-08-03T14:50:09  <dennda> some old line i forgot to change in acl just cost me like... ages
2009-08-03T14:50:36  <dennda> self.backend = request.storage as opposed to self.backend = $backend_that_was_given_in_init
2009-08-03T14:50:40  <dimazest> dreimark: there should be some failing test. i'll take care about them later
2009-08-03T14:51:37  <ThomasWaldmann> dennda: twisted, eh :)
2009-08-03T14:52:25  <dennda> it's terrible and broken again
2009-08-03T14:54:50  * ThomasWaldmann .oO(make some plan)
2009-08-03T14:54:50  <dennda> why oh why did this work 2 minutes ago and now it does no more
2009-08-03T14:55:29  <dreimark> dimazest: I know I just want to know how much are failing we have to care for others
2009-08-03T14:55:30  <dennda> my plan is: initialize storage before user
2009-08-03T14:55:42  <dennda> now unfortunately, that is difficult for me
2009-08-03T14:55:51  <dreimark> dimazest: at last I have had 8 failings
2009-08-03T14:56:08  <ThomasWaldmann> dennda: why that order?
2009-08-03T14:56:52  <dennda> .oO(didn't you say that?)
2009-08-03T14:57:45  <ThomasWaldmann> well, at least you can't really work with ACLs until you know the user
2009-08-03T14:58:33  <dennda> well. get username, setup storage with username, setup user
2009-08-03T14:59:28  <ThomasWaldmann> or: setup unprotected storage, setup user, setup protected storage
2009-08-03T14:59:58  <dennda> ah that is why you specified unprotected storage in that mapping
2009-08-03T15:00:01  <dennda> already wondered
2009-08-03T15:00:48  <ThomasWaldmann> just one call won't be enough then
2009-08-03T15:00:49  <dimazest> dreimark: .....FFFFFFF.. (7 in the search tests) and 1 failure in packages
2009-08-03T15:01:01  <dreimark> ok
2009-08-03T15:01:06  <dennda> """ You may not create '1249304446.6.44645'. """
2009-08-03T15:03:32  <_peck_> is there a tutorial or something like that for py.test ?
2009-08-03T15:04:06  <ThomasWaldmann> google: py.test codespeak
2009-08-03T15:04:14  <ThomasWaldmann> or py codespeak
2009-08-03T15:30:06  <dennda> hm that works as well
2009-08-03T15:30:10  <dennda> let me clean that up a bit
2009-08-03T15:37:01  *** dreimark has quit IRC
2009-08-03T15:45:08  *** dreimark has joined #moin-dev
2009-08-03T15:52:45  *** starshine_away has quit IRC
2009-08-03T15:52:45  *** vpv has quit IRC
2009-08-03T15:52:45  *** xorAxAx has quit IRC
2009-08-03T15:52:45  *** CIA-43 has quit IRC
2009-08-03T15:52:45  *** Submundo_____ has quit IRC
2009-08-03T15:53:16  *** Submundo_____ has joined #moin-dev
2009-08-03T15:53:16  *** starshine_away has joined #moin-dev
2009-08-03T15:53:16  *** CIA-43 has joined #moin-dev
2009-08-03T15:53:16  *** xorAxAx has joined #moin-dev
2009-08-03T15:53:16  *** vpv has joined #moin-dev
2009-08-03T15:56:16  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6359:182a4a6fa089 2.0-storage/MoinMoin/storage/backends/acl.py: storage: ACL middleware now takes hierarchic, before, default, after as arguments upon initialization
2009-08-03T15:56:18  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6360:90e62b77cab5 2.0-storage/ (6 files in 4 dirs): storage: somewhat functional implementation of new storage configuration approach.
2009-08-03T15:56:19  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6361:2360fbb17350 2.0-storage/ (6 files in 4 dirs): Backed out changeset 90e62b77cab5 -- last changeset. needs to be redone properly
2009-08-03T15:56:21  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6362:3f6679618040 2.0-storage/ (6 files in 4 dirs): storage: Trying another approach: initialize unprotected storage, then setup user, then protect storage. proof of concept. needs to be cleaned up
2009-08-03T15:56:25  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6363:37cad9fbb907 2.0-storage/ (MoinMoin/wsgiapp.py wikiconfig.py): storage: cleaned up the last commit a bit. now the admin only needs to specify a mapping that contains (mountpoint, unprotected backend, acls to apply for that backend) and the rest is done automatically
2009-08-03T15:56:56  <dennda> ThomasWaldmann: ignore what you see in 6360. I backed it out again.
2009-08-03T15:57:45  <dennda> ThomasWaldmann: i've adjusted the example you sketched on the wiki page a bit. the admin now doesn't initialize the AMW himself but just tells what protection should applied to the unprotected backend he provides for the given namespace
2009-08-03T16:05:11  <ThomasWaldmann> dennda: that way you can only use one specific acl middleware
2009-08-03T16:06:21  <ThomasWaldmann> not that we have too much of these yet, though :)
2009-08-03T16:07:03  <dennda> yes, I wonder if we need more or whether that can be emulated by choosing correct acls
2009-08-03T16:07:36  <ThomasWaldmann> we'll see, when looking at ns_user_home :)
2009-08-03T16:09:59  <dennda> of course it fails now if you try to create a user telling you that you don't have the create capability for that namespace
2009-08-03T16:10:49  <ThomasWaldmann> dennda: user module should likely user the unprotected stuff for now
2009-08-03T16:11:11  <dennda> i wonder how to fix that. an easy fix would be giving create out to everybody, since we allow creating users for everybody anyway
2009-08-03T16:11:54  <ThomasWaldmann> we can think about that later, just document it in the user.py header
2009-08-03T16:12:16  <dennda> hm ok
2009-08-03T16:12:37  <ThomasWaldmann> and not everybody likes it that anyone can create a user account, so maybe we really need acls there, somehow :)
2009-08-03T16:13:45  *** starshine_away has quit IRC
2009-08-03T16:13:45  *** vpv has quit IRC
2009-08-03T16:13:45  *** xorAxAx has quit IRC
2009-08-03T16:13:45  *** CIA-43 has quit IRC
2009-08-03T16:13:45  *** Submundo_____ has quit IRC
2009-08-03T16:14:30  *** Submundo_____ has joined #moin-dev
2009-08-03T16:14:30  *** starshine_away has joined #moin-dev
2009-08-03T16:14:30  *** CIA-43 has joined #moin-dev
2009-08-03T16:14:30  *** xorAxAx has joined #moin-dev
2009-08-03T16:14:30  *** vpv has joined #moin-dev
2009-08-03T16:18:04  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6364:ab0a01cbab4d 2.0-storage/MoinMoin/user.py: storage: Use unprotected storage for MoinMoin.user
2009-08-03T16:26:06  * ThomasWaldmann still thinks about how to do that storage config better
2009-08-03T16:29:02  <ThomasWaldmann> dennda:    6.7 -    backend = Config.storage
2009-08-03T16:29:02  <ThomasWaldmann>      6.8 +    # XXX
2009-08-03T16:29:02  <ThomasWaldmann>      6.9 +    backend = Config.content_backend
2009-08-03T16:29:05  <ThomasWaldmann> why is that?
2009-08-03T16:29:39  <dennda> you should be thinking about it, you disturbed the peace :-)
2009-08-03T16:30:04  <dennda> ThomasWaldmann: because it relies on the content_backend identifier
2009-08-03T16:30:24  <dennda> but ideally it would look it up by ns_content
2009-08-03T16:30:43  <dennda> or actually
2009-08-03T16:30:46  <dennda> use the last
2009-08-03T16:30:54  <ThomasWaldmann> it would be nice if it could access the unprotected router
2009-08-03T16:31:24  <dennda> that'd mean router creation in the config, no?
2009-08-03T16:31:49  <dennda> but it could do backend = Config.namespace_mapping[-1][1]
2009-08-03T16:32:52  <ThomasWaldmann> or load the xml when the router backend starts working?
2009-08-03T16:34:16  <dennda> that check runs before any request is issued
2009-08-03T16:34:18  <ThomasWaldmann> we could have cfg.xml_preload = None (or = filename to preload)
2009-08-03T16:35:06  <ThomasWaldmann> I am not sure I care whether the first request takes a sec longer or not
2009-08-03T16:35:41  <dennda> I am not sure whether I like that. Initially I disliked it strongly but that feeling is about to fade
2009-08-03T16:36:13  <ThomasWaldmann> it would even work with other servers then :)
2009-08-03T16:36:22  <dennda> other servers?
2009-08-03T16:36:26  <dennda> ah
2009-08-03T16:36:29  <dennda> other than wikiserver.py
2009-08-03T16:36:58  <ThomasWaldmann> or even test requests?
2009-08-03T16:37:38  <dennda> let's add it
2009-08-03T16:40:40  <ThomasWaldmann> btw, the current comments in wikiconfig are wrong:     2.27 +            # (prefix, unprotected backend, protection to be applied), order of list entries is important
2009-08-03T16:41:36  <ThomasWaldmann> ehrm
2009-08-03T16:43:02  <ThomasWaldmann> check that, if that still is true
2009-08-03T16:43:16  <dennda> i adjusted the comment you posted
2009-08-03T16:43:27  <dennda> it's true for all active mappings
2009-08-03T16:43:37  <ThomasWaldmann> http://hg.moinmo.in/moin/2.0-storage/rev/ab0a01cbab4d that looks a bit complicated
2009-08-03T16:43:56  <ThomasWaldmann> can't we just have the protected and the unprotected router available?
2009-08-03T16:44:21  <dennda> sure
2009-08-03T16:45:22  <ThomasWaldmann> that namespace mapping looks easier than the code before
2009-08-03T16:46:43  <dennda> glad we agree
2009-08-03T16:46:46  <ThomasWaldmann> where does acl() come from?
2009-08-03T16:47:07  <dennda> shortcut for acl.AclWrapperBackend
2009-08-03T16:47:07  <dennda> see a few lines above
2009-08-03T16:47:27  <ThomasWaldmann> ah it is just in the comments
2009-08-03T16:47:31  <dennda> oh?
2009-08-03T16:48:28  <dennda> ah you are reviewing an old changeset i suppose
2009-08-03T16:49:10  <ThomasWaldmann> http://hg.moinmo.in/moin/2.0-storage/rev/37cad9fbb907
2009-08-03T16:49:44  <dennda> *YOU* wrote that :D
2009-08-03T16:49:59  <ThomasWaldmann> you need to adapt it to the current state :)
2009-08-03T16:50:23  <dennda> the comments? sure
2009-08-03T16:50:28  <ThomasWaldmann> and you can also enable the Trash stuff, we already use it :)
2009-08-03T16:50:45  <dennda> do you want a seperate backend for that, btw?
2009-08-03T16:50:51  <ThomasWaldmann> yes
2009-08-03T16:50:54  <dennda> ok
2009-08-03T16:51:40  <dennda> meh
2009-08-03T16:51:45  <ThomasWaldmann> you could also mount ~ to FS :)
2009-08-03T16:52:17  <dennda> ok we will convert all of the old underlay (all languages) to the test-fs-backend
2009-08-03T16:53:04  <dennda> or rather, the complete syspages.xml thing
2009-08-03T16:53:42  <dennda> hm
2009-08-03T16:54:58  <dennda> how does preload_xml know whether it was already preloaded into the backend or not?
2009-08-03T16:55:50  <ThomasWaldmann> it could self-destruct :D
2009-08-03T16:56:26  <dennda> and then I revert the syspages.xml file every time I want to commit? :-|
2009-08-03T16:56:48  <ThomasWaldmann> i mean cfg.preload_xml <- None
2009-08-03T16:57:12  <dennda> you'd need to adjust the config file and restart the server
2009-08-03T16:57:28  <ThomasWaldmann> no
2009-08-03T16:57:44  <ThomasWaldmann> in your wikiconfig, you have preload_xml = "foo.xml"
2009-08-03T16:58:02  <dennda> yes
2009-08-03T16:58:12  <ThomasWaldmann> it detects that this is not None, sets it to None and unserializes it
2009-08-03T16:58:38  <ThomasWaldmann> next request it will be None
2009-08-03T16:58:43  <dennda> I don't know whether cfg is global, but even if it is, how does that work when the server is restarted?
2009-08-03T16:59:07  <ThomasWaldmann> ah, ok, then it would unserialize again
2009-08-03T16:59:15  <dennda> == pain
2009-08-03T16:59:27  <ThomasWaldmann> nice for memory backend, not good for persistent ones
2009-08-03T16:59:43  <ThomasWaldmann> ok, so you just have to keep that checking code I wrote
2009-08-03T16:59:53  <dennda> do you have a solution for that or can we discard the idea of having preload_xml?
2009-08-03T17:00:17  <ThomasWaldmann> and also use the None thing :)
2009-08-03T17:01:19  <dennda> it would still need to unserialize
2009-08-03T17:01:27  <dennda> but only on first request after server restart
2009-08-03T17:01:31  <dennda> that'd be ok i guess
2009-08-03T17:01:49  <dennda> actually
2009-08-03T17:02:23  <dennda> can we please have a smaller version of syspages.xml for testing? otherwise i'll be waiting ages for every first request
2009-08-03T17:04:56  <dennda> one could use a thread...
2009-08-03T17:14:48  * dennda waits for the first request to finish...
2009-08-03T17:15:53  <dennda> one *should* use a thread...
2009-08-03T17:16:45  <dennda> the funny thing is: I don't know whether it works or not because i removed the prints for mod_wsgi (to early it seems)
2009-08-03T17:16:51  <dennda> ah now it's there
2009-08-03T17:17:01  <dennda> even within firefox's connection timeout
2009-08-03T17:22:20  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6365:dbd12c42a8eb 2.0-storage/ (4 files in 3 dirs):
2009-08-03T17:22:20  <CIA-43> storage: Intoduce cfg.preloaded_xml. If this points to an xml file it will try
2009-08-03T17:22:20  <CIA-43> to deserialize it and put the contents into the wiki upon first request. Note:
2009-08-03T17:22:21  <CIA-43> No threading applied yet. Makes first request after server restart sloooooooow.
2009-08-03T17:37:53  * xorAxAx is currently reviewing alexandres commits
2009-08-03T17:43:36  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6366:9ee14a4ecf33 2.0-storage/MoinMoin/ (user.py wsgiapp.py): storage: Make the unprotected router backend available as request.unprotected_storage and use a separate thread for preloaded_xml
2009-08-03T17:57:08  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6367:59e6ce3b0e02 2.0-storage/MoinMoin/wsgiapp.py: storage: Improve comments. Avoid the overhead of spawning a thread if it is not necessary (not noticable, but it's easy to avoid).
2009-08-03T18:00:19  <ThomasWaldmann> dennda: threading is rather pointless for that
2009-08-03T18:00:34  <ThomasWaldmann> or with which pages do you want to work until it is finished?
2009-08-03T18:01:01  <dennda> syspages.xml
2009-08-03T18:01:21  <dennda> and in general you can't know what a user provides as xml file
2009-08-03T18:01:38  <dennda> besides, it was two lines of code to start a thread for that
2009-08-03T18:01:40  <ThomasWaldmann> is that a feature for users? :)
2009-08-03T18:01:51  <dennda> s/user/admin/
2009-08-03T18:02:05  * ThomasWaldmann waits for funny threadunsafety effects
2009-08-03T18:03:30  <dennda> so remove it now AND provide a smaller xml file that does not allow me to make a coffee while it finishes, or remove it when it happens?
2009-08-03T18:06:27  <ThomasWaldmann> you can make those yourself, too :)
2009-08-03T18:06:56  <ThomasWaldmann> just call serialize in your wikiconfig after mounting a full backend
2009-08-03T18:07:48  * xorAxAx found a few bugs
2009-08-03T18:08:18  <ThomasWaldmann> append them on the project page :)
2009-08-03T18:09:02  <dennda> i know
2009-08-03T18:09:23  <dennda> now do you want me to remove it now?
2009-08-03T18:12:39  <ThomasWaldmann> threading? well, as long as it doesn't blow up, you can keep it.
2009-08-03T18:13:19  <ThomasWaldmann> ah, you improved the detection code :)
2009-08-03T18:13:29  <ThomasWaldmann> yes, that makes more sense
2009-08-03T18:13:53  <xorAxAx> waldi: please ensure that amartani submits clean commits, i found many unclean ones
2009-08-03T18:14:14  <xorAxAx> waldi: --> atomicity and locality must be correct
2009-08-03T18:27:10  <ThomasWaldmann> xorAxAx: why is an edit conflict expect? do you mean if you save faster than it did the automatic sync?
2009-08-03T18:27:46  * ThomasWaldmann refers to http://moinmo.in/4ct10n/diff/RealTimeEditing2009?action=diff&date=1249300540000000
2009-08-03T18:28:36  <xorAxAx> at least i lost data
2009-08-03T18:28:50  <xorAxAx> one browser wasnt syncing anymore
2009-08-03T18:29:03  <ThomasWaldmann> i lost also data when playing, but I can't make sense of that sequence and why it should give a conflict
2009-08-03T18:29:19  <ThomasWaldmann> ah
2009-08-03T18:29:44  <xorAxAx> because it stopped with save and continue which didnt save
2009-08-03T18:29:53  <xorAxAx> that button is not really clear to me
2009-08-03T18:30:20  <ThomasWaldmann> well, it is if you want to save and continue editing :)
2009-08-03T18:30:38  <ThomasWaldmann> currently, you have to click on edit link again to do that
2009-08-03T18:31:02  <xorAxAx> ah, so it is unrelated to mobwrite?
2009-08-03T18:31:20  <ThomasWaldmann> well, I guess it makes even more sense with mobwrite
2009-08-03T18:31:29  <xorAxAx> indeed
2009-08-03T18:31:35  <ThomasWaldmann> not sure how it exactly is implemented
2009-08-03T19:01:30  <dennda> 207 failed tests currently X-)
2009-08-03T19:25:46  <ThomasWaldmann> O.O
2009-08-03T19:29:46  *** grzywacz has joined #moin-dev
2009-08-03T19:49:00  <dimazest> dreimark: does this loop http://hg.moinmo.in/moin/1.9-xapian-dmilajevs/file/af698a181b01/MoinMoin/search/queryparser.py#l482 find a XFT term and makes query for it with weight 100?
2009-08-03T20:17:24  <dreimark> me wonders why it doesn't break directly afterwards
2009-08-03T20:17:35  <dreimark> dimazest: ^
2009-08-03T20:22:29  <CIA-43> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6368:f96578042635 2.0-storage/MoinMoin/ (5 files in 4 dirs): storage: First bunch of test fixes after recent restructuring
2009-08-03T20:32:21  <dimazest> dreimark: there is if self.use_re:
2009-08-03T20:37:12  <dreimark> break should "break" in this case the for loop
2009-08-03T20:38:26  <dreimark> and it does it at the next increment when it has set found=True
2009-08-03T20:41:14  <dreimark> every fulltitle gets a weight of 100
2009-08-03T20:41:48  <dreimark> the else of self.use_re looks like the text search.
2009-08-03T20:44:23  <dreimark> in title (sorry missed that)
2009-08-03T20:44:24  <dimazest> dreimark: i think found is not needed there (but if there are several XFT: terms
2009-08-03T20:46:44  <dimazest> and what is term[4:]?
2009-08-03T20:47:40  <dimazest> may be it gets all the XFT terms, like XFT:Moin, XFT:SomePage
2009-08-03T20:48:01  <dimazest> so it gets list of all fulltitles in the index
2009-08-03T20:48:28  <dreimark> yes it cuts off the XFT: prefix
2009-08-03T20:48:48  <dimazest> then if it satisfies self.search_re, it is included to the query
2009-08-03T20:56:17  <dreimark> and gets a high weight because by a regex it is much better matched as by comparing words of the title
2009-08-03T20:57:42  <dreimark> (stemming is not used for the regex case)
2009-08-03T21:06:20  <dreimark> wtf noscrit extension makes trouble
2009-08-03T21:06:25  <dreimark> +p
2009-08-03T21:34:28  <CIA-43> Dmitrijs Milajevs <dimazest@gmail.com> default * 4931:2f16bd87444d 1.9-xapian-dmilajevs/MoinMoin/search/Xapian.py: Xapian2009: Files and attachments are indexed using xappy.
2009-08-03T21:34:30  <CIA-43> Dmitrijs Milajevs <dimazest@gmail.com> default * 4932:eb5644419456 1.9-xapian-dmilajevs/MoinMoin/search/ (Xapian.py _tests/test_search.py): Xapian2009: pagename field now is sortable. test_search.py pep8 fixes, TestSearch is done for both Moin and Xapian searchers.
2009-08-03T23:04:36  <CIA-43> Reimar Bauer <rb.proj AT googlemail DOT com> default * 4354:c8be59640927 1.8/MoinMoin/action/revert.py: action revert: avoids reverting to a deleted current revision
2009-08-03T23:38:02  *** tpfennig has joined #moin-dev

MoinMoin: MoinMoinChat/Logs/moin-dev/2009-08-03 (last edited 2009-08-02 22:30:02 by IrcLogImporter)