Files | Admin

Notes:

Release Name: v1-0-0

Notes:
It gives me great pleasure to announce the sixth public release of Soks as v1-0-0.  There have been a lot of changes, and much of Soks has now stabalised so I've decided to call it a beta rather than an alpha.  When I iron out a few more bugs I might even be confident in calling it stable.

See http://www.soks.org for details on how to install soks, or how to upgrade soks for instructions.  The site also has a full list of list of changes and some known bugs, but in brief:

* Page titles can now have any punctuation, and the wiki urls look slightly prettier.
* Two new RSS feeds, one of which contains all the pages linked to from a particular page, the other that includes edits made to the contents of linked pages.  These are both useful in conjunction with the automatic summary classes.
* Some popular pages, authors, visitors counters (not enabled by default)
* The wiki can now save cache of page data and views when the wiki is shutdown.  This makes starting the wiki again much faster.
* The way that all the settings are made has completely changed, hopefully to make it clearer, and to enable several wiki's to be mounted on the same Webrick server.
* Some maintenance helpers, that can periodically slim the wiki (these are not enabled by default)
* Can now include several static file handlers

There has also been quite a lot of refactoring and bug fixing, all though some (not critical) bugs remain.  With the shift in version numbering, I plan to offer a 1-0-x series of releases as soon as I fix bugs until this release is thoroughly stable.  I will add features to a 1-1-0 release.



