From magnus at thinkware.se Mon Feb 3 01:50:05 2003 From: magnus at thinkware.se (Magnus Lycka) Date: Mon Feb 3 01:50:05 2003 Subject: [Moin-devel] Page Permissions In-Reply-To: <41647A6597ADD611803C005004D19FD2396FF4@MAILMAN> References: <41647A6597ADD611803C005004D19FD23DD408@MAILMAN> Message-ID: <5.1.0.14.0.20030203102613.02b08cd0@www.thinkware.se> At 11:03 2003-01-31 -0800, Nick Trout wrote: >I though wikis were supposed to be simple. Yes. Simple programs, perhaps not too simple to USE... Wikis weren't intended to be for everybody. The original wiki is certainly intended to be a forum for programmers, and it's basically considered a benefit if some people feel reluctant to contribute. See http://c2.com/cgi/wiki?WhyWikiWorks If you want a CMS for non-techies, shouldn't you use something with wysiwyg editor etc? MoniMoineese isn't completely forgiving. Things like trailing spaces messing up headlines etc are bound confuse people. Tables are all too limited, etc, etc. In trying to "fix these little shortcomings" you will loose its wikiness I fear... >Yes. I like moin and it's a lot more modular than a lot of wikis out >there. TBH since I started using Moin I've thought of a lot more things >that I can do with it and I am starting to see it more as a CMS. I've seen it a bit like that too, and I'm (as you notice) turning away from that attitude. Maybe it could be useful to build a component system where wikis and CMS and preprocessing for static pages etc could be implemented by combining a set of MoinMoin(?) building block in different configurations. But that's not what MoinMoin is today, and I think it's bad to see a wiki as a CMS. If you really want a CMS, I think you will see that the demands for features will grow contunally, and if the base was something that was initially intended to be as simple as a wiki, I think it might turn out very top heavy and maybe tumble over eventually. -- Magnus Lycka, Thinkware AB Alvans vag 99, SE-907 50 UMEA, SWEDEN phone: int+46 70 582 80 65, fax: int+46 70 612 80 65 http://www.thinkware.se/ mailto:magnus at thinkware.se From festifn at rupert.informatik.uni-stuttgart.de Mon Feb 3 08:01:19 2003 From: festifn at rupert.informatik.uni-stuttgart.de (Florian Festi) Date: Mon Feb 3 08:01:19 2003 Subject: [Moin-devel] Page Permissions In-Reply-To: <41647A6597ADD611803C005004D19FD2396FE6@MAILMAN> Message-ID: > Is it possible to get diff to give you the collisions? Has anybody had a > stab at writing some merging code that would try and resolve merges? Unfortunally difflib does not offer a patch routine, it only calculates diffs. I am playing with some code to do this myself. It is working by now, but it still needs some tuning and testing (lots of loops -> lots of potential off-by-one errors). And it doesn't follow into the difflib naming conventions yet. Anybody intersted in integrating it into PageEditor.py when it's finished? cu Florian Festi PS.: Am I the only one that gets such errors, when reading Juergen's mails: [Error: Formatting error: Non-hexadecimal character in QP encoding] From ntrout at rockstarvancouver.com Mon Feb 3 14:02:08 2003 From: ntrout at rockstarvancouver.com (Nick Trout) Date: Mon Feb 3 14:02:08 2003 Subject: [Moin-devel] Page Permissions In-Reply-To: <41647A6597ADD611803C005004D19FD23DD421@MAILMAN> Message-ID: <41647A6597ADD611803C005004D19FD2397006@MAILMAN> > From: Magnus Lycka [mailto:magnus at thinkware.se] > Sent: February 3, 2003 1:49 AM > To: Nick Trout; moin-devel at lists.sourceforge.net > Subject: RE: [Moin-devel] Page Permissions > > At 11:03 2003-01-31 -0800, Nick Trout wrote: > >I though wikis were supposed to be simple. > > Yes. Simple programs, perhaps not too simple to USE... > > Wikis weren't intended to be for everybody. The original wiki > is certainly intended to be a forum for programmers, and it's > basically considered a benefit if some people feel reluctant to > contribute. > > See http://c2.com/cgi/wiki?WhyWikiWorks Well there seems to be a conflict of interest even on the page you quote :) > If you want a CMS for non-techies, shouldn't you use something > with wysiwyg editor etc? MoniMoineese isn't completely forgiving. > Things like trailing spaces messing up headlines etc are bound > confuse people. Tables are all too limited, etc, etc. They're not that non-techy. My main concern has been that they lose work through collisions (or stupid browser bugs). I've looked at a number of CMS packages in the past but I don't think any of them are as flexible as a wiki. The majority seem to have this nuke-portal style frame layout which I don't like. A lot don't have dynamic content editing of pages. I think you tend to post information to CMS rather than iterate it. > In trying to "fix these little shortcomings" you will loose its > wikiness I fear... Equally I could say, well if Moin isnt wiki enough, there are other wikis out there that are more pure wiki, why don't you try those? Who is right? You might might a simple text editor which you add a few features to. At what point does it become a word processor? You might argue that Moin is not a wiki now because it has formatters, macros, stats etc. Are you saying that these are "shortcomings"? > >Yes. I like moin and it's a lot more modular than a lot of wikis out > >there. TBH since I started using Moin I've thought of a lot > more things > >that I can do with it and I am starting to see it more as a CMS. > > I've seen it a bit like that too, and I'm (as you notice) turning > away from that attitude. Maybe it could be useful to build a component > system where wikis and CMS and preprocessing for static pages etc > could be implemented by combining a set of MoinMoin(?) building block > in different configurations. But that's not what MoinMoin is today, > and I think it's bad to see a wiki as a CMS. That's an interesting idea. Moin is pretty customisable already but I'm sure it can go further. Its obvious that there are varying opinions about how wiki should be used. There are different audiences who read and maintain, different sets of information to be stored, and different presentations. Perhaps something like plone might be a better solution but when I looked at it proved to be very complicated (and currently incomplete - and moving slowly). Moin has the advantage of being simple and modular to start with so could be customised more easily. Each site could be analogous to an orginal thought: http://c2.com/cgi/wiki?OriginalThought > If you really want a CMS, I think you will see that the demands for > features will grow contunally, and if the base was something that > was initially intended to be as simple as a wiki, I think it might > turn out very top heavy and maybe tumble over eventually. That depends how modular and customisable it is. You can do a lot with macros in the wiki to add nice little site specific features that need not complicate the main distribution. I think the idea (although I havent read it anywhere) with Moin is that it is a simple, modular core that can be customised well. The core is maintained by the lead developers and the plugins are developed and contributed by the community. Wrt page locking whilst editing I came to the list to ask how I might do this with no, or minimal, changes to the codebase since I thought this might be just specific to my needs. People seems divided about its use, and its use is optional. If there were a way to plug it in so you could customise your site then perhaps that would more beneficial but noone pointed out a way where this was possible (or the implementation was desirable). Perhaps Moin needs more "feature hooks" so people can attach site specific features. eg. presentation, access control, editing, processing etc. Regards, Nick From magnus at thinkware.se Tue Feb 4 06:46:49 2003 From: magnus at thinkware.se (Magnus Lycka) Date: Tue Feb 4 06:46:49 2003 Subject: MoinMoin vs CMS, was RE: [Moin-devel] Page Permissions In-Reply-To: <41647A6597ADD611803C005004D19FD2397006@MAILMAN> References: <41647A6597ADD611803C005004D19FD23DD421@MAILMAN> Message-ID: <5.1.0.14.0.20030204134001.02b91760@www.thinkware.se> I wrote: > > Maybe it could be useful to build a component > > system where wikis and CMS and preprocessing for static pages etc > > could be implemented by combining a set of MoinMoin(?) building block > > in different configurations. At 14:04 2003-02-03 -0800, Nick Trout wrote: >That's an interesting idea. Right. MoinMoin as LEGO bricks. :) >Moin is pretty customisable already but I'm >sure it can go further. It's a while since I looked at the code. Are the different pieces usable independently today? Is it easy to write a script that uses a MoinMoin module to convert a string like "||Hello||World||" to something like "
HelloWorld
"? >Its obvious that there are varying opinions >about how wiki should be used. There are different audiences who read >and maintain, different sets of information to be stored, and different >presentations. Sure, and your users seems to be a bit of a border case between wiki and CMS. >Perhaps something like plone might be a better solution >but when I looked at it proved to be very complicated (and currently >incomplete - and moving slowly). Moin has the advantage of being simple >and modular to start with so could be customised more easily. Yes. Plone requires Zope which is a much bigger beast, and hopeless to run as a CGI script, which limits its use on many ISP provided web sites. I've been confused by Plone, although it seems to be developing rapidly. Maybe it'll get smoother to work with in time... -- Magnus Lycka, Thinkware AB Alvans vag 99, SE-907 50 UMEA, SWEDEN phone: int+46 70 582 80 65, fax: int+46 70 612 80 65 http://www.thinkware.se/ mailto:magnus at thinkware.se From ntrout at rockstarvancouver.com Tue Feb 4 17:20:11 2003 From: ntrout at rockstarvancouver.com (Nick Trout) Date: Tue Feb 4 17:20:11 2003 Subject: [Moin-devel] Persistence Message-ID: <41647A6597ADD611803C005004D19FD23B37B9@MAILMAN> I was chatting on Moin IRC and the topic of Moin persistence cropped up. We could get a very nice speedup by running Moin persistently. Would someone care to comment on how much effort is necessary to make Moin persistent? ( Would someone care to start a thread about ACLs and their ideas? ) Regards, Nick From tbird20d at yahoo.com Tue Feb 4 17:57:02 2003 From: tbird20d at yahoo.com (Tim Bird) Date: Tue Feb 4 17:57:02 2003 Subject: [Moin-devel] Persistence In-Reply-To: <41647A6597ADD611803C005004D19FD23B37B9@MAILMAN> Message-ID: <20030205015629.82819.qmail@web20803.mail.yahoo.com> --- Nick Trout wrote: > I was chatting on Moin IRC and the topic of Moin persistence > cropped up. We > could get a very nice speedup by running Moin persistently. Would > someone > care to comment on how much effort is necessary to make Moin > persistent? I'm not sure what you mean, but you can create a static version of a Moin using moin-dump. This is a utility that processes all of the pages, and converts each to a similarly named static HTML page. These static pages can be cached by your web server, and by your browser, AND don't have any server-side rendering time. Whether this speeds up your page loads will depend on what's on your pages. Also, there's the page cache thing which I don't know much about. I thought this might be used to hold a pre-rendered HTML version of each page, updated at edit time, or load time, if the original page text differed from, say, some checksum. Some processor examples have used this to avoid re-processing their inputs. In my version of MoinMoin, the only thing in the cache are pre-calculated pagelinks. Tim ===== Tim Bird Embedded Linux Consultant tim at bird.org Tim Bird Consulting 801-221-5852 http://www.bird.org/ From ntrout at rockstarvancouver.com Tue Feb 4 18:14:03 2003 From: ntrout at rockstarvancouver.com (Nick Trout) Date: Tue Feb 4 18:14:03 2003 Subject: [Moin-devel] Persistence In-Reply-To: <41647A6597ADD611803C005004D19FD23DD435@MAILMAN> Message-ID: <41647A6597ADD611803C005004D19FD2397011@MAILMAN> > On Behalf Of Tim Bird > Sent: February 4, 2003 5:56 PM > To: moin-devel at lists.sourceforge.net > Subject: Re: [Moin-devel] Persistence > > --- Nick wrote: > > I was chatting on Moin IRC and the topic of Moin persistence > > cropped up. We > > could get a very nice speedup by running Moin persistently. Would > > someone > > care to comment on how much effort is necessary to make Moin > > persistent? > > I'm not sure what you mean, Each time the Moin cgi is called (I believe what happens is) a new process created (?), a new instance of Python is involked, Moin is executed, a request processed and the result rendered and returned to the user. There is a noticeable pause whilst this happens. Using something like mod_python (for Apache) you can have Python running permanently on the web server with Moin running on it. In order to do this though each request has to clean up after itself and not alter the result of future requests. Currently I don't think this happens (perhaps because there are global variables which retain state information) so I was asking how much work it would be to sort all this out. For most simple applications page rendering and appearance should be almost instantaneous but, from memory, most of the Moin sites I have visited have a noticable lag (mine included :0). N From jh at web.de Wed Feb 5 11:39:15 2003 From: jh at web.de (Juergen Hermann) Date: Wed Feb 5 11:39:15 2003 Subject: [Moin-devel] Persistence In-Reply-To: <41647A6597ADD611803C005004D19FD23B37B9@MAILMAN> Message-ID: On Tue, 4 Feb 2003 17:30:08 -0800, Nick Trout wrote: >I was chatting on Moin IRC and the topic of Moin persistence cropped up. We >could get a very nice speedup by running Moin persistently. Would someone >care to comment on how much effort is necessary to make Moin persistent? There were many refactorings towards this, the hard places remain. Maybe for 1.2, there are only a few hard places left. I have that on my todo, and no, you cannot really help with this (but with many other things). >( Would someone care to start a thread about ACLs and their ideas? ) See the wiki page. Ciao, J?rgen From jp at dcs.gla.ac.uk Fri Feb 7 05:30:15 2003 From: jp at dcs.gla.ac.uk (Jonathan Paisley) Date: Fri Feb 7 05:30:15 2003 Subject: [Moin-devel] Page Permissions In-Reply-To: Message-ID: On Mon, 3 Feb 2003 4:50pm +0100, Florian Festi wrote: > PS.: Am I the only one that gets such errors, when reading Juergen's > mails: > [Error: Formatting error: Non-hexadecimal character in QP encoding] I get these too (using pine). The problem is that Juergen's emails are sent using quoted-printable encoding, but the SF mailing list is configured to add a banner at the bottom that includes an '=' followed by something other than a hexadecimal character. Essentially, the banner isn't using the same encoding as the rest of the message. LinuxWorld = Something ^--- culprit From jp at dcs.gla.ac.uk Fri Feb 7 05:33:02 2003 From: jp at dcs.gla.ac.uk (Jonathan Paisley) Date: Fri Feb 7 05:33:02 2003 Subject: [Moin-devel] Page Permissions In-Reply-To: Message-ID: On Mon, 3 Feb 2003 4:50pm +0100, Florian Festi wrote: > PS.: Am I the only one that gets such errors, when reading Juergen's > mails: > [Error: Formatting error: Non-hexadecimal character in QP encoding] Further to my previous email, the relevant SF bug is: http://sourceforge.net/tracker/index.php?func=detail&aid=652897&group_id=1&atid=200001 From ntrout at rockstarvancouver.com Fri Feb 7 15:01:04 2003 From: ntrout at rockstarvancouver.com (Nick Trout) Date: Fri Feb 7 15:01:04 2003 Subject: [Moin-devel] moin_dump problem Message-ID: <41647A6597ADD611803C005004D19FD23B39C5@MAILMAN> I think line 63 in MoinMoin/scripts/moin_dump.py wants changing from: singlepage = hasattr(self.options, 'page') to: singlepage = getattr(self.options, 'page') The former version always returns 1, and thinks you are looking for the page "1". Nick From j.her at t-online.de Fri Feb 7 15:23:03 2003 From: j.her at t-online.de (Juergen Hermann) Date: Fri Feb 7 15:23:03 2003 Subject: [Moin-devel] moin_dump problem In-Reply-To: <41647A6597ADD611803C005004D19FD23B39C5@MAILMAN> Message-ID: <18hHpS-0u8S1IC@fwd08.sul.t-online.com> On Fri, 7 Feb 2003 15:11:04 -0800, Nick Trout wrote: >I think line 63 in MoinMoin/scripts/moin_dump.py wants changing from: You're alone with that thought. ;> Ciao, J?rgen From ntrout at rockstarvancouver.com Fri Feb 7 17:10:17 2003 From: ntrout at rockstarvancouver.com (Nick Trout) Date: Fri Feb 7 17:10:17 2003 Subject: [Moin-devel] moin_dump problem In-Reply-To: <41647A6597ADD611803C005004D19FD23DD43F@MAILMAN> Message-ID: <41647A6597ADD611803C005004D19FD2397034@MAILMAN> > From: moin-devel-admin at lists.sourceforge.net > [mailto:moin-devel-admin at lists.sourceforge.net] On Behalf Of > Juergen Hermann > Sent: February 7, 2003 3:23 PM > To: moin-devel at lists.sourceforge.net; Nick Trout > Subject: Re: [Moin-devel] moin_dump problem > > > On Fri, 7 Feb 2003 15:11:04 -0800, Nick Trout wrote: > > >I think line 63 in MoinMoin/scripts/moin_dump.py wants changing from: > > You're alone with that thought. ;> > Ciao, J?rgen I must be doing something wrong then? I'm running the version from CVS. If I go to moin\scripts and run: moin-dump.bat --config c:\moin\mywiki static I get "FATAL ERROR: You have to be in the directory containing moin_config.py, or use the --config option!" If I go to c:\moin\mywiki and run: ..\scripts\moin-dump static I get: "Needed 0.772 secs. Traceback (most recent call last): File "", line 1, in ? File "C:\Moin\Lib\site-packages\MoinMoin\scripts\moin_dump.py", line 170, in r un MoinDump().run() File "C:\Moin\Lib\site-packages\MoinMoin\scripts\_util.py", line 98, in run self.mainloop() File "C:\Moin\Lib\site-packages\MoinMoin\scripts\moin_dump.py", line 124, in m ainloop file = wikiutil.quoteFilename(pagename) + HTML_SUFFIX File "C:\Moin\Lib\site-packages\MoinMoin\wikiutil.py", line 57, in quoteFilena me res = list(filename) TypeError: iteration over non-sequence" because singlepage is "1" (ie. boolean, true). If line 63 is getattr, singlepage has the value "None", which is correct and the wiki dumps out. If I'm doing something wrong please correct me, but I think that?s a mistake(?) Regards, Nick From ntrout at rockstarvancouver.com Fri Feb 7 17:22:06 2003 From: ntrout at rockstarvancouver.com (Nick Trout) Date: Fri Feb 7 17:22:06 2003 Subject: [Moin-devel] moin_dump problem In-Reply-To: <41647A6597ADD611803C005004D19FD23DD440@MAILMAN> Message-ID: <41647A6597ADD611803C005004D19FD2397036@MAILMAN> > If I go to moin\scripts and run: > moin-dump.bat --config c:\moin\mywiki static > > I get "FATAL ERROR: You have to be in the directory containing > moin_config.py, or use the --config option!" ie. config seems to being ignored. I just looked at the code and noticed: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/moin/MoinMoin/scripts/moi n_dump.py?rev=1.9&content-type=text/vnd.viewcvs-markup # --config=DIR self.parser.add_option( "--config", metavar="DIR", dest="config", help="Path to moin_config.py (or its directory)" ) and yet: # # Load the configuration # configdir = getattr(self.options, 'configdir', None) if configdir: if os.path.isfile(configdir): configdir = os.path.dirname(configdir) if not os.path.isdir(configdir): _util.fatal("Bad path given to --config parameter") configdir = os.path.abspath(configdir) sys.path[0:0] = [configdir] os.chdir(configdir) later the option is called 'configdir' instead of 'config'. I don't think this is correct either? Nick From jh at web.de Sat Feb 8 01:51:02 2003 From: jh at web.de (Juergen Hermann) Date: Sat Feb 8 01:51:02 2003 Subject: [Moin-devel] moin_dump problem In-Reply-To: <41647A6597ADD611803C005004D19FD2397034@MAILMAN> Message-ID: On Fri, 7 Feb 2003 17:13:35 -0800, Nick Trout wrote: >If I'm doing something wrong please correct me, but I think thats a >mistake(?) Now, with your detailed error description, we're two, thinking the same. ;) My testcase managed to avoid the errors you found, introduced with the refactoring to use Optik. Will fix, thanks for the report. Ciao, J?rgen From noreply at sourceforge.net Tue Feb 11 15:58:04 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Tue Feb 11 15:58:04 2003 Subject: [Moin-devel] [ moin-Bugs-685003 ] Using "preview" button when editing can lose data Message-ID: Bugs item #685003, was opened at 2003-02-12 00:05 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685003&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Steve McIntyre (steve_mcintyre) Assigned to: Nobody/Anonymous (nobody) Summary: Using "preview" button when editing can lose data Initial Comment: There's a problem in the way that preview works - it is possible for editors to overwrite other people's changes in the following circumstance (seen today on the Wiki in the office): User A edits WikiFile User B edits WikiFile User A saves WikiFile User B previews WikiFile User B saves WikiFile This last one _should_ show the "somebody else edited the page" error message, but doesn't... Simple checking of the code in Page::send_editor() shows an obvious bug - the timestamp used to guard against conflicting changes is reset each time the preview is shown. An easy fix is to store the date stamp for the _start_ of the editing session in the hidden datestamp form field. Only set this to the mtime of the existing file on the first pass through the edit call. The attached patch works for me... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685003&group_id=8482 From noreply at sourceforge.net Tue Feb 11 15:59:02 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Tue Feb 11 15:59:02 2003 Subject: [Moin-devel] [ moin-Bugs-685004 ] Using "preview" button when editing can lose data Message-ID: Bugs item #685004, was opened at 2003-02-12 00:05 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685004&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Steve McIntyre (steve_mcintyre) Assigned to: Nobody/Anonymous (nobody) Summary: Using "preview" button when editing can lose data Initial Comment: There's a problem in the way that preview works - it is possible for editors to overwrite other people's changes in the following circumstance (seen today on the Wiki in the office): User A edits WikiFile User B edits WikiFile User A saves WikiFile User B previews WikiFile User B saves WikiFile This last one _should_ show the "somebody else edited the page" error message, but doesn't... Simple checking of the code in Page::send_editor() shows an obvious bug - the timestamp used to guard against conflicting changes is reset each time the preview is shown. An easy fix is to store the date stamp for the _start_ of the editing session in the hidden datestamp form field. Only set this to the mtime of the existing file on the first pass through the edit call. The attached patch works for me... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685004&group_id=8482 From noreply at sourceforge.net Tue Feb 11 16:00:03 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Tue Feb 11 16:00:03 2003 Subject: [Moin-devel] [ moin-Bugs-685004 ] Using "preview" button when editing can lose data Message-ID: Bugs item #685004, was opened at 2003-02-12 00:05 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685004&group_id=8482 Category: None Group: None >Status: Deleted >Resolution: Duplicate Priority: 5 Submitted By: Steve McIntyre (steve_mcintyre) Assigned to: Nobody/Anonymous (nobody) >Summary: Using "preview" button when editing can lose data Initial Comment: There's a problem in the way that preview works - it is possible for editors to overwrite other people's changes in the following circumstance (seen today on the Wiki in the office): User A edits WikiFile User B edits WikiFile User A saves WikiFile User B previews WikiFile User B saves WikiFile This last one _should_ show the "somebody else edited the page" error message, but doesn't... Simple checking of the code in Page::send_editor() shows an obvious bug - the timestamp used to guard against conflicting changes is reset each time the preview is shown. An easy fix is to store the date stamp for the _start_ of the editing session in the hidden datestamp form field. Only set this to the mtime of the existing file on the first pass through the edit call. The attached patch works for me... ---------------------------------------------------------------------- >Comment By: Steve McIntyre (steve_mcintyre) Date: 2003-02-12 00:07 Message: Logged In: YES user_id=658437 Sorry - the SF interface is crap and caused me to submit this twice... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685004&group_id=8482 From noreply at sourceforge.net Tue Feb 11 16:01:04 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Tue Feb 11 16:01:04 2003 Subject: [Moin-devel] [ moin-Bugs-685003 ] Using "preview" button when editing can lose data Message-ID: Bugs item #685003, was opened at 2003-02-12 00:05 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685003&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Steve McIntyre (steve_mcintyre) Assigned to: Nobody/Anonymous (nobody) >Summary: Using "preview" button when editing can lose data Initial Comment: There's a problem in the way that preview works - it is possible for editors to overwrite other people's changes in the following circumstance (seen today on the Wiki in the office): User A edits WikiFile User B edits WikiFile User A saves WikiFile User B previews WikiFile User B saves WikiFile This last one _should_ show the "somebody else edited the page" error message, but doesn't... Simple checking of the code in Page::send_editor() shows an obvious bug - the timestamp used to guard against conflicting changes is reset each time the preview is shown. An easy fix is to store the date stamp for the _start_ of the editing session in the hidden datestamp form field. Only set this to the mtime of the existing file on the first pass through the edit call. The attached patch works for me... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685003&group_id=8482 From noreply at sourceforge.net Tue Feb 11 16:38:02 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Tue Feb 11 16:38:02 2003 Subject: [Moin-devel] [ moin-Bugs-685003 ] Using "preview" button when editing can lose data Message-ID: Bugs item #685003, was opened at 2003-02-12 01:05 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685003&group_id=8482 Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Steve McIntyre (steve_mcintyre) >Assigned to: J?rgen Hermann (jhermann) >Summary: Using "preview" button when editing can lose data Initial Comment: There's a problem in the way that preview works - it is possible for editors to overwrite other people's changes in the following circumstance (seen today on the Wiki in the office): User A edits WikiFile User B edits WikiFile User A saves WikiFile User B previews WikiFile User B saves WikiFile This last one _should_ show the "somebody else edited the page" error message, but doesn't... Simple checking of the code in Page::send_editor() shows an obvious bug - the timestamp used to guard against conflicting changes is reset each time the preview is shown. An easy fix is to store the date stamp for the _start_ of the editing session in the hidden datestamp form field. Only set this to the mtime of the existing file on the first pass through the edit call. The attached patch works for me... ---------------------------------------------------------------------- >Comment By: J?rgen Hermann (jhermann) Date: 2003-02-12 01:44 Message: Logged In: YES user_id=39128 Fixed, using only 3 more lines ;) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108482&aid=685003&group_id=8482 From festifn at rupert.informatik.uni-stuttgart.de Fri Feb 14 04:45:04 2003 From: festifn at rupert.informatik.uni-stuttgart.de (Florian Festi) Date: Fri Feb 14 04:45:04 2003 Subject: [Moin-devel] Merging edit conflicts In-Reply-To: Message-ID: After all this discussion about edit lock, I had to try if there isn't a better solution. Here is how far I got. If an edit conflict occures the two changes are merged and the editor is send back to the user with a message that someone else edited the page meanwhile. If edit conflicts could not solved both versions are included seperated by lines (quite patch like). If this seams to be too complicated for the user it is possible to send the editor only if there are no unresolvable conflicts and show the "Someone was faster than you!" message otherwise. In addition the message shown above the editor contains a link to the diff that shows what has been change meanwhile. The patch is against the CVS. patch.py has to be copied to MoinMoin/util/ cu Florian Festi -------------- next part -------------- --- ../../moin/MoinMoin/PageEditor.py Thu Feb 13 13:53:41 2003 +++ PageEditor.py Fri Feb 14 13:53:57 2003 @@ -35,6 +35,7 @@ Keywords: preview - if given, show this text in preview mode comment - comment field (when preview is true) + msg - if given, display message in header area """ from cgi import escape try: @@ -68,10 +69,13 @@ title = self._('Preview of "%(pagename)s"') self.set_raw_body(preview.replace("\r", "")) + msg = kw.get('msg', None) + # send header stuff wikiutil.send_title(self.request, title % {'pagename': self.split_title(),}, - pagename=self.page_name, body_class="editor") + pagename=self.page_name, body_class="editor", + msg=msg) # get request parameters try: @@ -465,8 +469,29 @@ msg = self._('Page is immutable!') elif not newtext: msg = self._("""You cannot save empty pages.""") - elif datestamp != '0' and datestamp != str(os.path.getmtime(self._text_filename())): - msg = self._("""Sorry, someone else saved the page while you edited it. + elif newtext == self.get_raw_body(): + msg = self._("""You did not change the page content, not saved!""") + # Edit conflict + if datestamp != '0' and datestamp != str(os.path.getmtime(self._text_filename())): + import difflib + from MoinMoin.util import patch + + allow_conflicts = 1 + + # calculate merged content + oldtext = Page(self.page_name, date=datestamp).get_raw_body() + actualtext = self.get_raw_body() + false = lambda x : None + d = difflib.Differ(false, false) + diff = list(d.compare(oldtext, newtext)) + verynewtext = patch.apply_patch(actualtext, diff, allow_conflicts, + '----- /!\ Edit conflict! Other version: -----\n', + '----- /!\ Edit conflict! Your version: -----\n', + '----- /!\ End of edit conflict -----\n') + + # found conflicts between versions but that was not allowd + if not verynewtext: + msg = self._("""Sorry, someone else saved the page while you edited it.

