Friday, August 26, 2005

Contributor-experienceTM revisited

Hey, the people still read the monodoc mailing list. hehehe, just kidding. I've improved the contributor-experienceTM with a nice dialog to deal with your contributions:

From that dialog you are able to open and remove your contributions and upload the selected ones.

The problem is that contributions made before the patch will not be listed here nor in the root page (however, a message appears at the root page telling you have xx old contribs pending). Also, old contributions will be automatically uploaded with your next upload.

The uploaded contributions are controlled by a serial number (I've realized that was already done after implementing one myself) that acts like an ACK. Every time you upload a contribution, you get a new serial number so new contributions are marked with it and, both, the server and you, know which ones are new contributions and which ones are contributions already uploaded. This way, contributions not being uploaded (not selected) get its serial number updated after a successful upload.

Now, it's time to concentrate in the search thing that I've postponed for a month or so.

Monday, August 22, 2005

Back to work

At the moment I'm dealing with two aspects of monodoc: searching and contributions.

The searching is almost done (it searches and highlights the results), but while I was polishing things, I introduced a bug I've not been able to repair yet. I'm getting a NullPointerException from a line of code that is almost the same as before. It is one of those bugs you end up thinking if your computer is pulling your leg.

For improving the contributions-experienceTM I've added to the home page a text that says if you have made any contributions (which are not uploaded yet) or explains a little bit how to make a contribution. The point is that I wanted a list with links to all the contributions, but that was more difficult to obtain than I thought. The information being saved with every change was not enough to get those links, so I've added a nice URL to every change being saved in chageset.xml.

The problem is that the Urls in monodoc are a little weird. In the case of ecma documentation, if you click on the TreeView, you get something like ecma:10#Array/ while through the links you get T:System.Array. Depending on the place you are working you use one or another (although they point to the same doc), adding some confusion to the internals of the program. To get my desired list I've written a new method that figures out the nice url T:System.Array when it is not available. The results here:

The thing is that, in my opinion, we should revise the internals of monodoc at some point, because the design is sometimes limited or confusing. I don't mean a rewrite of the program, but a reorganization, localizing the points where we are doing almost the same thing (two different urls pointing the same doc for example) in slightly different ways and looking for a design that facilitates more the manipulation of documents.
Tomorrow, the contributions-experienceTM patch will land the mailing lists. Stand by. Now is time to sleep.