Changes: h2. Between v1-0-0 and v0-0-7 h3. User Features * Page titles can now have any punctuation, and the wiki urls look slightly prettier. ** The url for a page now excludes punctuation, so 'Bug: is this a bug?' has the url /view/BugIsThisABug ** Old urls still work (e.g. /view/home%20page ) ** Pages that differ only in punctuation are permitted, and are given unique urls (e.g. 'A&B' and 'A+B' become 'AB' and 'AB-2'). Unfortunately I haven't figured out a way of ensuring that these urls are consistent across wiki restarts, which means that bookmarks of pages that differ only in punctuation may not always serve the expected page. ** If you have any authenticators that match specific pages, these will need to be changed to match the unpunctuated, WikiWord style page name. * Recent Changes now has a 'changes' link that shows just the changes made by that revision. I'd appreciate feedback on how best to lay this out. * Revisions pages now show only 10 revisions at a time (Should make things faster). * Two new RSS feeds, accessed by /listrrss/pagename or /linksfromrss/pagename ** listrss is aimed at the Recent Changes page and creates a feed that includes the edits made to each page ** linksfromrss is aimed at Known Bugs and other similar pages, and creates an RSS feed that includes the content of each page referred to by the original page. * Some basic page view counters ** ViewCountHelper maintains a page called 'Popular Pages' that has a ranked list of the number of times a page has been viewed. ** ViewerCountHelper can be configured to maintain pages like 'Prolific Viewers' or 'Prolific Editors' that provide a ranked list of the IPs (or usernames if they have given them) of those who visit or edit the wiki most often. ** AuthorCountHelper can be configured to maintain a page with a ranked list of the n people who have made the most revisions to the wiki * Can now save cache of page data and views when the wiki is shutdown. This makes starting the wiki again much faster. h3. Adminstrative Features * The way that all the settings are made has completely changed. See the template/default/start.rb class for details * The api for the AutomaticSummary class has changed. See the templates/default/start.rb file for example use. ** e.g. @AutomaticList.new( wiki, 'Instructions and Howtos' ) { |page| page.name =~ /^How to /i }@ * Some maintenance helpers, that periodically slim the wiki (these are not enabled by default) ** DeleteOldPagesHelper operates (by default) once a day and wipes from disk any deleted pages that were deleted more than (by default) 100 days ago. ** DeleteOldRevisionsHelper operates (by default) once a day and deletes any revisions that are (by default) more than 365 days old and where (by default) there are more than 20 revisions for the page. ** MergeOldRevisionsHelper opeates (by default) each hour and merges all revisions more than (by default) 24 hours old, by the same author, and that are created (by default) within an hour of each other. Note this is pretty processesor intensive, so you may not wish to use it yet, but it should result in a significant reduction in the size of revision files. * Can now include several static file handlers by specifying them in a servlet.static_file_directories hash, e.g. @{ 'Attachment' => 'attachment', 'www' => '/var/www' }@ * Of interest only to people delving under the hood: ** The contents of the url's query are now available in the templates ** Content-type for a particular view is now a setting (default is for text/html, RSS is application/xml, set in soks.rb) ** The wiki now notify's listeners of time passing using :year,:month,:hour and :minute events. Helper classes can use these if they need to make periodic changes to the wiki. ** The wiki now notify's listeners of a page view using a :page_viewed event. Helper classes can use this to track what pages people look at. ** The Wiki class now has a wipe_from_disk method to erase a deleted page h3. Refactoring * The way settings are handled has been completely re-organised, removing the $SETTINGS global. * Moved the changes_from method from the Page class to the String class * Moved page delete method to Wiki class from View class * Moved the add_to_index call from save method to mutate method in Wiki class * Took out the test mock objects and put them in a separate file * Refactored the find method out of the View class into the search results erb. (Why? Because it seems to me that it is more like a different view of the wiki, rather than something special, and this simplifies the View class). * Refactored to remove the dedicated RSS method in the servlet class. Content-type is now set according to the name of the view. * Refactored to replace all the extra threads that I was using to count days with listeners that wait for the periodic events (year,month,day,hour,min) sent out by the wiki. (in the calendar helper classes, and in the disk checking classes). This should increase the gracefulness of shutdowns and make sure that serving the user pages always takes priority. * Refactored some common code from Tests to a module in mock objects * Refactored the BruteMatch class to cache the title regexps. May be a little faster. * Added some tests for the soks-servlet.rb class in preparation for some refactoring. * Refactored all the mutating methods (revise,rollback,delete,move etc) out of the View class into the Wiki and Servlet classes so that View is strictly View only h3. Bugfixes * Added test for, and fixed bug: AutomaticPageMover still apears in RecentChanges * Added test for, and fixed bug: Template pages should not be moved. Now any page with 'type a title here' in its title cannot be moved. * Added test for, and partially fixed bug: Cannot change capitalization of a page title in that changes to the page title now work. However, they cannot be undone, and don't trigger recent changes or any automatic summaries to update. * Fixed bug: Print stylesheet does not hide menu or commands (thanks to Pavel Sykora) * Fixed bug: Recent changes today can be yesterday * Fixed bug in the Calendar automatic helper where the months wouldn't link to each other. * Fixed bug where refering to pages [ [ /edit/page name?something=somethingelse ]] would not correctly discern whether page name existed and colour the link accordingly. * Added test for and fixed Bug: automatic linking does not work with trailing punctuation * Added test and fixed Bug: pages names with single quotes * Added test and fixed bug: calendar does not appear * Fixed bug: viewing revisions requires authentification * Added test and fixed Bug: automatic linking does not work with trailing punctuation * Fixed Bug: RSS feed does not validate - Hopefully all fixed now. Usernames are now turned into (by default dummy) email addresses in order for the feed to officially validate, and the new page url system means the urls are more likely to be accepted as valid. h3. Bugs Remaining These bugs definitely remain: * Bug: Does not make use of if-modified-since request headers * Bug: GEM limits title lengths - This is a limit of file names on Windows OSs? * Bug: notextile does not prevent page inserts * Bug: Textile mishandles paragraphs * Bug: E-mail addresses with hyphens not recognised * Bug: Email adresses in page titles cause incorrect links * Bug: Memory leak * Bug: Pages that link here may not appear on restart These bugs are partially fixed / tricky to replicate * Bug: Unanticipated Rollbacks - Not yet been replicated * bug: competing edits - Does what I expect (last person to save, wins) so not a bug for me, but clearly not ideal so will work on something better.