List of changes between versions
For newer versions, see list of changes.
Between v1-0-1 and v1-0-0
User Features
- Now able to upgrade the start.rb format used in 1.0.0+ as well as the one used in 0.0.7 and below.
Bug fixes
- Fixed bug: Wrong title in Result Search page
- Fixed bug: AutomaticSummary does not reflect changes to summarised pages
- Fixed bug: Does not redirect pages with no view
- Fixed bug: E-mail addresses with hyphens not recognised
Between v1-0-0 and v0-0-7
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.
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 }
- e.g.
- 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
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
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.
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
- 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.
Between v0-0-7 and v0-0-6
Features
- AutomaticSummary now has new options to allow specified page title, author and page content regexps to be excluded from summary.
- RecentChanges by default doesn’t show changes by any of the Automatic wiki helpers (e.g. the site index maker, or the page mover, or the summariser). As part of this, users can no longer have a username starting with Automatic or containing troublesome punctuation (&{}[]?).
- RecentChanges by default merges any runs of page revisions that have been done by the same author.
- There is a new setting
:reload_erb_each_requestIf set to true, Soks will reload the relevant bits of the wiki view directory on each request. This is useful for developing/debugging the look of a wiki. Default if false, which makes the wiki faster.
Refactoring
- Little bit of refactoring in the AutomaticSummary class
- Uses Logger (placed in $LOG global) instead of writting messages to $STDERR
- Moved to_unique_filename from Servlet to File class (added unit test)
- Moved to_valid_pagename from Servlet to String class (added unit test)
Bugfixes
- Fixed a bug where the import of new pages into a wiki could overwrite old.
- Fixed a bug where existing pages could become inaccesible if they had un-permitted punctuation in their title.
- Fixed Bug: Matching page titles in middle of words
- Fixed bug: Multipage site index S
- Fixed bug: trailing spaces in page names
- Fixed Bug: Forward slashes in titles problematic
- Fixed Bug: Internet Exploror 6.0 incompatibilities during page edits
- Fixed Bug: LinuxFirefox1.0 scroll reset after cursor move
Between v-0-0-6 and v-0-0-5
Features
- The default template now includes a ‘sidebar page’ that can be edited inside the wiki. (Thanks to Bil Kleb).
- Changed the way the soks libraries are required to hopefully allow a wiki to be more easily moved between machines (Thanks to Giovanni Ferro).
- Some new settings:
- Setting
:server_type => WEBrick::Daemonin start.rb causes Soks to try and fork into a separate process. By default this is off. (Thanks to Remy Drouilhet) - The name of the home page is now a setting in start.rb (
:home_page => "home page"). - Setting
:redcloth_hard_breaks => truein start.rb causes Redcloth to revert to the 2.x approach of turning every newline to a<br />. This is off by default (i.e. the default works like Redcloth 3.x). (Thanks to Seb Clediere.)
- Setting
- Roughed up a wiki2html helper that maintains a static html copy of the site in sync with the dynamic copy.
- Toned down the colors and tweaked the layout of the default wiki look.
- Removed the ‘instiki’ and the ‘rails’ templates from the distribution, because I haven’t kept them up to date.
Refactoring
- Filehandler servlet now incorporated into the WikiServlet.
- General cleanup in WikiServlet
- Rewrote the RollingMatch class (in soks-view, deals with automatic linking) to be less complex and a little bit faster.
Bugfixes
- Fixed Bug: Time per change on meta page view incorrect
- Fixed Bug: Punctuation in page titles still problematic by adding two validations. The first is a piece of javascript that warns the user from using problematic punctuation, the second is in the servlet and removes all problematic punctuation. As a side effect, this has fixed Bug: ampersand in page name creates missing links that work .
- Fixed Bug: Search textarea and button rendered without vertical separation by removing the search button. It wasn’t needed, and IMO looked clunky.
- Fixed Bug: Certain text crashes yaml revision loading
- Fixed Bug: Do not save and delete links confusing on edit page by replacing the links with form buttons.
- Shutting down Soks with ctrl-c (which is trapped by the TERM signal – does this work on Windows? non OSX unix?) now waits until all the running helpers have finished making their changes to the wiki. This should have fixed bug: Halting can corrupt revisions and may help with Bug: Unanticipated Rollbacks if graceless shutdown is the cause.
- Fixed Bug: Update frequency rounds inappropriately in meta view using Bil Kleb’s extension to the Numeric class.
- Fixed Bug: AutomaticRecentChanges ignores changes parameter
- Fixed Bug: Uploads are not password protected
- Fixed Bug: Pictures and Attachments linked to site root
- Partially fixed Bug: RSS feed does not validate, in that I changed the encoding given in the xml so that umlauts work.
- Partially fixed Bug: Upload filenames needlessly mangled, in that it now only removes spaces from filename (which is unfortunately required for RedCloth to be able to make links to the file).
- Robots.txt in the default template dissalows the ‘meta’ page view
Bugs remaining
Seems like I’ve accumulated enough changes above to start thinking about another release. This means that some bugs are not going to be fixed for this release. If you strongly object, please let me know.- Bug: Does not make use of if-modified-since request headers
- Bug: GEM limits title lengths
- Bug: notextile does not prevent page inserts
- Bug: Textile mishandles paragraphs
- Bug: competing edits
- Bug: RSS feed does not validate
- Bug: Unanticipated Rollbacks
Between v-0-0-5 and v-0-0-4
Features
- Now uses Redcloth v3, and therefore can have some markdown styles as well as textile on the same page
- Roughed up two more automatic helpers: rss2wiki that writes the content of a rss feed to a wiki page, and mail2wiki that watches an imap mailbox and adds any messages in it to the wiki. Both work, but are probably not ready for prime time.
- Note I have removed the feature in v-0-0-4 that would merge any changes by the same author within 5 minutes, as it seemed to cause some confusion with end users.
Refactoring
- Helpers have been moved to a separate sub directory
- A module in soks-view that can be used by the erb template. Has functions for creating urls for pages. The default template has been updated to use this, but not the other templates.
Bug fixes
- Fatal bug when renaming picture or attachment pages fixed.
- References to urls no longer include trailing punctuation
- Authenticators no longer call depreciated base64 method
- Now has (partial) support for robots.txt and favicon.ico
- Search box no longer treats leading and trailling spaces as significant
- Returns a page not found rather than an exception if an unknown view type is requested
Bugs remaining
- No authentication on pictures and attachments
- Punctuation in page titles problematic. ? <> and [] cause problems. : and / are ok.
- Insert page commands are not inhibited by notextile, pre or code tags
Between v-0-0-4 and v-0-0-3
This was a bugfix release on v-0-0-3. Principally by adding locking code so two pages can’t update the same page at the same time.
Between v-0-0-3 and v-0-0-2
Features
- File format for revisions changed from marshalled array of revisions to a yaml’d array of strings and times. This should allow easier import/export.
- Changes to the files on disk appear in the wiki (by default checks for changes on disk every 60 seconds) to allow external editing of the wiki.
- New way of making new pages: highlight the text you wish to link and press crtl-n. This only works on some browsers.
- RSS feed for changes made to any page (use the RSS feed on Recent Changes to be notified of all changes to the site, use the RSS feed on Site Index to be notified of new pages).
- Added a WikiWord link for those that don’t like to give out links with %20’s in them. e.g. http://yoursite.com/wiki/HomePage redirects to http://yoursite.com/view/Home%20Page.
- The automatic summary class has been extended to allow summary based on the page title, page author, or page content.
- Different parts of the wiki, and different commands, can be authenticated differently based on regexps.
- Kill list of words that will not be automatically linked (default set is the 30 most common English language words).
- The soks-create-wiki command can now be interactive (or can use command line options including—help and—no-interaction). It also manages upgrades from the previous version of Soks.
- There are some demo templates: default is the standard, rails looks a bit like www.rubyonrails.com and instiki which looks a bit like www.instiki.org.
- A meta data view of a page. Clicking on the page’s title on the top left of the screen brings up a list of the links from and too that page, and a list of the people who have contributed to the page.
Refactorings
- The recent changes and site index helpers now use the automatic summary class.
- The Wiki class now notifies other classes of changes to the site, including the View class.
- The storage methods are now a module which is mixed into the wiki class.
Bug Fixes
- Bug in uploads on windows fixed (thanks to Sebastien Clediere).
- Bugs in accepting titles with punctuation fixed.
- Bug in automatic summary fixed.
- Logo changed from png to tif so that it is transparent on a wider selection of browsers.
Bugs remaining
- No authentication on pictures and attachments
- Lots of little faults with the textile to html conversion. Some due to the use of Redcloth v 2.0.11 (looking forward to a stable v3!) and some due to my inept subclassing.
Edit this page or
watch for changes using RSS.