Please do the following: Use the back button of your browser, and cut&paste your changes from there. Then go forward to here, and click EditText again. Now re-add your changes to the current page contents. @@ -475,16 +500,28 @@ delete the changes of the other person, which is excessively rude! """) - if backup_url: - msg += self._('

A backup of your changes is' - ' here.

') % locals() - elif newtext == self.get_raw_body(): - msg = self._("""You did not change the page content, not saved!""") - + if backup_url: + msg += self._('

A backup of your changes is' + ' here.

') % locals() + self.request.reset() + self.send_page(self.request, msg=msg) + return + # merged version + else: + msg = self._("""Edit conflict! +

Please review page and save then. Do not save this page as it is!

+

Have a look at the diff of %(difflink)s to see what have been changed.

+""") % {'difflink':self.link_to(querystr='action=diff&date=' + datestamp)} + verynewtext = ''.join(verynewtext) + self.request.form['datestamp'].value = os.path.getmtime(self._text_filename()) + self.sendEditor(msg=msg, comment=kw.get('comment', ''), + preview=verynewtext) + return # save only if no error occured (msg is empty) if not msg: # set success msg - msg = self._("""Thank you for your changes. + if not msg: + msg = self._("""Thank you for your changes. Your attention to detail is appreciated.""") # write the page file @@ -503,6 +540,7 @@ # send notification mails if config.mail_smarthost and kw.get('notify', 0): msg = msg + "

