Last week didn’t go actually according to my plans, but I did get some major improvements done. I improved repository metadata handling a lot, the code is much cleaner and should also work better now. I did a great deal of testing on updates handling, it seems to be working now.
Then I hit two serious problems with MoinMoin: XML-RPC PutPage and path problems. For some reason the MM server process and the man/info importer process went into some kind of deadlock at random times when running the import. The server was waiting on accept() and the importer on recv(). I tried to do some debugging etc. but I never figured out exactly what was wrong. So I decided to port my importer to use the PageEditor class in Moin. That was a big change, but I’m happy with the result. This also solved the other problems I had with XML-RPC, mainly the mysterious idle times when the importing kind of stalled for 30 seconds per every page import. I suspect all these things have something to do with network/socket stuff, but I just don’t have the time to start debugging all this when I have more important things to implement here…
So I gained speed, but I also lost something when getting rid of XML-RPC. Mainly I lost the ability to run the importer and all the man -> DocBook XML etc. conversions on a different host than the actual wiki. But since a single man page import now takes about 0.7 seconds and it took about 30 seconds with XML-RPC, it’s all worth it.
When doing the porting to PageEditor, I kept having some really weird problems with python import clauses. Simply, many of them didn’t work. I spent about a day trying to find out what was wrong and I eventually even found the reason: A relative path was added to sys.path which caused all the problems, since I had a bit of a different setup than the default. So I fixed it with adding an absolute path instead, which took something like maybe 20 characters of python, after one day of work 😀
In Friday I travelled from my parent’s place to Helsinki, since our student organization visited Assembly. That was fun, but I had no Internet access at all from my student apartment at Helsinki during the whole weekend, so any coding I could do was for a couple of hours at Assembly. Thanks a lot Sonera! Even with flaky Internet connection, I could work for about 40 hours last week. Btw, iirc, the 4k intro at Assembly was won with Python 🙂
This week I’ll probably have to update my blog, then I’ll do some testing with real RPM repositories now that the importer is ported to PageEditor. After all that I’ll hopefully finally get to working with the DocBook branch. Looking forward to that.