2009-08-08T00:21:25  *** grzywacz has quit IRC
2009-08-08T02:40:45  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6549:c2f33a8e8523 2.0-storage-editor-amartani/MoinMoin/support/python_compatibility.py: support: fix simplejson import
2009-08-08T02:40:47  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6550:2630f28193f5 2.0-storage-editor-amartani/MoinMoin/ (2 files in 2 dirs): Real-time editor: update hidden revision number when fetch update.
2009-08-08T04:50:09  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6551:a5f5300a155c 2.0-storage-editor-amartani/MoinMoin/action/ajax_info.py: Real-time editor: save text using ajax_info action
2009-08-08T04:50:12  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6552:3c7e023634ec 2.0-storage-editor-amartani/MoinMoin/web/static/htdocs/common/js/text_editor.js: Real-time editor: use updateInfo to save text.
2009-08-08T04:50:13  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6553:82dc576d21f5 2.0-storage-editor-amartani/MoinMoin/action/ajax_info.py:
2009-08-08T04:50:13  <CIA-38> Real-time editor: ajax_info action check for meta_text to know when to save
2009-08-08T04:50:13  <CIA-38> fix mobwrite save, as it sends no data_text
2009-08-08T04:50:15  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6554:ff864c7da067 2.0-storage-editor-amartani/MoinMoin/web/static/htdocs/ (2 files in 2 dirs): Real-time editor: Simplify many javascript code using jquery and fix saving when mobwrite is on.
2009-08-08T05:08:35  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6555:1b5ee71e62e7 2.0-storage-editor-amartani/MoinMoin/web/static/htdocs/applets/Mobwrite/mobwrite_moinmoin.js: Real-time editor: specify function to unbind.
2009-08-08T06:34:45  *** TheSheep has quit IRC
2009-08-08T06:39:54  *** TheSheep has joined #moin-dev
2009-08-08T07:56:09  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6556:d7323f894ac7 2.0-storage-editor-amartani/MoinMoin/ (2 files in 2 dirs): Real-time editor: css improvements
2009-08-08T07:56:11  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6557:b02407f81ac0 2.0-storage-editor-amartani/MoinMoin/ (3 files in 3 dirs): Real-time editor: Correct ids changed on last commit
2009-08-08T07:56:14  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6558:494591231040 2.0-storage-editor-amartani/MoinMoin/items/lock.py: Real-time editor: list_editors method on ItemLock
2009-08-08T07:56:16  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6559:838bb4e357dc 2.0-storage-editor-amartani/MoinMoin/action/ajax_info.py: Real-time editor: send editors list on ajax_info.
2009-08-08T07:56:17  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6560:57142a0606f8 2.0-storage-editor-amartani/MoinMoin/ (3 files in 3 dirs): Real-time editor: Fetch and display list of editors using updateInfo.
2009-08-08T07:56:19  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6561:9ce2c2fb891c 2.0-storage-editor-amartani/MoinMoin/web/static/htdocs/applets/Mobwrite/mobwrite_moinmoin.js: Real-time editor: remove getEditors method, use updateInfo instead.
2009-08-08T08:04:31  <CIA-38> Alexandre Martani <amartani AT gmail DOT com> default * 6562:1d44c67bb34a 2.0-storage-editor-amartani/MoinMoin/web/static/htdocs/applets/Mobwrite/mobwrite_moinmoin.js: replace \t for spaces
2009-08-08T09:03:47  <dennda> hu
2009-08-08T09:05:15  * dennda has never before seen that error message
2009-08-08T09:16:34  <ThomasWaldmann> moin
2009-08-08T09:17:21  <ThomasWaldmann> i didn't even find out what exactly happens, but I suspect some out-of-file-handles or similar condition
2009-08-08T09:17:54  <ThomasWaldmann> i can reproduce it easily
2009-08-08T09:19:21  <ThomasWaldmann> ah, one thing i found out: maybe it is really a 0 byte long file at that moment.
2009-08-08T09:28:05  <ThomasWaldmann> dennda: btw, did that \n patch work?
2009-08-08T09:39:57  <dennda> well
2009-08-08T09:40:08  <dennda> it didn't make my machiene explode
2009-08-08T09:40:12  <dennda> serialization still wroks
2009-08-08T09:40:14  <dennda> works*
2009-08-08T09:40:20  <dennda> and it has some linebreaks
2009-08-08T09:40:48  <dennda> still not pretty, but much better
2009-08-08T09:41:11  <dennda> (i.e., every line's content starts at pos 0)
2009-08-08T09:42:01  <dennda> so I guess the answer is "yes"
2009-08-08T09:44:11  <CIA-38> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6480:3ddadd31fc49 2.0-storage/MoinMoin/storage/serialization.py: storage: When serializing, add at least some \n
2009-08-08T09:46:28  <dennda> argh
2009-08-08T09:50:08  <dennda> ThomasWaldmann: Well your tests break now, obviously... :-)
2009-08-08T10:08:25  <dreimark> moin
2009-08-08T10:08:30  <dreimark> dimazest: http://moinmo.in/4ct10n/edit/MoinMoinQuestions/Administration
2009-08-08T10:08:43  <dreimark> please answer this question at the bottom
2009-08-08T10:11:16  <dennda> py.test --fulltrace doesn't really do what it says
2009-08-08T10:12:36  <dennda> it's not really predictable where the whitespace is added
2009-08-08T10:48:22  *** TheSheep_ has joined #moin-dev
2009-08-08T10:52:48  *** grzywacz has joined #moin-dev
2009-08-08T11:02:58  <CIA-38> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6481:7fb82d4d9531 2.0-storage/MoinMoin/storage/_tests/test_serialization.py: storage: Fix serialization tests by inserting \n characters.
2009-08-08T11:03:56  *** TheSheep has quit IRC
2009-08-08T11:38:15  <dreimark> dimazest: :) btw.  -- 127.0.0.1 <<DateTime(2009-08-08T22:00:02Z)>> gives the signature at Save
2009-08-08T11:41:48  <dimazest> dreimark: thank you, i was thinking how to make it...
2009-08-08T11:44:56  <dimazest> dennda: if i fix that groups broken test in 1.9 is it ok?
2009-08-08T11:46:09  <dennda> dimazest: yes
2009-08-08T11:46:24  <dimazest> dreimark: there is another request according search http://moinmo.in/FeatureRequests/XapianMimeTypeSearchAndFindPageForm
2009-08-08T11:46:24  <dennda> but please fix it in 1.9 and not in your 1.9-... own branch
2009-08-08T11:46:43  <dennda> well at least I hope it's ok then
2009-08-08T11:46:46  <dennda> but I think so
2009-08-08T11:47:17  <dennda> ThomasWaldmann: I added my thoughts on rename to the wikipage: http://moinmo.in/4ct10n/info/Storage2009?action=diff&rev2=80&rev1=79
2009-08-08T11:47:33  <dimazest> i messed up with inheritance in the test classes
2009-08-08T11:47:40  <dennda> aha
2009-08-08T11:47:56  <dennda> well if it's the same fix for 1.9 and 2.0, fix it in 1.9 so we can pull it up into 2.0
2009-08-08T11:48:10  <dennda> if it's different for 2.0, we need a separate fix
2009-08-08T11:48:16  <dennda> we'll see :-)
2009-08-08T11:48:38  <dennda> (just make sure to do it in 1.9 and not your own branch)
2009-08-08T11:51:29  <dimazest> dreimark: does "language:en" search work in 1.9?
2009-08-08T11:54:00  <dreimark> the fix needs to be done in 1.9 because that will be merged later to 2.0
2009-08-08T11:55:47  * dreimark tries
2009-08-08T11:56:25  <dreimark> dimazest: do you a title search script which depends only on xappy and not on the moin querry stuff?
2009-08-08T11:59:54  <dennda> ThomasWaldmann: I'm not sure if it's a good idea to keep the xml like that (since xml is whitespace aware)
2009-08-08T12:03:46  <dimazest> dreimark: just in general, for example this search returns nothing on moinmo.in
2009-08-08T12:04:38  <dimazest> and on the fresh 1.9 clone it doesnt work either
2009-08-08T12:05:02  <dennda> search is in general a bit broken in moin imho
2009-08-08T12:05:14  <dennda> search multiple times for the same phrase, get different results
2009-08-08T12:14:33  <dreimark> dennda: e.g.
2009-08-08T12:16:29  <dreimark> dimazest: http://moinmo.in/FindPage?action=fullsearch&advancedsearch=1&and_terms=&or_terms=moinmoin&not_terms=&mtime=&categories=&language=en&language=en&mimetype=
2009-08-08T12:17:10  <dennda> why does that url have to be that lengthy anyways? most of variables are ''
2009-08-08T12:17:20  <dreimark> AND seems to make trouble
2009-08-08T12:17:37  <dreimark> dennda: fine tuning comes laster
2009-08-08T12:17:47  <dennda> :-)
2009-08-08T12:18:34  <dimazest> dreimark: why it it en,en? probably HelpOnSearching should mention that
2009-08-08T12:19:37  <dreimark> I guess it is false implemented and not false described
2009-08-08T12:22:32  <dimazest> dreimark: does coverage for py.test work for you?
2009-08-08T12:26:13  <CIA-38> Dmitrijs Milajevs <dimazest@gmail.com> default * 4937:9f9a1dca5de5 1.9/MoinMoin/datastruct/backends/_tests/test_lazy_config_groups.py: TestLazyConfigGroups was fixed. It was inherited from a wrong superclass.
2009-08-08T12:26:15  <CIA-38> Dmitrijs Milajevs <dimazest@gmail.com> default * 4938:ba2306094975 1.9/MoinMoin/datastruct/backends/_tests/test_lazy_config_groups.py: Automated merge with http://hg.moinmo.in/moin/1.9
2009-08-08T12:32:51  <dreimark> dimazest: I call it coverage -x $(which py.test)
2009-08-08T12:33:06  <dreimark> coverage.py -rm -o /usr,/var
2009-08-08T12:33:19  <dreimark> shows me TOTAL                                                         38326  21886    57%
2009-08-08T12:34:37  <dreimark> ehem,  coverage -rm -o /usr,/var
2009-08-08T12:39:06  <dennda> how is that measured by the way?
2009-08-08T12:39:36  <dreimark> currently I run it on 2.0-storage I do pastebin the result
2009-08-08T12:40:23  <dreimark> dennda: http://nedbatchelder.com/code/coverage/cmd.html
2009-08-08T12:43:01  <dennda> dreimark: I see. And then you run tests with coverage and if you get 100% that's an indicator that there's not much untested code?
2009-08-08T12:44:09  <dreimark> http://moinmo.in/ReimarBauer?action=AttachFile&do=view&target=coverage_2.0.txt
2009-08-08T12:44:51  <dreimark> e.g. MoinMoin/items/sendcache                                         76     24    31%   66-70, 79-82, 85, 88-90, 94-96, 120-151, 163-172, 179-180, 184, 188-189, 193-194
2009-08-08T12:45:28  <dreimark> 76 Stmts, 24 Exec 31% Cover
2009-08-08T12:45:42  <dreimark> the rest are Missing
2009-08-08T12:45:55  <dreimark> you see which lines aren't covered
2009-08-08T12:46:12  <dennda> nice
2009-08-08T12:46:26  <dennda> storage is quite well covered
2009-08-08T12:46:27  <dennda> afaict
2009-08-08T12:47:10  <dreimark> enduser gives a  CoverageException:
2009-08-08T12:47:20  <ThomasWaldmann> re
2009-08-08T12:47:21  <dennda> enduser isn't even there anymore
2009-08-08T12:47:34  <dreimark> ah seems I have to clean up my working dir
2009-08-08T12:47:37  <dennda> dreimark: I guess you need to clean coverage's cache
2009-08-08T12:47:46  <dreimark> right
2009-08-08T12:48:15  <dreimark> dimazest: is module this implemented in 1.0.0b ?
2009-08-08T12:49:51  <dreimark> + coverage
2009-08-08T12:49:58  <dreimark> -this
2009-08-08T12:53:04  <dennda> dreimark: How do I run it so that it runs the storage tests and checks those against the code that is in the storage module only?
2009-08-08T12:54:12  <dennda> ThomasWaldmann: http://screens.ufsoft.org/category/Flickzeug/image/leakfinder.png
2009-08-08T12:54:17  <dennda> that thing is getting more and more cool
2009-08-08T12:58:19  <waldi> dennda: ui
2009-08-08T13:01:10  <dreimark> dennda: you could give the name of the test you want to run
2009-08-08T13:01:13  <dreimark> e.g. coverage -x $(which py.test) test_config_dicts.py
2009-08-08T13:01:45  <dennda> well I want to run all storage tests of course :-)
2009-08-08T13:03:02  <dreimark> then you run it from within tat dir without giing a file
2009-08-08T13:03:16  <dennda> ah
2009-08-08T13:03:43  <dimazest> dreimark: no, but i think a month age it was possible to write py.test -C
2009-08-08T13:04:07  <dimazest> -C is a coverage plugin provided by moin, as was written in py.test --help
2009-08-08T13:04:14  <dennda> hm I don't quite get it %-)
2009-08-08T13:08:16  <dimazest> dreimark: language search needs coma http://hg.moinmo.in/moin/1.9-xapian-dmilajevs/file/0603dfa4cc49/MoinMoin/search/queryparser.py#l673
2009-08-08T13:09:00  <dimazest> should i cahnge that code, to be consistent with docs?
2009-08-08T13:13:50  <ThomasWaldmann> dennda: 11:47 (about your ideas on the wikipage): how about rw src and cw dst without leaving an item/rev at src?
2009-08-08T13:14:57  <ThomasWaldmann> (imho that leaving stuff behind sucks, e.g. if you have a typo in the name and you fix that by rename, you'ld always have those crap items)
2009-08-08T13:16:37  <ThomasWaldmann> (in my suggested approach, one of the w perms would be just checked, not really used.)
2009-08-08T13:17:59  <dennda> ThomasWaldmann: exactly what i was thinking
2009-08-08T13:18:10  <ThomasWaldmann> (what we in fact do, when just looking at src, is to destroy, but otoh, the stuff lives on at dst, so requiring destroy is too much)
2009-08-08T13:18:25  <dennda> we don't need destroy here
2009-08-08T13:18:43  <dennda> except for inter backend renames
2009-08-08T13:19:03  <ThomasWaldmann> it is for the general case which includes inter backend
2009-08-08T13:19:05  <dennda> for intra backend renames it's just item.rename() checking for rw src and wc dest
2009-08-08T13:19:45  <dennda> we won't be checking destroy of course
2009-08-08T13:20:06  <ThomasWaldmann> ok, i guess we go for rw/wc (at least that makes more sense than w/w)
2009-08-08T13:20:12  <dennda> otherwise everybody who should be able to rename could also just destroy src without having the content live on somewhere else
2009-08-08T13:20:38  <dreimark> dimazest: yes, please fix that bug
2009-08-08T13:21:07  <dennda> I'd like to note for the record that 'create' is a capability that doesn't make sense to put on an item. It should only appear in before/default/after
2009-08-08T13:21:42  <ThomasWaldmann> dennda: as admin you can steer trashbin usage with that: just not give people wc there, then they can't trash stuff
2009-08-08T13:21:54  <dreimark> dimazest: cool I have missed that py.test plugin
2009-08-08T13:22:26  <dennda> yes
2009-08-08T13:22:49  <dennda> they can still rename it to MyPrivateTrash/ but that's a) likely the same backend and b) will show up in RC
2009-08-08T13:23:36  <ThomasWaldmann> and also, someone without c in the current namespace can't rename, that also makes sense
2009-08-08T13:24:02  <dennda> yes
2009-08-08T13:24:07  <dennda> this needs to be properly documented
2009-08-08T13:24:10  <ThomasWaldmann> dennda: so please fix that and include the ideas why that is so in a docstring
2009-08-08T13:24:19  <dennda> or it will cause massive confusion :-)
2009-08-08T13:24:26  <dennda> will do
2009-08-08T13:29:43  <ThomasWaldmann> dennda: 11:59 what do you mean? the whitespace i added is just between the closing and opening tags. so it is not within some element where the data is.
2009-08-08T13:31:33  <dennda> yes, but afaik the parser still needs to be able to handle that. (i tried serialize & unserialize and it both worked. so if you think the two serialization changesets are ok, it's fine)
2009-08-08T13:31:44  <dennda> it's been a loooong time since I last dealt with xml :-)
2009-08-08T13:32:46  <ThomasWaldmann> i am not completely sure what it does with the lf on unserialize, but i guess it collects it for some element that won't use it
2009-08-08T13:33:39  <ThomasWaldmann> (that general problem was the reason why i didnt add the lf in the first place)
2009-08-08T13:35:16  <dennda> well, we'll see if someone complains :D
2009-08-08T13:36:15  <ThomasWaldmann> dennda: about flickzeug: as soon as the guys think they can release a first version of it, I guess we'll include that.
2009-08-08T13:37:46  <dennda> you want to ship it?
2009-08-08T13:40:29  <ThomasWaldmann> that can be decided when creating the release
2009-08-08T13:41:44  <ThomasWaldmann> dimazest: so you tested the test fix in 2.0 (and 1.9) before committing it to 1.9?
2009-08-08T13:43:43  <dreimark> http://www.an-online.de/fm/3277/unwetter2.jpg (yesterday)
2009-08-08T13:45:41  <dennda> ThomasWaldmann: What should happen if the target of the rename already exists? Issue UI merge?
2009-08-08T13:48:54  <dennda> (do we still ask for create if target already exists? i think yes)
2009-08-08T13:49:01  <dreimark> bbl
2009-08-08T13:50:06  <ThomasWaldmann> dennda: i guess it will raise an exception on the storage layer and the UI layer will tell that this doesn't work because the target exists.
2009-08-08T13:50:50  <dennda> ok then we agree
2009-08-08T13:51:32  <ThomasWaldmann> http://news.bbc.co.uk/2/hi/asia-pacific/8190071.stm java kills!
2009-08-08T13:51:58  <dennda> and we don't need to NOT check for create then I think
2009-08-08T13:54:19  <ThomasWaldmann> are you sure you don't want to not do that? :P
2009-08-08T13:56:14  <dennda> is that a technical argument or just nitpicking about the double negation? :D
2009-08-08T13:56:58  <ThomasWaldmann> the latter
2009-08-08T13:58:17  <dimazest> ThomasWaldmann: yes, i pulled changes from 1.9
2009-08-08T14:00:21  <ThomasWaldmann> dimazest: and?
2009-08-08T14:01:12  <dimazest> ThomasWaldmann: no failing tests
2009-08-08T14:02:12  <ThomasWaldmann> ok
2009-08-08T14:02:21  <ThomasWaldmann> thanks for fixing that
2009-08-08T14:17:17  <dimazest> :)
2009-08-08T14:24:51  <ThomasWaldmann> dennda: http://pastebin.com/f293b81b6 that makes storage crash in strange ways here on the 2nd request
2009-08-08T14:25:04  <dimazest> ThomasWaldmann: is it possible to get language of a page but not using regexp?
2009-08-08T14:25:49  <ThomasWaldmann> you mean #language value?
2009-08-08T14:26:05  <dennda> will take a look
2009-08-08T14:26:07  <dennda> just a sec
2009-08-08T14:29:11  *** y84 has joined #moin-dev
2009-08-08T14:29:20  <dimazest> ThomasWaldmann: yes
2009-08-08T14:30:24  <CIA-38> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6482:2ede9130be45 2.0-storage/MoinMoin/storage/backends/acl.py: storage: 'rename' privilege == read&write source + write&create destination
2009-08-08T14:30:40  <dennda> ThomasWaldmann: How do I best apply the diff?
2009-08-08T14:30:58  <ThomasWaldmann> with patch?
2009-08-08T14:31:18  <dennda> ah yeah that thing
2009-08-08T14:32:40  <dennda> $ patch -p0 < thomas_patch
2009-08-08T14:32:40  <dennda> patch: **** Only garbage was found in the patch input.
2009-08-08T14:32:41  <dennda> :D
2009-08-08T14:32:53  <ThomasWaldmann> hehe
2009-08-08T14:33:20  <dennda> i guess I need to read that bloody manpage
2009-08-08T14:33:21  <ThomasWaldmann> if you are in the toplevel dir, it is patch -p1 < foo
2009-08-08T14:33:25  <dennda> ah
2009-08-08T14:33:38  <dennda> still the same
2009-08-08T14:33:56  <dennda> $ pwd
2009-08-08T14:33:57  <dennda> /home/dennda/dev/py/moin/2.0-storage
2009-08-08T14:34:13  <ThomasWaldmann> you did use the raw content and not html?
2009-08-08T14:34:29  <dennda> of course...
2009-08-08T14:34:39  <dennda> from the textarea below the paste
2009-08-08T14:35:03  <ThomasWaldmann> try download link
2009-08-08T14:35:49  <dennda> ah
2009-08-08T14:35:50  <dennda> that worked
2009-08-08T14:36:21  <dennda> there's some @@ too much
2009-08-08T14:37:04  <dennda> that doesn't even work for the first request here
2009-08-08T14:38:41  <dennda> ThomasWaldmann: Looks like an fs bug to me. with memory it works
2009-08-08T14:38:48  <ThomasWaldmann> does it crash due to a zero length file?
2009-08-08T14:39:39  <dennda> it only crashes when accessing an existing item
2009-08-08T14:39:42  <dennda> foooasdasdasd works
2009-08-08T14:40:08  <dennda> http://paste.pocoo.org/show/133145/
2009-08-08T14:40:18  <ThomasWaldmann> the strange thing is, if you look at that file (after the crash), it is not zero length
2009-08-08T14:40:20  <dennda> looks like
2009-08-08T14:40:52  <dennda> it is while the wikiserver is still running
2009-08-08T14:41:02  <dennda> if you quit the wikiserver (with ^C) it gets content
2009-08-08T14:41:37  <ThomasWaldmann> hah
2009-08-08T14:42:48  <ThomasWaldmann> ok, I'll look for some flushing
2009-08-08T14:43:44  <dennda> that's likely missing, yeah
2009-08-08T14:58:31  *** tpfennig has joined #moin-dev
2009-08-08T14:58:37  <dennda> ThomasWaldmann: btw wrt content_acl: That's not hardcoded. We already use params for that.
2009-08-08T15:02:50  <ThomasWaldmann> yay
2009-08-08T15:03:12  * ThomasWaldmann fixed a fs.py bug
2009-08-08T15:05:14  <dennda> not bad
2009-08-08T15:05:23  <dennda> that stuff is magical to me
2009-08-08T15:05:26  <dennda> :-)
2009-08-08T15:10:22  <ThomasWaldmann> as you'll see in the patch I already have added some XXX there a while ago. It just didn't show abnormal behaviour until yesterday, so I didn't fix what didn't show brokenness symptoms.
2009-08-08T15:11:14  <dennda> "fixing on demand"
2009-08-08T15:12:17  *** vinci_ has joined #moin-dev
2009-08-08T15:25:08  <ThomasWaldmann> "don't fix what aint broken"
2009-08-08T15:26:08  <dennda> "what you don't want to be fixed for you, you shouldn't fix for others"
2009-08-08T15:30:27  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6483:c68c54f8a938 2.0-storage/MoinMoin/storage/backends/fs.py: fs backend: fix bug that revision file was not closed when metadata space needed to be extended
2009-08-08T15:30:28  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6484:d1c5c584a719 2.0-storage/MoinMoin/ (storage/__init__.py wsgiapp.py): unserialization: add MODE_UPDATE support that just unserializes to next free revision, change preload_xml to work correctly with it
2009-08-08T15:30:31  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6485:1b1e5b6878b0 2.0-storage/MoinMoin/storage/ (3 files in 3 dirs): merge main
2009-08-08T15:30:43  * dennda pulls
2009-08-08T15:31:38  *** tpfennig has quit IRC
2009-08-08T15:34:54  * ThomasWaldmann merged 1.9
2009-08-08T15:35:51  <dennda> ThomasWaldmann: why do you unserialize twice?
2009-08-08T15:36:04  <ThomasWaldmann> because it doesn't work else
2009-08-08T15:36:41  <dennda> why? (should that be done above the try/except?)
2009-08-08T15:37:25  <ThomasWaldmann> yes, the counting could be optimized
2009-08-08T15:37:40  <ThomasWaldmann> but you still need to call unserialize with the real backend again
2009-08-08T15:37:50  <dennda> and you never clone?
2009-08-08T15:37:51  <ThomasWaldmann> btw, wait a sec until after my next push
2009-08-08T15:38:14  <dennda> ok
2009-08-08T15:38:34  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6488:7a291e8f56a1 2.0-storage/MoinMoin/datastruct/backends/_tests/test_lazy_config_groups.py: merged moin/1.9
2009-08-08T15:38:49  <ThomasWaldmann> 0 failures here
2009-08-08T15:39:31  <ThomasWaldmann> i'll fix the duplication
2009-08-08T15:40:09  <dennda> pull is taking ages
2009-08-08T15:42:02  <dennda> something's wrong with my hg
2009-08-08T15:42:33  * dennda clones again
2009-08-08T15:46:45  <dennda> the repo is SO fat
2009-08-08T15:48:53  <ThomasWaldmann> yeah, that's because of underlay
2009-08-08T15:49:38  <ThomasWaldmann> esp. when done as .gz or zip
2009-08-08T15:51:48  <dennda> still cloning at dsl 20k :)
2009-08-08T15:52:00  <ThomasWaldmann>   File "/home/tw/w/mm20storage/MoinMoin/action/language_setup.py", line 18, in <module>
2009-08-08T15:52:03  <ThomasWaldmann>     from MoinMoin.action import AttachFile
2009-08-08T15:56:37  <dennda> hm perhaps a karmic mercurial upgrade killed my hg
2009-08-08T15:59:22  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6489:87759be18ef0 2.0-storage/MoinMoin/wsgiapp.py: optimize preload_xml
2009-08-08T15:59:39  * ThomasWaldmann uses 1.3.1
2009-08-08T16:01:16  <dennda> ah no works again. just took ages :-)
2009-08-08T16:04:40  <dennda> 0 failures confirmed
2009-08-08T16:04:43  <dennda> great :-)
2009-08-08T16:07:27  *** vinci__ has joined #moin-dev
2009-08-08T16:07:45  *** vinci__ is now known as tpfennig
2009-08-08T16:19:08  <ThomasWaldmann> dennda: ok, so now tests work, dev wiki works, how about $NORMALUSER coming from 1.9?
2009-08-08T16:23:11  <dennda> $NORMALUSER sets old_instance_path = /path/to/old/instance, runs moin --config-dir=/where/the/config/is migration backend and is done
2009-08-08T16:23:57  <dennda> that's the simplest case if no special mapping is set up but a default is used
2009-08-08T16:25:04  *** vinci_ has quit IRC
2009-08-08T16:25:57  <ThomasWaldmann> and if a special mapping is wanted?
2009-08-08T16:27:14  <ThomasWaldmann> there shouldn't be anything else except that he has to setup his special mapping then
2009-08-08T16:27:32  <dennda> correct
2009-08-08T16:27:44  <dennda> That's the way it already is
2009-08-08T16:27:48  <ThomasWaldmann> ok, syspages procedure?
2009-08-08T16:28:53  <dennda> you get the xml file from moinmo.in and do one of the following: a) set preload_xml and run the wikiserver and issue a request, b) use the upgrade_syspages UI
2009-08-08T16:30:06  <ThomasWaldmann> what xml file? :)
2009-08-08T16:30:32  * ThomasWaldmann just tries to create some consciousness of todo
2009-08-08T16:30:35  <dennda> The file that somebody (== you) created from moinmaster (running 2.0) with the maintenance scripts and put somewhere so users can download it
2009-08-08T16:30:56  <ThomasWaldmann> how do I create the file?
2009-08-08T16:31:08  <dennda> assuming moinmaster is converted to 2.0:
2009-08-08T16:31:57  <dennda> moin --config-dir=. maint meta --key="is_syspage" --value="True"
2009-08-08T16:32:08  <dennda> moin --config-dir=. maint meta --key="syspage_version" --value="1"
2009-08-08T16:32:24  <dennda> moin --config-dir=. maint reducewiki
2009-08-08T16:32:40  <dennda> moin --config-dir=. migration xml --save --file="syspages_1.xml"
2009-08-08T16:32:50  <dennda> (the latter is still below migration. forgot that)
2009-08-08T16:33:41  <ThomasWaldmann> i run reducewiki on moinmaster?
2009-08-08T16:33:52  <dennda> yeah that's a bit odd %-)
2009-08-08T16:34:16  <dennda> i guess xml needs an option --only_latest
2009-08-08T16:34:31  <dennda> which only takes the most recent revisions into consideration
2009-08-08T16:34:35  <ThomasWaldmann> yeah
2009-08-08T16:35:20  <ThomasWaldmann> and also we do not want to have ALL pages in the xml, so packagepages needs a rewrite
2009-08-08T16:35:59  <dennda> you can provide a regex, but that doesn't help here
2009-08-08T16:36:07  <dennda> unless you got some really decent regex skills :-)
2009-08-08T16:36:32  <ThomasWaldmann> but assuming we have those 100 xml files somehow, what happens then?
2009-08-08T16:37:13  <dennda> you put them on some page for download i guess
2009-08-08T16:37:44  <ThomasWaldmann> and then you download all of them and feed them one by one, each requiring a config change, into your wiki?
2009-08-08T16:37:54  <dennda> why would you want all of them?
2009-08-08T16:38:02  <dennda> aren't we talking about different languages?
2009-08-08T16:38:08  <ThomasWaldmann> ok, maybe not all, but lets say 20
2009-08-08T16:38:22  <dennda> 20 different languages?
2009-08-08T16:38:42  <ThomasWaldmann> no, but have a look at i18n.strings
2009-08-08T16:38:56  <ThomasWaldmann> there are different sets times different languages
2009-08-08T16:39:31  <dennda> aha
2009-08-08T16:39:40  <ThomasWaldmann> so, if you want to support a few (4?) languages, you can easily get 20 sets
2009-08-08T16:39:52  <dennda> xml --load --from-folder=/my/syspage/folder
2009-08-08T16:40:00  <dennda> ?
2009-08-08T16:40:22  <ThomasWaldmann> how does that help?
2009-08-08T16:40:34  <dennda> you don't need to change the path every time
2009-08-08T16:41:02  <dennda> you need to download them anyway, don't you?
2009-08-08T16:41:27  <ThomasWaldmann> just for comparison: in 1.9 you need 1 mouseclick per package
2009-08-08T16:41:50  <dennda> and how is that realized?
2009-08-08T16:42:29  <ThomasWaldmann> with language_setup action
2009-08-08T16:45:24  <dennda> so that needs to be fixed
2009-08-08T16:45:47  <ThomasWaldmann> also, the xml thing shouldn't be under migration, I already noted that...
2009-08-08T16:46:24  <dennda> yeah as I said: i forgot to change that
2009-08-08T16:46:38  <ThomasWaldmann> ehrm, yeah :)
2009-08-08T16:47:24  <ThomasWaldmann> btw, another procedure would be, if unserialize could be more selective
2009-08-08T16:48:23  <ThomasWaldmann> like "only unserialze pagenames in set foo if language equals "de")
2009-08-08T16:49:06  <dennda> I don't know how I'd do that or whether it's easily possible. unserialize is your area of expertise :-)
2009-08-08T16:52:10  <ThomasWaldmann> ok, so we can either be selectice at serialization time and create different files (that's almost implemented), or be selective at unserialization
2009-08-08T16:53:06  <ThomasWaldmann> except the amount of xml files involved and that selective unserialization is not implemented yet, it's the same
2009-08-08T16:53:30  <dennda> you decide what's easier
2009-08-08T16:54:55  <ThomasWaldmann> btw support for - as filename is not implemented for load/save yet, right?
2009-08-08T16:55:30  <dennda> what is that supposed to mean?
2009-08-08T16:55:38  <dennda> the character - i mean
2009-08-08T16:56:27  <ThomasWaldmann> you are sure you're a linux user? :)
2009-08-08T16:57:23  <ThomasWaldmann> (it is usually used to tell "use stdout" (or stdin) instead of a on-disk file)
2009-08-08T16:57:56  <ThomasWaldmann> instead of using --file=- you could also just use stdin for load and stdout for save
2009-08-08T16:58:21  <dennda> well I'll be switching to mac ;)
2009-08-08T16:58:26  <dennda> j/k, no I didn't know that
2009-08-08T16:58:48  <dennda> No, that is not implemented. Do we need/want that?
2009-08-08T16:59:00  <ThomasWaldmann> you need to use more shell commands :)
2009-08-08T16:59:34  <ThomasWaldmann> well, otherwise it is hard to use with pipes or IO redirection
2009-08-08T17:00:16  <ThomasWaldmann> in fact one could rather live without --filename, because you can always use > or < for redirecting that
2009-08-08T17:00:18  <dennda> yes sure. so that is a valid usecase?
2009-08-08T17:00:32  <dennda> explicit is better than implicit :-)
2009-08-08T17:01:06  <ThomasWaldmann> IO redir is explicit
2009-08-08T17:01:43  <ThomasWaldmann> ACL privileges
2009-08-08T17:01:45  <ThomasWaldmann> * Make methods check for the proper privileges.
2009-08-08T17:01:48  <ThomasWaldmann> check?
2009-08-08T17:01:53  <dennda> i'm doing that just right now
2009-08-08T17:02:02  <dennda> found a glitch even I think
2009-08-08T17:02:15  <ThomasWaldmann> rip out all the underlay stuff -> check?
2009-08-08T17:02:39  <dennda> check
2009-08-08T17:03:12  <dennda> (you get a bunch of results with grep, but that is due to other stuff using the term or old stuff that shouldn't be touched. like CHANGES)
2009-08-08T17:05:13  <ThomasWaldmann> there should be no stuff referring to underlay except the stuff that shouldn't be touched
2009-08-08T17:06:26  <dennda> ah I've overseen two places hidden between the vast amount of crap grep output
2009-08-08T17:06:28  <dennda> will remove that
2009-08-08T17:06:39  <dennda> one place is mkpagepacks
2009-08-08T17:07:21  <dennda> the other being sitemap. i didn't know whether it's ok to remove it there since it's a value it expects in the request values
2009-08-08T17:07:55  <ThomasWaldmann> data/tmp?
2009-08-08T17:10:29  <dennda> no idea what that is for
2009-08-08T17:15:32  *** grzywacz has quit IRC
2009-08-08T17:16:32  <ThomasWaldmann> MoinMoin/_tests/data ?
2009-08-08T17:18:21  <dennda> someone decided that tests need that so I added it. no idea what it is for, that was a quick fix
2009-08-08T17:18:57  <ThomasWaldmann> well, check it and either document for what it is or remove it
2009-08-08T17:19:33  <ThomasWaldmann> there is also MoinMoin/_tests/wiki/data btw
2009-08-08T17:19:56  <CIA-38> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6490:507055e5f828 2.0-storage/MoinMoin/storage/backends/acl.py: storage: Wrap revisions returned by history just to make sure (and in order not to accidentially expose the unwrapped revision.item)
2009-08-08T17:19:57  <ThomasWaldmann> (which used to be in tests/...)
2009-08-08T17:20:14  <dennda> ok, acl looks good
2009-08-08T17:20:29  <dennda> checked all methods/associated privs
2009-08-08T17:22:41  <dennda> yes, but that is used by some tests
2009-08-08T17:48:15  <ThomasWaldmann> storage / backend_uri multiconfig stuff needs fixing
2009-08-08T17:49:19  <dennda> indeed
2009-08-08T17:49:53  <ThomasWaldmann> publish a diff before committing
2009-08-08T17:51:46  <dreimark> re
2009-08-08T17:53:03  <ThomasWaldmann> dennda: also, if backend_uri is no somehow supported cfg attrib (but just a temporary var), remove it from wikiconfig
2009-08-08T17:53:07  <ThomasWaldmann> hi dennda
2009-08-08T17:53:10  <ThomasWaldmann> hi dreimark
2009-08-08T17:53:18  <ThomasWaldmann> to many d* here
2009-08-08T17:56:46  <dreimark> dimazest: do you look for something like language = self.page.pi['language'] ?
2009-08-08T17:57:07  <dreimark> indeed ThomasWaldmann your nme has to start with the other T also for TheSheep_
2009-08-08T18:05:21  <dreimark> 2.0-storage tests finished: 2163 passed, 85 skipped in 53.35 seconds \o/
2009-08-08T18:05:57  <dennda> yeah we'll have a party tonight
2009-08-08T18:10:37  <dreimark> dennda: CHANGES.storage sounds a bit outdated or do I look at the wrong file?
2009-08-08T18:13:11  <dennda> nope it is
2009-08-08T18:13:40  <dreimark> Version 1.7.current: ??
2009-08-08T18:16:54  <dreimark> dimazest: http://moinmo.in/ReimarBauer?action=AttachFile&do=view&target=moin-1.9-xapian-dmilajevs.txt
2009-08-08T18:17:14  <dreimark> I see at the summary 4 failing tests
2009-08-08T18:17:29  <dreimark> two of them beacause of TypeError: yielded test 'title simple_test' not callable
2009-08-08T18:17:38  <dreimark> I wonder why?
2009-08-08T18:19:43  <CIA-38> Christopher Denter <moin GUESSWHAT the DASH space DASH station ROUNDTHING com> default * 6491:18d412e77c04 2.0-storage/ (4 files in 4 dirs): storage: clean up wikiconfig.py and remove folders that aren't needed
2009-08-08T18:20:45  <dreimark> ThomasWaldmann: if I use Advanced Search and and_term on 1.8 e.g.
2009-08-08T18:20:49  <dreimark> http://moinmo.in/FindPage?action=fullsearch&advancedsearch=1&and_terms=reimar&or_terms=&not_terms=&mtime=&categories=&language=&mimetype=
2009-08-08T18:21:07  <dreimark> it doesn'T look like to return results based on xapian index
2009-08-08T18:26:04  *** vinci_ has joined #moin-dev
2009-08-08T18:27:54  <dennda> hmmm
2009-08-08T18:33:40  <ThomasWaldmann> dreimark: anything against just killing cleanpage, cleancache, makecache?
2009-08-08T18:34:49  <dennda> hmmmmm
2009-08-08T18:35:00  <dennda> how do I properly provide a default for namespace_mapping?
2009-08-08T18:35:22  <dennda> ideally i would invoke create_simple_mapping and have access to the cfg
2009-08-08T18:35:39  <dennda> i tried with a lambda like in another option, but that doesn't work
2009-08-08T18:36:39  <ThomasWaldmann> maybe just don't do that and require it
2009-08-08T18:37:17  <dennda> ok, how? if I set the default to None it will crash with a traceback if it's missing. not really easily understandable then
2009-08-08T18:39:14  <ThomasWaldmann> check it in __init__ and raise a ConfigurationError if it is None
2009-08-08T18:44:31  *** vinci__ has joined #moin-dev
2009-08-08T18:45:10  *** tpfennig has quit IRC
2009-08-08T18:49:35  <dreimark> ThomasWaldmann: yes if the regex for Groups / dicts beome changed
2009-08-08T18:49:43  <dreimark> the cache need to be killed
2009-08-08T18:50:16  <dreimark> and if you use a slow system i prefer to build the cache beforehand
2009-08-08T18:51:42  <dreimark> cleanpage could be removed
2009-08-08T18:51:58  <dreimark> s/i/me/
2009-08-08T18:52:59  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6492:42b803bb9369 2.0-storage/ (62 files in 10 dirs): move sample configs and deployment scripts to docs/
2009-08-08T18:53:01  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6493:830f7cf34f36 2.0-storage/ (4 files in 4 dirs): improve naming consistency for storage directories, remove not needed directories (they are autocreated when needed)
2009-08-08T18:53:02  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6494:caa4d32b93d6 2.0-storage/MoinMoin/items/__init__.py: add a comment about wrong _save comment behaviour
2009-08-08T18:53:04  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6495:655bb1a331ce 2.0-storage/TODO: cleanup TODO
2009-08-08T18:53:05  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6496:3fe4d8fc6bab 2.0-storage/ (4 files in 2 dirs): move TODO and devel info files to docs/
2009-08-08T18:53:08  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6497:ae9faf1cb311 2.0-storage/ (MoinMoin/storage/backends/acl.py wikiconfig.py): merge main
2009-08-08T18:53:59  <ThomasWaldmann> dreimark: as all cache is in a single directory now, it is rather easy to kill it
2009-08-08T18:54:16  <ThomasWaldmann> (1.9 has stuff spread into data/pages/*/cache)
2009-08-08T18:55:05  <dreimark> there should be a command
2009-08-08T18:55:29  <ThomasWaldmann> rm -rf cache # :)
2009-08-08T18:56:00  <ThomasWaldmann> but, if you like to keep it, you could also fix it :)
2009-08-08T18:56:14  <dreimark> We know users don't and may be don't want to know much on the FS of moin
2009-08-08T18:57:04  <dennda> ThomasWaldmann: http://paste.pocoo.org/show/133172/
2009-08-08T18:57:08  <dreimark> ok, I'll fix it
2009-08-08T18:58:32  <dreimark> ThomasWaldmann: do you have looked at the AND result of my search example?
2009-08-08T18:59:00  <ThomasWaldmann> no, i was busy with cleanup
2009-08-08T18:59:00  <dennda> btw, I'll be here tomorrow a bit later than usual
2009-08-08T19:02:10  <ThomasWaldmann> a list is always ordered, but it needs to be correctly ordered
2009-08-08T19:04:11  <ThomasWaldmann> and if namespace_mapping is None, I would at least use the word "namespace_mapping" in the error msg.
2009-08-08T19:04:24  *** vinci_ has quit IRC
2009-08-08T19:05:39  <ThomasWaldmann> and instead of being verbose about how to configure namespace_mapping, you could also give a simple mapping example
2009-08-08T19:05:48  <ThomasWaldmann> and refer to the help page for more
2009-08-08T19:06:32  <ThomasWaldmann>  ('preloaded_xml', None,
2009-08-08T19:06:32  <ThomasWaldmann> 871       871     'If this points to a serialized backend (an xml file), the file is loaded into the content backend upon first request.'),
2009-08-08T19:06:47  <ThomasWaldmann> is that true or is it rather the complete storage backend?
2009-08-08T19:08:59  <dennda> complete of course
2009-08-08T19:09:04  <dennda> that string is faulty
2009-08-08T19:09:10  <dennda> ok I'll fix that tomorrow, gotta go now
2009-08-08T19:10:49  <dreimark> me 2 bbl (dinner)
2009-08-08T19:29:52  *** vinci_ has joined #moin-dev
2009-08-08T19:48:08  *** vinci__ has quit IRC
2009-08-08T19:51:17  *** vinci_ has quit IRC
2009-08-08T20:09:45  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6498:4f207dfea279 2.0-storage/ (MANIFEST.in Makefile setup.py): fix and cleanup setup.py, MANIFEST.in, Makefile
2009-08-08T20:25:38  <dimazest> dreimark: can page vahe several languages? my point was that, it is better to use properties, but not to pase a page
2009-08-08T20:25:53  <dimazest> i'll check page.pi['language']
2009-08-08T20:26:34  <ThomasWaldmann> usually there is only on language pi given on a page
2009-08-08T20:26:53  <ThomasWaldmann> and if there were multiple ones, you still would not know what part of the page is what language
2009-08-08T21:11:03  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6499:f5c9898e201c 2.0-storage/.hgignore: update .hgignore with new directory layout
2009-08-08T21:11:05  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6500:59b4a38d3faf 2.0-storage/MoinMoin/storage/backends/fs.py: fs backend: fixed/updated some comments
2009-08-08T21:26:47  <dimazest> dreimark: http://codespeak.net/py/dist/test/features.html#generative-tests-yielding-parametrized-tests but probably feature with naming test is in a later version, i'll change it
2009-08-08T21:33:17  *** devilsadvocate has quit IRC
2009-08-08T21:33:39  *** devilsadvocate has joined #moin-dev
2009-08-08T21:39:46  <PawelPacana> dimazest: generative tests with yield are considered deprecated since py.test 1.0
2009-08-08T21:40:00  <PawelPacana> http://tetamap.wordpress.com/2009/05/13/parametrizing-python-tests-generalized/
2009-08-08T22:00:03  <ThomasWaldmann> PawelPacana: if you have a bit time, could you review docs/* in 2.0-storage?
2009-08-08T22:00:33  <PawelPacana> ThomasWaldmann: sure
2009-08-08T22:05:56  * ThomasWaldmann found a fs19 bug
2009-08-08T22:45:58  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6501:af6c30a2d8bd 2.0-storage/ (6 files in 6 dirs):
2009-08-08T22:45:58  <CIA-38> cleanup EDIT_LOG_ACTION (see below)
2009-08-08T22:45:58  <CIA-38> SAVENEW is not needed (equivalent to saving rev 0).
2009-08-08T22:45:58  <CIA-38> ATT* is not needed any more (attachments in 1.9 are items in 2.0).
2009-08-08T22:45:58  <CIA-38> Thomas Waldmann <tw AT waldmann-edv DOT de> default * 6502:0fdc8d955682 2.0-storage/MoinMoin/storage/ (_tests/test_backends_fs19.py backends/fs19.py): fix fs19 backend: use latest edit-log entry for getting attachment metadata
2009-08-08T22:57:56  *** TheSheep_ is now known as TheSheep
2009-08-08T23:31:44  <dreimark> re
2009-08-08T23:46:59  <ThomasWaldmann> hmm, what do we do with deleted revisions from 1.9?
2009-08-08T23:47:19  <dreimark> TheSheep: do we think we should render the action on http://master19.moinmo.in/LanguageSetup similiar to a button?
2009-08-08T23:47:30  <dreimark> s/we/you/
2009-08-08T23:48:20  <dreimark> ThomasWaldmann: they should be revertable after the migration
2009-08-08T23:48:39  <dreimark> otherwise you leak content
2009-08-08T23:49:25  <TheSheep> dreimark: shouldn't the link show you a form with a button on it?
2009-08-08T23:49:50  <TheSheep> I mean, all actions with side effects should be done with POSTs
2009-08-08T23:50:26  <TheSheep> and it's not just the looks
2009-08-08T23:51:06  <ThomasWaldmann> dreimark: the problem is the different deletion concept in 1.9 and 2.0
2009-08-08T23:55:50  <dreimark> TheSheep: I think yes it should look like a button. do you have some css handy? I think we should change to POST in 2.0
2009-08-08T23:56:44  <TheSheep> dreimark: the problem is, buttons look differently depending on your operating system and theme
2009-08-08T23:56:51  <TheSheep> (os theme, not moin)
2009-08-08T23:57:50  <dreimark> ThomasWaldmann: it looks to me that it the mig script could read the old revisions of a page until it was deleted. then it can move it to the trash bin and continue with revision afterwards until tip
2009-08-08T23:58:20  <ThomasWaldmann> the current conversion script is based on backend cloning

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