" + self._notifySubscribers(kw.get('comment', '')) + self.request.reset() + self.send_page(self.request, msg=msg) - return msg --- ../../moin/MoinMoin/wikiaction.py Thu Feb 13 13:53:42 2003 +++ wikiaction.py Fri Feb 14 00:14:42 2003 @@ -569,8 +569,8 @@ else: savemsg = pg.saveText(savetext, datestamp, stripspaces=rstrip, notify=notify, comment=comment) - request.reset() - pg.send_page(request, msg=savemsg) + #request.reset() + #pg.send_page(request, msg=savemsg) ## webapi.http_redirect(request, pg.url()) -------------- next part -------------- #!/usr/bin/python2 """ Applys diffs generated by list(difflib.Differ.compare()) text must be a list of strings Copyright (c) 2003 Florian Festi All rights reserved, see COPYING for details. """ import difflib def apply_patch(text, patch, allow_collisions=1, marker1 = '<-----------------------------------------\n', marker2 = '------------------------------------------\n', marker3 = '>-----------------------------------------\n'): """ """ text_len = len(text) patch_len = len(patch) text_nr = 0 patch_nr = 0 result = [] while ((text_nr < text_len) and (patch_nr < patch_len)): if patch[patch_nr][0] == '?': patch_nr = patch_nr + 1 # matching line elif ((patch[patch_nr][0] == ' ') and (patch[patch_nr][2:] == text[text_nr])): result.append(text[text_nr]) text_nr = text_nr + 1 patch_nr = patch_nr + 1 # deleted line elif (patch[patch_nr][0] == '-' and patch[patch_nr][2:] == text[text_nr]): text_nr = text_nr + 1 patch_nr = patch_nr + 1 # not matching line elif (patch[patch_nr][0] in ['-', ' ']): (text_idx, patch_idx, count) = find_match(text, patch, text_nr, patch_nr, min_count = 5) # incusion in text if patch_idx == patch_nr: result = result + text[text_nr:text_idx] text_nr = text_idx # deletion in text elif ((text_idx == text_nr) and unchanged(patch, patch_nr, patch_idx)): patch_nr = patch_idx # collision else: if not allow_collisions: return None result.append(marker1) result.extend(text[text_nr:text_idx]) result.append(marker2) result.extend(restore(patch,patch_nr, patch_idx)) result.append(marker3) text_nr = text_idx patch_nr = patch_idx # new line elif (patch[patch_nr][0] == '+'): result.append(patch[patch_nr][2:]) patch_nr = patch_nr + 1 else: raise ValueError # wrong character in patch # additional lines in text if text_nr < text_len: result.extend(text[text_nr:]) if patch_nr < patch_len: # conflict in last lines which are deleted in text if not unchanged(patch, patch_nr, pathc_len): result.extend([marker1, marker2]) result.extend(restore(patch, patch_nr, patch_len, which=2)) result.append(marker3) #else: last lines deleted in text return result def next(patch, nr, which = 2): """ returns the next index for thew next line which == 1 -> old version which == 2 -> new version """ if which == 2: wanted = [' ', '+'] elif which == 1: wanted = [' ', '-'] else: raise IndexError nr = nr + 1 while (nr < len(patch)): if patch[nr][0] in wanted : return nr nr = nr + 1 return nr def restore(patch, from_, to, which=2): """ returns the text generated by patch[_from:to] which == 1 -> old version which == 2 -> new version """ result = [] i = from_ if to > len(patch): to = len(patch) while i < to: result.append(patch[i][2:]) i = next(patch, i, which) return result def match(text, patch, text_nr = 0, patch_nr=0, which = 1, max = 0): """ returns how many lines between text and patch do match following the given positions if max>0: stop after max matches """ count = 0 text_len = len(text) patch_len = len(patch) while ((text_nr < text_len) and (patch_nr < patch_len) and (max and count < max)): if text[text_nr] != patch[patch_nr][2:]: return count text_nr = text_nr +1 patch_nr = next(patch, patch_nr, which) count = count + 1 return count def unchanged(patch, first, last): """ return if the patch[first:last] does change anything """ i = first patch_len = len(patch) while i < last: if patch[i][0] in ['+','-']: return 0 i = i + 1 return 1 def find_match(text, patch, text_nr, patch_nr, min_count = 3): """ Look for the next position where text and patch match after the given positions. min_count matching lines are needed for a valid match """ text_len = len(text) patch_len = len(patch) hit1 = None hit2 = None text_idx = text_nr patch_idx = patch_nr while ((text_idx < text_len) and (patch_idx < patch_len)): i = text_nr while i <= text_idx: hit_count = match(text, patch, i, patch_idx, which=1, max=10) if hit_count >= min_count: hit1 = (i, patch_idx, hit_count) break i = i + 1 i = patch_nr while i < patch_idx: hit_count = match(text, patch, text_idx, i, which=1, max=10) if hit_count >= min_count: hit2 = (text_idx, i, hit_count) break else: hit_count = 0 i = next(patch, i) if hit1 or hit2: break text_idx = text_idx + 1 patch_idx = next(patch, patch_idx) if hit1 and hit2: #XXXX which one? return hit1 elif hit1: return hit1 elif hit2: return hit2 else: return (text_len, patch_len, 0) def main(): from pprint import pprint text0 = """AAA 001 AAA 002 AAA 003 AAA 004 AAA 005 AAA 006 AAA 007 AAA 008 AAA 009 AAA 010""".split('\n') text1 = """AAA 001 AAA 002 AAA 005 AAA 006 AAA 007 AAA 008 BBB 001 BBB 002 AAA 009 AAA 010 BBB 003""".split('\n') text2 = """AAA 001 AAA 002 AAA 003 AAA 004 AAA 005 AAA 006 AAA 007 AAA 008 CCC 001 CCC 002 CCC 003 CCC 004""".split('\n') print text1 d = difflib.Differ() diff = list(d.compare(text0, text1)) # pprint(diff) # print '=================================================================' text = apply_patch(text2, diff) pprint(text) if __name__ == '__main__': main() From jh at web.de Fri Feb 14 10:16:03 2003 From: jh at web.de (Juergen Hermann) Date: Fri Feb 14 10:16:03 2003 Subject: [Moin-devel] Merging edit conflicts In-Reply-To: Message-ID: On Fri, 14 Feb 2003 13:43:16 +0100 (MET), Florian Festi wrote: >After all this discussion about edit lock, I had to try if there isn't a >better solution. Here is how far I got. It's not a question of better, locking lowers conflict probability, merging makes the remaining cases less painful. >The patch is against the CVS. patch.py has to be copied to MoinMoin/util/ Wah, STOP sending useful patches before the 1.1 release, else it never gets out. (just kidding of course) Ciao, J?rgen From magnus at thinkware.se Fri Feb 14 18:59:14 2003 From: magnus at thinkware.se (Magnus Lycka) Date: Fri Feb 14 18:59:14 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: References: <41647A6597ADD611803C005004D19FD23B37B9@MAILMAN> Message-ID: <5.1.0.14.0.20030215032457.02d144e0@www.thinkware.se> I finally moved Thinki to my 1.0 installation where I already had a few wikis. My problem was that I wanted to copy the files at first to be certain that I didn't mess things up, and then I exceeded my disk quota... :( My Thinki backup files were taking up about 16MB... I hope I'm not asking a FAQ here, I'm not followsing MoinMoin development very closely, but is there any easy way to make Moin use diff, rcs or cvs to store backup file more compactly? I have access to rcs and cvs at my ISP... (Actually I started to get error messages with 0.8 after an upgrade to Python 2.2, so I couldn't postpone it any longer... but never mind that now... :) File "XXX/MoinMoin/parser/wiki.py", line 386, in replace return apply(getattr(self, '_' + type + '_repl'), (hit,)) AttributeError: Parser instance has no attribute '_hmarker_repl' -- Magnus Lycka, Thinkware AB Alvans vag 99, SE-907 50 UMEA, SWEDEN phone: int+46 70 582 80 65, fax: int+46 70 612 80 65 http://www.thinkware.se/ mailto:magnus at thinkware.se From steve at einval.com Fri Feb 14 19:08:14 2003 From: steve at einval.com (Steve McIntyre) Date: Fri Feb 14 19:08:14 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <5.1.0.14.0.20030215032457.02d144e0@www.thinkware.se> References: <41647A6597ADD611803C005004D19FD23B37B9@MAILMAN> <5.1.0.14.0.20030215032457.02d144e0@www.thinkware.se> Message-ID: <20030215030601.GH1706@einval.com> On Sat, Feb 15, 2003 at 03:58:42AM +0100, Magnus Lycka wrote: > >My Thinki backup files were taking up about 16MB... I hope I'm >not asking a FAQ here, I'm not followsing MoinMoin development >very closely, but is there any easy way to make Moin use diff, >rcs or cvs to store backup file more compactly? I have access >to rcs and cvs at my ISP... Using CVS as backend storage is something I'm planning on looking at quite soon, but I'm not aware of anything currently available. In fact, I have already several small projects / patches that just need some cleaning up... -- Steve McIntyre, Cambridge, UK. steve at einval.com Support the Campaign for Audiovisual Free Expression: http://www.eff.org/cafe/ From noreply at sourceforge.net Fri Feb 14 22:08:04 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Fri Feb 14 22:08:04 2003 Subject: [Moin-devel] [ moin-Patches-686959 ] Alternative URL / description separator Message-ID: Patches item #686959, was opened at 2003-02-15 00:15 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=686959&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Elijah Cornell (ecornell) Assigned to: Nobody/Anonymous (nobody) Summary: Alternative URL / description separator Initial Comment: wiki.py _url_bracket_repl The change will allow for the alternative use of a double pipe '||' to split the URL and description. This will allow for URLs with spaces to be used without having to manually convert the spaces to %20s. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=686959&group_id=8482 From noreply at sourceforge.net Fri Feb 14 22:22:02 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Fri Feb 14 22:22:02 2003 Subject: [Moin-devel] [ moin-Patches-686961 ] Alternative URL / description separator Message-ID: Patches item #686961, was opened at 2003-02-15 00:28 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=686961&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Elijah Cornell (ecornell) Assigned to: Nobody/Anonymous (nobody) Summary: Alternative URL / description separator Initial Comment: wiki.py _url_bracket_repl The change will allow for the alternative use of a double pipe '||' to split the URL and description. This will allow for URLs with spaces to be used without having to manually convert the spaces to %20s. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=686961&group_id=8482 From jh at web.de Sat Feb 15 01:50:01 2003 From: jh at web.de (Juergen Hermann) Date: Sat Feb 15 01:50:01 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <20030215030601.GH1706@einval.com> Message-ID: On Sat, 15 Feb 2003 03:06:01 +0000, Steve McIntyre wrote: >>My Thinki backup files were taking up about 16MB... I hope I'm >>not asking a FAQ here, I'm not followsing MoinMoin development >>very closely, but is there any easy way to make Moin use diff, >>rcs or cvs to store backup file more compactly? I have access >>to rcs and cvs at my ISP... > >Using CVS as backend storage is something I'm planning on looking at >quite soon, but I'm not aware of anything currently available. Steve: Using the gzip module to compress them would be much less intrusive on the code, and comes with every Python installation. Magnus: As for reducing the space needed by backups, prune them (using find - mtime +100 or so). At some point in the future there'll be a moin-maint script that will do that for you. Ciao, J?rgen From steve at einval.com Sat Feb 15 02:44:01 2003 From: steve at einval.com (Steve McIntyre) Date: Sat Feb 15 02:44:01 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: References: <20030215030601.GH1706@einval.com> Message-ID: <20030215104227.GI1706@einval.com> On Sat, Feb 15, 2003 at 10:49:08AM +0100, Juergen Hermann wrote: >> >>Using CVS as backend storage is something I'm planning on looking at >>quite soon, but I'm not aware of anything currently available. > >Using the gzip module to compress them would be much less intrusive on >the code, and comes with every Python installation. Yes, I understand that. There are other things that CVS would give you, though - improved versioning and data security would be very good. -- Steve McIntyre, Cambridge, UK. steve at einval.com My home page "Can't keep my eyes from the circling sky, "Tongue-tied & twisted, Just an earth-bound misfit, I..." From jh at web.de Sat Feb 15 02:57:05 2003 From: jh at web.de (Juergen Hermann) Date: Sat Feb 15 02:57:05 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <20030215104227.GI1706@einval.com> Message-ID: On Sat, 15 Feb 2003 10:42:27 +0000, Steve McIntyre wrote: >Yes, I understand that. There are other things that CVS would give >you, though - improved versioning and data security would be very >good. Well, before you go down that road, contact me since w/o a refactoring to centralize access to backups any resulting patch would suck greatly. BTW, do you know of any cvs encapsulation module for python? Ideally, such a module would not os.popen the cvs command, but reimplement the client protocol or wrap the cvs code in an extension. Ciao, J?rgen From magnus at thinkware.se Sat Feb 15 05:07:09 2003 From: magnus at thinkware.se (Magnus Lycka) Date: Sat Feb 15 05:07:09 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: References: <20030215030601.GH1706@einval.com> Message-ID: <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> At 10:49 2003-02-15 +0100, Juergen Hermann wrote: >As for reducing the space needed by backups, prune them (using find - >mtime +100 or so). At some point in the future there'll be a moin-maint >script that will do that for you. Sure. I ran into a disk quota "wall", so that was obvious. I just kept the last four versions of all files. I did that interactively in Python though, so I didn't save the code. If I remember correctly, modtime reflects the time that the file was *written*, not when it was moved to the backup directory with another time. This makes it dangerous to remove "old" files. If someone messes up a page that has been unaltered for a long time, the most recent backup will have an old modtime. I did something along the lines of (UNTESTED) save_versions = 4 d = {} os.chdir(BACKUPDIR) for fn in os.listdir('.'): try: page, timestamp = fn.split('.') if not d.has_key(page): d[page] = [] d[page].append(long(timestamp )) except: # This was not a backup file... continue for page in d: versions = d[page] versions.sort() for version in versions[:-save_versions]: os.remove("%s.%i" % (page, version)) By the way, I get a lot of "no differences found, saved four times" messages. Would it be easy not to do the save/backup routine if the page wasn't changed at all? This problem relates to the prune issue... If all the version I keep when I prune are identical to the current version, I might as well sweep the entire backup drectory... Without such a fix, the prune script would have to loop through the versions and remove adjacent identical versions first. I certainly think that the CVS solution seems like a good idea, but the gzip alternative seems good as well. With the gzip option, it should be possible to code in such a way that compression was transparent to MoinMoin, i.e. that most of the MoinMoin code would be completely unaware of the state of the backup files, and that it was possible both to configure MoinMoin to gzip on backup, and also to write a script that gzipped all backup files without disturbing MoinMoin. If a file had a .gzip ending it would unzip it before using it... On the other hand, this seems to require a centralized file access API which is similar to what a CVS store would require... In general, it seems like a good idea to centralize such a thing. Not only for backup, but also for the fresh pages. -- Magnus Lycka, Thinkware AB Alvans vag 99, SE-907 50 UMEA, SWEDEN phone: int+46 70 582 80 65, fax: int+46 70 612 80 65 http://www.thinkware.se/ mailto:magnus at thinkware.se From steve at einval.com Sat Feb 15 05:38:01 2003 From: steve at einval.com (Steve McIntyre) Date: Sat Feb 15 05:38:01 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> References: <20030215030601.GH1706@einval.com> <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> Message-ID: <20030215133617.GK7604@plasmon.co.uk> On Sat, Feb 15, 2003 at 02:06:28PM +0100, Magnus Lycka wrote: > >By the way, I get a lot of "no differences found, saved four >times" messages. Would it be easy not to do the save/backup >routine if the page wasn't changed at all? This problem relates >to the prune issue... If all the version I keep when I prune >are identical to the current version, I might as well sweep >the entire backup drectory... The code already checks to see if you've made changes - see elif newtext == self.get_raw_body(): msg = _("""You did not change the page content, not saved!""") in PageEditor.py >I certainly think that the CVS solution seems like a good idea, >but the gzip alternative seems good as well. With the gzip option, >it should be possible to code in such a way that compression was >transparent to MoinMoin, i.e. that most of the MoinMoin code would >be completely unaware of the state of the backup files, and that >it was possible both to configure MoinMoin to gzip on backup, and >also to write a script that gzipped all backup files without >disturbing MoinMoin. If a file had a .gzip ending it would unzip >it before using it... On the other hand, this seems to require a >centralized file access API which is similar to what a CVS store >would require... Yes, that's what I'm expecting and planning to do. The first thing to do on that route is to go through the code and identify all the file access actions we need (or think we need). Then it should be possible to write a set of backend storage modules that support that API - one for the current scheme, one for CVS, etc. >In general, it seems like a good idea to centralize such a thing. >Not only for backup, but also for the fresh pages. Yup. And Juergen also asked: >BTW, do you know of any cvs encapsulation module for python? >Ideally, such a module would not os.popen the cvs command, but >reimplement the client protocol or wrap the cvs code in an extension. Unfortunately, I know of no cvs encapsulation module or library code for _any_ language. I've worked with CVS a lot and it's a common thing that people ask for on the mailing lists. -- Steve McIntyre, Plasmon smcintyre at software.plasmon.com "They say that you play Cambridge twice - once on the way up and once on the way down. It's nice to be back..." --- Armstrong & Miller From lele at seldati.it Sat Feb 15 05:54:05 2003 From: lele at seldati.it (Lele Gaifax) Date: Sat Feb 15 05:54:05 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <20030215133617.GK7604@plasmon.co.uk> References: <20030215030601.GH1706@einval.com> <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> <20030215133617.GK7604@plasmon.co.uk> Message-ID: <15950.18068.353845.716525@paci.nautilus> >>>>> Steve McIntyre l'ha dit: >> BTW, do you know of any cvs encapsulation module for python? >> Ideally, such a module would not os.popen the cvs command, but >> reimplement the client protocol or wrap the cvs code in an >> extension. Steve> Unfortunately, I know of no cvs encapsulation module or Steve> library code for _any_ language. I've worked with CVS a lot Steve> and it's a common thing that people ask for on the mailing Steve> lists. I find this on my HD (debian sid): /usr/share/doc/python2.2/examples/Demo/pdist/rcslib.py """RCS interface module. Defines the class RCS, which represents a directory with rcs version files and (possibly) corresponding work files. """ and I bet that cvs2svn.py has something to say. hth, ciao, lele. -- nickname: Lele Gaifax | Quando vivr? di quello che ho pensato ieri real: Emanuele Gaifas | comincer? ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From lele at seldati.it Sat Feb 15 05:59:07 2003 From: lele at seldati.it (Lele Gaifax) Date: Sat Feb 15 05:59:07 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <15950.18068.353845.716525@paci.nautilus> References: <20030215030601.GH1706@einval.com> <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> <20030215133617.GK7604@plasmon.co.uk> <15950.18068.353845.716525@paci.nautilus> Message-ID: <15950.18352.720628.657712@paci.nautilus> >>>>> Lele Gaifax l'ha dit: Lele> I find this on my HD (debian sid): Lele> /usr/share/doc/python2.2/examples/Demo/pdist/rcslib.py An even better approach may be seen in ViewCVS' rcsparse.py ciao, lele. -- nickname: Lele Gaifax | Quando vivr? di quello che ho pensato ieri real: Emanuele Gaifas | comincer? ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From steve at einval.com Sat Feb 15 06:06:06 2003 From: steve at einval.com (Steve McIntyre) Date: Sat Feb 15 06:06:06 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <15950.18068.353845.716525@paci.nautilus> References: <20030215030601.GH1706@einval.com> <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> <20030215133617.GK7604@plasmon.co.uk> <15950.18068.353845.716525@paci.nautilus> Message-ID: <20030215140507.GL7604@plasmon.co.uk> On Sat, Feb 15, 2003 at 02:54:28PM +0100, Lele Gaifax wrote: > >I find this on my HD (debian sid): >/usr/share/doc/python2.2/examples/Demo/pdist/rcslib.py > >"""RCS interface module. > >Defines the class RCS, which represents a directory with rcs version >files and (possibly) corresponding work files. > >""" > >and I bet that cvs2svn.py has something to say. That'll teach me to shoot my mouth off! :-). Looking in the rest of the python 2.2 examples on my Debian box, I see that there is also a cvslib.py and related files that may be useful... -- Steve McIntyre, Plasmon smcintyre at software.plasmon.com My home page "Can't keep my eyes from the circling sky, "Tongue-tied & twisted, Just an earth-bound misfit, I..." From lele at seldati.it Sat Feb 15 06:12:09 2003 From: lele at seldati.it (Lele Gaifax) Date: Sat Feb 15 06:12:09 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <20030215140507.GL7604@plasmon.co.uk> References: <20030215030601.GH1706@einval.com> <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> <20030215133617.GK7604@plasmon.co.uk> <15950.18068.353845.716525@paci.nautilus> <20030215140507.GL7604@plasmon.co.uk> Message-ID: <15950.19128.928929.460498@paci.nautilus> >>>>> Steve McIntyre l'ha dit: Steve> Looking in the rest of the python 2.2 examples on my Debian Steve> box, I see that there is also a cvslib.py and related files Steve> that may be useful... Well, Python isn't exactly "any" language :-) Do we think that CVS gives us any benefit over RCS? bye, lele. -- nickname: Lele Gaifax | Quando vivr? di quello che ho pensato ieri real: Emanuele Gaifas | comincer? ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From magnus at thinkware.se Sat Feb 15 06:26:05 2003 From: magnus at thinkware.se (Magnus Lycka) Date: Sat Feb 15 06:26:05 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <20030215133617.GK7604@plasmon.co.uk> References: <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> <20030215030601.GH1706@einval.com> <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> Message-ID: <5.1.0.14.0.20030215151823.02be9db0@www.thinkware.se> At 13:36 2003-02-15 +0000, Steve McIntyre wrote: >The code already checks to see if you've made changes - see > > elif newtext == self.get_raw_body(): > msg = _("""You did not change the page content, not > saved!""") > >in PageEditor.py Ok. I'm running 1.0, not CVS. BTW, I have a proper (?) setup now with the code separated from, and shared between, the wikis I run. Is it as simple as to just drop the new code in the lib, or are there more things to tweak with upgrades? -- Magnus Lycka, Thinkware AB Alvans vag 99, SE-907 50 UMEA, SWEDEN phone: int+46 70 582 80 65, fax: int+46 70 612 80 65 http://www.thinkware.se/ mailto:magnus at thinkware.se From lele at seldati.it Sat Feb 15 06:52:10 2003 From: lele at seldati.it (Lele Gaifax) Date: Sat Feb 15 06:52:10 2003 Subject: [Moin-devel] Little glitches with SystemAdmin Message-ID: <15950.21526.346838.619251@paci.nautilus> Hi, I tried the new SystemAdmin browsers, and I found two thinghies: a. in AttachFile.py:do_admin_browser there's this code: {{{ # iterate over pages that might have attachments pages = os.listdir(config.attachments['dir']) }}} but it gives an error about bad access to 'attachments'. Maybe this is better: {{{ # iterate over pages that might have attachments if htdocs_access: pages = os.listdir(config.attachments['dir']) else: pages = wikiutil.getPageList(config.text_dir) }}} b. the user browser is strange: I the various IDs, but all share the same Username and Email (mine... for that matter). hth, ciao, lele. -- nickname: Lele Gaifax | Quando vivr? di quello che ho pensato ieri real: Emanuele Gaifas | comincer? ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From noreply at sourceforge.net Sat Feb 15 07:19:02 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Sat Feb 15 07:19:02 2003 Subject: [Moin-devel] [ moin-Patches-687081 ] Alternative URL / description separator Message-ID: Patches item #687081, was opened at 2003-02-15 09:25 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=687081&group_id=8482 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Elijah Cornell (ecornell) Assigned to: Nobody/Anonymous (nobody) Summary: Alternative URL / description separator Initial Comment: wiki.py _url_bracket_repl The change will allow for the alternative use of a double pipe '||' to split the URL and description. This will allow for URLs with spaces to be used without having to manually convert the spaces to %20s. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=687081&group_id=8482 From noreply at sourceforge.net Sat Feb 15 07:20:09 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Sat Feb 15 07:20:09 2003 Subject: [Moin-devel] [ moin-Patches-687081 ] Alternative URL / description separator Message-ID: Patches item #687081, was opened at 2003-02-15 09:25 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=687081&group_id=8482 Category: None Group: None >Status: Deleted Resolution: None Priority: 5 Submitted By: Elijah Cornell (ecornell) Assigned to: Nobody/Anonymous (nobody) Summary: Alternative URL / description separator Initial Comment: wiki.py _url_bracket_repl The change will allow for the alternative use of a double pipe '||' to split the URL and description. This will allow for URLs with spaces to be used without having to manually convert the spaces to %20s. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=687081&group_id=8482 From noreply at sourceforge.net Sat Feb 15 07:21:03 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Sat Feb 15 07:21:03 2003 Subject: [Moin-devel] [ moin-Patches-686961 ] Alternative URL / description separator Message-ID: Patches item #686961, was opened at 2003-02-15 00:28 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=686961&group_id=8482 Category: None Group: None >Status: Deleted Resolution: None Priority: 5 Submitted By: Elijah Cornell (ecornell) Assigned to: Nobody/Anonymous (nobody) Summary: Alternative URL / description separator Initial Comment: wiki.py _url_bracket_repl The change will allow for the alternative use of a double pipe '||' to split the URL and description. This will allow for URLs with spaces to be used without having to manually convert the spaces to %20s. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=308482&aid=686961&group_id=8482 From lbarnes at san.rr.com Sat Feb 15 20:51:02 2003 From: lbarnes at san.rr.com (Lan Barnes) Date: Sat Feb 15 20:51:02 2003 Subject: [Moin-devel] More compact backups? Message-ID: <20030215204937.E21579@san.rr.com> On Sat, Feb 15, 2003 at 01:36:17PM +0000, Steve McIntyre wrote: > > >BTW, do you know of any cvs encapsulation module for python? > >Ideally, such a module would not os.popen the cvs command, but > >reimplement the client protocol or wrap the cvs code in an extension. > > Unfortunately, I know of no cvs encapsulation module or library code > for _any_ language. I've worked with CVS a lot and it's a common thing > that people ask for on the mailing lists. > OK, this is written from a position of ignorance, but ... why focus on an interface to CVS? Why not instead install a trigger launcher at the point of replacing an old page that can call any script/program and pass it useful arguments, like the fully qualified or relative path to the page being replaced, to the new page, the UID of the user requesting it, anything you can think of that the script writer might possibly ever need? Then is would be a slam-dunk for the individual moin admin to interface archiving with whatever SCM system s/he wanted to use, open source or otherwise. If I'm not understanding the situation, please forgive me. I haven't dived into the code yet. But I am, philosophically, a great proponent of triggers. -- Lan Barnes lbarnes at san.rr.com Linux Guy, SCM Specialist 858-354-0616 They have computers, and they may have other weapons of mass destruction. - Janet Reno From jh at web.de Sun Feb 16 00:21:06 2003 From: jh at web.de (Juergen Hermann) Date: Sun Feb 16 00:21:06 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <5.1.0.14.0.20030215132213.02bce8c0@www.thinkware.se> Message-ID: On Sat, 15 Feb 2003 14:06:28 +0100, Magnus Lycka wrote: >times" messages. Would it be easy not to do the save/backup >routine if the page wasn't changed at all? Easy indeed: cvs up. >it before using it... On the other hand, this seems to require a >centralized file access API which is similar to what a CVS store >would require... For reading the backups, we have such an API, namely Page.get_text. Another thing is generation and directory scanning, though that is not too much places. Ciao, J?rgen From jh at web.de Sun Feb 16 00:29:03 2003 From: jh at web.de (Juergen Hermann) Date: Sun Feb 16 00:29:03 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <5.1.0.14.0.20030215151823.02be9db0@www.thinkware.se> Message-ID: On Sat, 15 Feb 2003 15:25:31 +0100, Magnus Lycka wrote: >BTW, I have a proper (?) setup now with the code separated >from, and shared between, the wikis I run. Is it as simple >as to just drop the new code in the lib, or are there more >things to tweak with upgrades? If you used "setup.py install" then it's as simple as using that from another directory (cvs workdir), including switching back and forth (which I never tried, but should work if versions are not too far apart). Only if we introduce incompatible changes (like storing pages in UTF-8) this will become a dead-end, but then you have to call an update script anyway, making that step a concious decision. Ciao, J?rgen From steve at einval.com Sun Feb 16 03:38:06 2003 From: steve at einval.com (Steve McIntyre) Date: Sun Feb 16 03:38:06 2003 Subject: [Moin-devel] More compact backups? In-Reply-To: <20030215204937.E21579@san.rr.com> References: <20030215204937.E21579@san.rr.com> Message-ID: <20030216113652.GK1706@einval.com> On Sat, Feb 15, 2003 at 08:49:37PM -0800, Lan Barnes wrote: > >OK, this is written from a position of ignorance, but ... > >why focus on an interface to CVS? Why not instead install a trigger >launcher at the point of replacing an old page that can call any >script/program and pass it useful arguments, like the fully qualified or >relative path to the page being replaced, to the new page, the UID of >the user requesting it, anything you can think of that the script writer >might possibly ever need? Then is would be a slam-dunk for the >individual moin admin to interface archiving with whatever SCM system >s/he wanted to use, open source or otherwise. Of course that's the plan. The reason I'm talking about the intricacies of CVS is because that's the system I'm personally interested in. It would be ridiculous to make such a big change to moin and not add it as a generic interface. -- Steve McIntyre, Cambridge, UK. steve at einval.com Use Debian GNU/Linux - upgrade your Windoze box today! http://www.debian.org/ "Can't keep my eyes from the circling sky, "Tongue-tied & twisted, Just an earth-bound misfit, I..." From iwan at vanderkleyn.com Mon Feb 17 14:18:07 2003 From: iwan at vanderkleyn.com (Iwan van der Kleyn) Date: Mon Feb 17 14:18:07 2003 Subject: [Moin-devel] Macro operating on whole Page? Message-ID: <3E515F76.4060901@vanderkleyn.com> Hi there, I'm currently trying to figure out how to write custom macros and actions. This because at my company, my development team has just started to use MoinMoin for documentation and process related info. I still haven't fully grasped its inner workings, nor do I had the chance to get to know the culture of the 'development scene' surounding it. So plase indulge me if I go outa line here :-) I'm writing a few macros which are operating on the *whole* text of a Page from within a macro.I've created a macro [[PostDate]] which not just inserts the date of posting, but *replaces* the occurance of the macro itself. This as to avoid that the date changes like the [[Date]] macro. Well, it works, but my question is if this how it's supposed to be done? Does anyone have other/better suggestions? Regards, Iwan #______________________________________________________ def Now(): import time arr = time.localtime() return '%s-%s-%s'% (arr[2],arr[1],arr[0]) def execute(macro, args): t = Now() #if Preview then just display date #if not preview; page is displayed with macro for first time; display date & replace macro occurance in Page-text #make date-string permanent if macro.form.has_key("preview") and macro.formatter.page.isWritable() and macro.formatter.page.exists(): from MoinMoin.PageEditor import PageEditor p = PageEditor(macro.formatter.page.page_name, macro.request) #Load text; replace macro with date and save s = macro.formatter.page.get_raw_body().replace('[[PostDate]]', t) p.saveText(s,'0') return t From j.her at t-online.de Mon Feb 17 22:47:03 2003 From: j.her at t-online.de (Juergen Hermann) Date: Mon Feb 17 22:47:03 2003 Subject: [Moin-devel] Macro operating on whole Page? In-Reply-To: <3E515F76.4060901@vanderkleyn.com> Message-ID: <18l1W1-0A0uQqC@fwd04.sul.t-online.com> On Mon, 17 Feb 2003 23:17:26 +0100, Iwan van der Kleyn wrote: >I'm writing a few macros which are operating on the *whole* text of a >Page from within a macro.I've created a macro [[PostDate]] which not >just inserts the date of posting, but *replaces* the occurance of the >macro itself. OK, so you effectively recoded @DATE@ in a wrong way. ;) No, macros are not supposed to work that way, such macros are a hack, and have a high chance to break with future versions. Ciao, J?rgen From magnus at thinkware.se Tue Feb 18 05:36:06 2003 From: magnus at thinkware.se (Magnus Lycka) Date: Tue Feb 18 05:36:06 2003 Subject: [Moin-devel] #format python followed by single # breaks MoinMoin In-Reply-To: <18l1W1-0A0uQqC@fwd04.sul.t-online.com> References: <3E515F76.4060901@vanderkleyn.com> Message-ID: <5.1.0.14.0.20030218142958.02b9fcf8@www.thinkware.se> Is this a known bug? #format python # Will lead to IndexError in Page.py line 267: "if line[1] == "#": continue http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/PythonEncodingBugTest And then my original problem: How do I make the #!/usr/bin/python line appear at line 1? If I put it directly after "#format python", it's swallowed, and if I put an empty space between, it will appear at line 2, which won't make it a correct unix script... -- Magnus Lycka, Thinkware AB Alvans vag 99, SE-907 50 UMEA, SWEDEN phone: int+46 70 582 80 65, fax: int+46 70 612 80 65 http://www.thinkware.se/ mailto:magnus at thinkware.se From jh at web.de Tue Feb 18 16:27:15 2003 From: jh at web.de (Juergen Hermann) Date: Tue Feb 18 16:27:15 2003 Subject: [Moin-devel] #format python followed by single # breaks MoinMoin In-Reply-To: <5.1.0.14.0.20030218142958.02b9fcf8@www.thinkware.se> Message-ID: On Tue, 18 Feb 2003 14:35:04 +0100, Magnus Lycka wrote: >Is this a known bug? No, since both are fixed now. ;) Ciao, J?rgen From tim at bird.org Tue Feb 18 19:19:06 2003 From: tim at bird.org (Tim Bird) Date: Tue Feb 18 19:19:06 2003 Subject: [Moin-devel] Small fix for moin_dump.py Message-ID: <20030219031818.30835.qmail@web20809.mail.yahoo.com> Below is a small fix for moin_dump.py. It fixes a bug where heading numbering is continued through the entire set of statically-generated pages. (So, for example, if the last heading on a page FooPage.html was numbered 106, the first heading on page FooPage2.html was numbered 107). With this patch applied, heading numbering is restarted at 1 for every generated page. Regards, Tim Bird --- moin_dump.py.orig 2003-02-18 19:54:22.000000000 -0700 +++ moin_dump.py 2003-02-18 20:03:57.000000000 -0700 @@ -124,6 +124,8 @@ filepath = os.path.join(outputdir, file) out = open(filepath, 'w') try: + if hasattr(request, "_fmt_hd_counters"): + del request._fmt_hd_counters page = Page.Page(pagename) sys.stdout = out try: From jh at web.de Wed Feb 19 12:32:12 2003 From: jh at web.de (Juergen Hermann) Date: Wed Feb 19 12:32:12 2003 Subject: [Moin-devel] Python 2.0 support in moin Message-ID: Hi! I need a person responsible for continuous testing moin cvs under python 2.0, since I'm slowly moving all my wikis (incl. the local one I develop in most of the time) to 2.1 or 2.2. Otherwise, expect 2.2 code to creep in with all consequences, due to habitual use of 2.2 constructs, since I use that at work 8 hours a day. Ciao, J?rgen From jh at web.de Wed Feb 19 12:32:17 2003 From: jh at web.de (Juergen Hermann) Date: Wed Feb 19 12:32:17 2003 Subject: [Moin-devel] Small fix for moin_dump.py In-Reply-To: <20030219031818.30835.qmail@web20809.mail.yahoo.com> Message-ID: On Tue, 18 Feb 2003 19:18:18 -0800 (PST), Tim Bird wrote: > filepath = os.path.join(outputdir, file) > out = open(filepath, 'w') > try: >+ if hasattr(request, "_fmt_hd_counters"): >+ del request._fmt_hd_counters Try to replace that with request.reset() (cvs up before) and test again, please. > page = Page.Page(pagename) > sys.stdout = out > try: Ciao, J?rgen From crosseyedpenguin at yahoo.com Tue Feb 25 11:57:13 2003 From: crosseyedpenguin at yahoo.com (Roger Haase) Date: Tue Feb 25 11:57:13 2003 Subject: [Moin-devel] _test not installed Message-ID: <20030225195644.9407.qmail@web14302.mail.yahoo.com> Not sure if you are aware of this, but after installing from the latest CVS download, and using the ?test option, wikitest.py abends on line 83: from MoinMoin import _tests setup.py install does not copy _tests. ?tests runs correctly after copying _tests manually. Roger Haase __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ From jh at web.de Tue Feb 25 12:12:17 2003 From: jh at web.de (Juergen Hermann) Date: Tue Feb 25 12:12:17 2003 Subject: [Moin-devel] _test not installed In-Reply-To: <20030225195644.9407.qmail@web14302.mail.yahoo.com> Message-ID: On Tue, 25 Feb 2003 11:56:44 -0800 (PST), Roger Haase wrote: >Not sure if you are aware of this, but after installing from the latest >CVS download, and using the ?test option, wikitest.py abends on line >83: > from MoinMoin import _tests > >setup.py install does not copy _tests. ?tests runs correctly after >copying _tests manually. It was a concious decision, originally. Now that ?test calls the unit tests, this has to be reconsidered. It is still questionable to copy test code to user installs (especially since test code will grow fast). For now, I'll catch the import error. Ciao, J?rgen From lele at seldati.it Wed Feb 26 15:26:21 2003 From: lele at seldati.it (Lele Gaifax) Date: Wed Feb 26 15:26:21 2003 Subject: [Moin-devel] Finally found: little bug in user browser Message-ID: <15965.19654.727981.908955@paci.nautilus> There is a little bug in userform.py, where a User gets created passing just the ID, while the constructor expects a request and the ID. # iterate over users for uid in user.getUserList(): - account = user.User(uid) + account = user.User(request, uid) data.addRow(( ciao, lele. -- nickname: Lele Gaifax | Quando vivr? di quello che ho pensato ieri real: Emanuele Gaifas | comincer? ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From noreply at sourceforge.net Thu Feb 27 00:13:10 2003 From: noreply at sourceforge.net (SourceForge.net) Date: Thu Feb 27 00:13:10 2003 Subject: [Moin-devel] [ moin-Feature Requests-694231 ] arbitrary diffs Message-ID: Feature Requests item #694231, was opened at 2003-02-27 09:22 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=358482&aid=694231&group_id=8482 Category: None Group: None Status: Open Priority: 5 Submitted By: Robert Pollak (jondo) Assigned to: Nobody/Anonymous (nobody) Summary: arbitrary diffs Initial Comment: It should be possible to see a diff between two arbitrary old versions of a page, as in UseModWiki. Currently, I only manage to see a diff to the current page. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=358482&aid=694231&group_id=8482 From felciano at ingenuity.com Thu Feb 27 13:04:24 2003 From: felciano at ingenuity.com (Ramon Felciano) Date: Thu Feb 27 13:04:24 2003 Subject: [Moin-devel] Roadmap for version 1.1 of MoinMoin? Message-ID: <9C17D16FE65EBC4BA4C815B71E6DD61902869135@mpexch1.nt.ingenuity.com> Hi -- Is there a roadmap for releasing MoinMoin 1.1? I noticed that http://www.python.org/pypi?:action=display&name=moin&version=1.1 lists MoinMoin at version 1.1 as the current version, and the main site seems to be at 1.169. I haven't seen any traffic on either the dev or user mailing lists pointing towards a new release -- did I miss something? Is there a list of features that are expected in the 1.1 release -- should I look to the SF bug form? CVS? The MoinMoin site? Thanks!! Ramon _________________________________ Ramon M. Felciano INGENUITY Systems, Inc. ----+---- This email message (and any attached document) contains information from Ingenuity Systems Inc. which may be considered confidential by Ingenuity, or which may be privileged or otherwise exempt from disclosure under law, and is for the sole use of the individual or entity to whom it is addressed. Any other dissemination, distribution or copying of this message is strictly prohibited. If you receive this message in error, please notify me and destroy the attached message (and all attached documents) immediately. From lele at seldati.it Thu Feb 27 13:31:06 2003 From: lele at seldati.it (Lele Gaifax) Date: Thu Feb 27 13:31:06 2003 Subject: [Moin-devel] Roadmap for version 1.1 of MoinMoin? In-Reply-To: <9C17D16FE65EBC4BA4C815B71E6DD61902869135@mpexch1.nt.ingenuity.com> References: <9C17D16FE65EBC4BA4C815B71E6DD61902869135@mpexch1.nt.ingenuity.com> Message-ID: <15966.33636.966535.177467@paci.nautilus> >>>>> Ramon Felciano l'ha dit: Ramon> Hi -- Ramon> Is there a roadmap for releasing MoinMoin 1.1? See http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/MoinMoinRoadmap ciao, lele. -- nickname: Lele Gaifax | Quando vivr? di quello che ho pensato ieri real: Emanuele Gaifas | comincer? ad aver paura di chi mi copia. email: lele at seldati.it | -- Fortunato Depero, 1929. From jh at web.de Thu Feb 27 14:51:05 2003 From: jh at web.de (Juergen Hermann) Date: Thu Feb 27 14:51:05 2003 Subject: [Moin-devel] I18N sync for 1.1 Message-ID: Hi! Translators can start to bring their language files up to date, I just synched them. There WILL be some more text from edit locking etc., but if you start translating now, it's easier to get the rest done before the release. Which is scheduled for 7. - 9.03.03, so there is not too much time anyway. BTW, Finnish is still vacant. Ciao, J?rgen