Rx4RDF and Rhizome Changelog
============================
Changes in Version 0.6.1 (??, 2006)
----------------------------------------
* zml: fix encoding non-ascii characters in markup mode, better handling of file encodings
* raccoon: pass config vars directly to DomStore and Model factory functions
* RxPath: more support for named graphs/contexts:
** support removes from specific contexts in NTriples parser
** store version history in separate store (versionModel config settings)
** RxPathNamedGraph module
** add asQuad argument to getStatements()
* XUpdate: change xupdate:include href attribute to Attribute Value Template
* RxPath: get Redland adapter working again(!)
* raccoon: work around for urllib bug in Python 2.5
* rhizome: lozenge effect (requires IE7 javascript library)
Changes in Version 0.6.0 (March 31, 2006)
----------------------------------------
* RxPath: Replaced rdf:ID attribute with get-statement-uris() function
* RxPath: add rdfdocument() XPath function (invoke from XSLT/RxSLT only)
* RxPath: get Redland adapter working again
* raccoon: add $__store global request variable
* RxPath: preliminary support for named graphs/contexts:
** add context parameter to Model.getStatements api, implement for 4Suite and Redland
** add NTriples parser support via "#!graph uri" comment
** add pushContext/popContext to RxPathDom.Document for adding statements to a context
** no support yet for duplicate statements across contexts
** added get-graph-predicates(graphuri) XPath function
* XUpdate: add "to-graph" attribute to XUpdate elements to specify the subgraph for additions.
* utils: move RDF-related functions to new module RxPathUtils, cleaned up RDF parsing APIs
* raccoon: add uriResolveBlacklist, uriResolveWhitelist and DEFAULT_URI_SCHEMES config settings
(restrict URL resolution with URL scheme and by URL regular expression white/blacklists)
* utils: change threadlocalattribute to rely on threading.local
(and implement threading.local for Python 2.3)
* Rhizome: except for new resources, move class-based authentication to fine-grained check
* raccoon: DomStore now invalidates affected cache nodes on transaction rollback
* raccoon: add support for multiple RDF formats (RDF/XML, NTriples, RxML, Turtle)
** replace save-metadata XPath function with save-rdf
** replace get-rdf-as-xml XPath function with serialize-rdf
* Rhizome: better support for RDF formats
** add a NTriples item format (and Turtle if redland is installed)
** enable viewing and editing of RDF in all supported formats
on these pages: edit-metadata, default-resource-viewer, view-metadata and search
* raccoon: fix bug where uncacheable XSLT stylesheets where being cached
* raccoon: fix bug where has- and get-metadata calls weren't being added to XSLT cache keys
* RxPath: add MemModel, an efficient in-memory Model; clean up Model constructors
* RxPath: remove dependencies on 4Suite Ft.Rdf package; now optional
** enables support for 4Suite 1.0b3 (which has no RDF package)
** add Statement and MutableStatement classes
* Rhizome: add shredding support:
** add shred() and shred-with-xslt() XPath functions
** add shredders config variable, default shredders include:
*** RDF (any supported format)
*** GRDDL
*** XHTML: extract hyperlinks, add wiki:links-to statements
*** Forrest FAQ XML: extract FAQ resources
*** extract doctype out of XML, removed Doctype dropdown from edit.xsl
** save.xml invokes shred() when saving content
** have import command shred unless new --noshred option is used
** add a "Extracted metadata" link on the view-metadata page to view the shredded RDF
* Rhizome: Add support for keeping track of links to missing pages.
* raccoon: path: URI resolver nows escapes URLs properly
* Rhizome: search.xsl - fix property links
* RxPath: completed RDFS schema support, including type inference based on rdfs:range or rdfs:domain.
* Rhizome: fix the "Save (keep editing)" option on the Edit page.
* Rhizome: save current default zml version when creating content and use it later if necessary
* Rhizome: inital support for collaborative bookmarks (see the bookmarksetup page)
* Rhizome: support for the Akismet anti-spam service
(to activate, set the akismetKey and akismetUrl config vars)
* XUpdate: get xupdate:include element working
* Rhizome: add update-triggers.xml, moved folder creation and cleanup code there.
* Rhizome: factored out keyword editing and saving into new edit-tags.xsl and replacetags.xml files
* Raccoon: add defaultExpiresIn config setting for setting expires header
if its not already set (default: 1 hour)
* Raccoon: add -s server.xml command line option to root-config.py
* utils: monkey patch Python's HTMLParser to fix bug with comments in script tags
* Rhizome: revamped create/edit/view user page, including new UI for joining roles and user groups.
* Rhizome: changed auth:with-guard-that-user-can-assign to auth:with-value-account-has-via-this-property
* RxPath: add simple but optimizing query engine (queries can run 10x - 1000x faster!)
Changes in Version 0.5.1 (Oct 21, 2005)
----------------------------------------
Minor release:
* docs: updated docs
* utils: replace glock implementation with one that doesn't require win32all
* Raccoon: add useFileLock config variable for turning on the inter-process lock
(default is off)
* setup: include test files in setup
* Raccoon: make transaction state thread local
* Rhizome: replace footer.xml with base:site-template\wiki:footer-text property
* Rhizome: add login-as-user option to the create user page
* Rhizome: add css skin files to the data store, add wiki:uses-skin property
* Rhizome: various fixes to glitches in themes and skins
* Rhizome: display session message in header and display page actions message there
* Raccoon: fix a couple of cache related bugs
(one caused an endless loop when displaying an empty page)
* RxPath: compatibility with 4Suite 1.0b2
Changes in Version 0.5 (Sept 28, 2005)
----------------------------------------
Major changes and bug fixes:
* Raccoon: allow multiple applications to be run in one instance
** added root-config.py application for configuring multiple applications
** fixed and renamed ROOT_PATH to appBase
** cookies (including session) are set to the app's path
** separate loggers per application created (see log.config)
** moved defaultPageName from server.cfg to application config
** changed link fixups to uses absolute paths
* Rhizome: fixed spurious 'admin password not set' warning
* utils: more HTML sanitizer fixes
* utils: added white list HTML sanitizer
* various: support for 4Suite 1.0b1
* Rhizome: added global check to authorization expression
* Rhizome: added optional templates for global read and write protection
* Raccoon: refactored raccoon.py: move extension functions, content processors
and caching into separate modules
* Raccoon: basic support for streaming actions and content processors
* Raccoon: added DomStore interface, allow Raccoon to work with XML DOMs
* RxPath: added "before triggers" for nodes being added and removed
* Raccoon: replaced global on-error trigger with separate ones per trigger
* Raccoon: use 2-phase commit transaction coordinator with requests
* Raccoon: added 'before-prepare', 'before-commit', and 'after-commit' triggers
* Raccoon: removed authorization hooks (use triggers instead)
* utils: added invalidation keys and digest keys to MRUCache
* utils: added 'xhtml' XSLT output methods based on XSLT 2.0's xhtml output method
* Rhizome: fix Javascript error when using IE to open the comments popup
* Rhizome: new, much more polished default theme
* Rhizome: pages (mostly, nearly) valid XHTML
* setup: enable setup.py to be run on files checked straight out of CVS
* utils: get MonkeyPatcher metaclass working
* Rhizome: added XPath function authorization
* RxPath: add StringValue for Document nodes, change createDOM api to pass model URI
* Raccoon: made request kw to XPath variable mapping configurable
* Rhizome: add support for validation of RDF model using Schematron
* RxPath: make is-subproperty-of and is-instance-of follow nodeset equality semantics
* RxPath: added is-subclass-of XPath function
* Rhizome: refactored Rhizome.py: move authorization, content processing
and commands into separate modules
* Rhizome: add "request" and "fixup-urls" XPath extension functions
* Rhizome: add site-theme.xsl, eliminates the need for a "theme.xsl" alias
* Rhizome: Always use fine-grained authentication, including with RxUpdate.
To support this, enhance authorization:
** Add new fine-grained permission: auth:permission-new-resource-statement
** Moved class based authorization to a separate step after updates are complete.
This eliminates changes with class inferencing during change authorization
thus simplying authorization behavior and makes it harder to create privilege escalation holes.
** reauthorize all the properties for all dependent resources when a
subproperty of auth:requires-authorization-for is added or removed
** Add several property-value predicates and allow custom property-value
predicates to be created (via the new 'auth-value-matches' XPath function).
** The new with-new-resource-value property-value predicate allows for access
tokens to only be applied to new resources created during the transaction.
This can be used for example, to allow a guest account to create a new user
for herself, but not modify or create other objects.
** Add a can-assign-guard property for users and roles and a corresponding
with-value-user-can-assign-guard property value predicate.
** Add a auth:grants-rights-to property to allow specific resources to execute
with extra privileges
** replaced find-unauthorized XPath function with authorize-statements
Changes in Version 0.4.3 (Jan 25, 2005)
----------------------------------------
Major changes and bug fixes:
* RxPath: add support for RDF Schema (see RxPath.RDFSSchema for more info)
* RxPath: remove the special case rdf:li pseudo-predicate, use rdfs:member instead
* Rhizome: various changes for RDF Schema support
* Rhizome: remove authPredicates config setting, use auth:requires-authorization-for
predicate instead (see docs/Upgrading)
* Rhizome: replace wiki:Any with rdfs:Resource
* RxPath: fix bugs with comparing attributes to elements that have the same parent
* setup: fix install directories, added the "blank" site directory
* Rhizome: use foaf:OnlineAccount instead foaf:Person
* utils: added class for safely truncating HTML or XML to a maximum number of words or lines
* Rhizome: improved UI for summaries, edit, preview, and keyword selection
* Raccoon: cache bug fixes (incl. one which broke saving changes to a user profile)
* ZML: couple of bug fixes when splitting URIs into QNames and when missing final new line.
* Rhizome: allow custom metadata to be saved along with a revision (see save.xml)
* Rhizome: enable comments for any type of resource
* Rhizome: external links will have rel='nofollow' added unless the content creator has
the "create-nospam-token" access token (by default all non-guest users do)
* Rhizome: various other bugs fixes (incl. saving binary content)
Changes in Version 0.4.2b (Nov. 26, 2004)
-----------------------------------------
Bug fix release:
* utils: fix embarrassing last-minute breaking of BlackListHTMLSanitizer
* Raccoon: make request recording and playback cross platform (pickle as binary files)
Changes in Version 0.4.2 (Nov. 24, 2004)
----------------------------------------
Minor release:
* Rhizome: fix login.zml
* Raccoon: fix request pickling (for -r option)
* Raccoon: add validateExternalRequest config setting
* Rhizome: for security, disallow form variable names from starting with '__'
* test: add framework for black box scripts (see test/rhizomeTest.py)
* Rhizome: fix bug where a minor edit change wasn't displayed sometimes
* Rhizome: manually set mime type for action handler pages (since auto-detect's broken)
* Rhizome: refactored the site-template and added pluggable themes, including
a sample theme based on Movable Type's. See Rhizome manual for more info.
* Raccoon: cache improvements and bug fixes
* Rhizome: fix endless loop when a not found handler trys to include a missing resource.
* RxML: bug fixes, including fixing rdf:datatype and xml:lang support
* RxPath: add -t command line option for invoking RxSLT transforms
* Rhizome: sanitize HTML/XML unless created by a user with proper access token
* Raccoon: XSLT processor now strips XML prologue (fix parsing with wiki2html.xsl)
* utils: add support for CDATA sections to LinkFixer
* Raccoon: better error reporting of invalid command line arguements
* setup: fix bugs installing auxillary files
* RxPath: handle rdf:ID properly with models that don't support reification
(not enabled by default: see BasePredicate.RDF_ID_EXPR in RxPathDOM.py)
* Raccoon: fixed bug where trailing slashes at the end of any URL (including URLs
to folders) caused broken links.
* zml: fix a few bad bugs parsing links and URI tokens
* various: fixes for compatibility with 1.0a4 version of 4Suite
Changes in Version 0.4.1 (Oct. 13, 2004)
---------------------------------------
Minor release:
* Rhizome: fix exception when importing .metarx files
* Rhizome: fix summary view for search
* Rhizome: add --astriples option to export
* utils: parseTriples(): properly unescape NTriple literals like '\\\r'
* utils: parse/writeTriples(): support @lang and ^^datatype literals
* RxPath: support for xml:lang and rdf:datatype predicate attributes
* RxPath: add xmlns(prefix=namespaceuri) support to query command-line
* Raccoon: configurable server id (see rhizome/server.cfg)
* Rhizome: use accept-charset='UTF-8' in forms and UTF-8 output encoding in XSLT
* RxPath: support for RDFLib, as RxPath store and as default RDF/XML parser
* Raccoon: wf:evaluate XPath function now adds the RxPath DOM namespaces to context
* All: various bug fixes throughout to better handle non-ASCII content
Changes in Version 0.4 (Aug 30, 2004)
---------------------------------------
Major changes and bug fixes:
* Raccoon: added content processing-level authorization
* Raccoon: added content digest-based authorization
(used by default by the now re-enabled Python content processor)
* Raccoon: authorization hook for XPath extension functions
* Rhizome: added RDF/XML output for search and metadata view,
* Rhizome: added RxML to RDF/XML page (RxMLSandbox)
* RxPath: use "bnode:" as bnode namespace URI
* RxML: added support for rx:a, use "bnode:"
* Rhizome: added revision comments and origin hostname
* Raccoon: added raccoon-format and raccoon-ignore XML processing instructions
* Rhizome: fix IE form bugs
* Raccoon: added several new XPath extension functions
* Rhizome: summary search view
* Raccoon: 'on-error' request-type
* Rhizome: added error handler pages (default and XSLT)
* Rhizome: added Keyword resource type
* Rhizome: added simple UI for editing and browsing keyword metadata
* Rhizome: added page for executing ad-hoc content (Sandbox)
* Rhizome: various bug fixes for save-contents and renaming pages
* Rhizome: conflict detection with externally modified content
(logs warning and adds wiki:save-conflict property to revision)
* Rhizome: change default PATH to prevent information leakage
* Rhizome: added view-source action
* ZML: more user-friendly error reporting
* Rhizome: added diff view for diffing revisions
* Rhizome: new defaults and caching for significant performance improvements
* ZML: syntax change: # -> 1. and ; -> #
* ZML: allow ; to support multiple logical lines on one physical line
* ZML: allow {URIRef} to be used in place of QName (simplifies RxML)
* Rhizome: use FOAF ontology for users
* Rhizome: full-text indexing using Lupy (optional)
* Rhizome: now, by default, only administrators can apply the "released" label
* Rhizome: added XPath function to check if actions on resources are authorized
* RxUpdate:added for-each element/instruction (use $current for current node)
* Rhizome: added a "Save (keep editing)" button to edit page for background saving
* Raccoon: _name is URL decoded (so now you can have page names with spaces, etc.)
* Rhizome: improve RSS support on search page; use RSS 2.0
* Rhizome: reduce memory bloat in caches: removed dump.xml, added robots meta
tag with "noindex,nofollow" to many pages
* All: too many minor bug fixes and enhancements to list here
Changes in Version 0.3 (May 12, 2004)
---------------------------------------
Major changes and bug fixes:
Security related:
* Raccoon: Python content processor disabled by default
* Rhizome: creating python or RxUpdate pages require pre-defined access tokens
(see rhizome/save.xml)
* Rhizome: admin password digest no longer stored in model
* Raccoon: disable unsafe 4Suite XPath/Xslt extension functions
* Raccoon: added transaction log/audit trail of changes to the model
* Raccoon: added various authorization hooks
* Rhizome: added authorization of assign-metadata (see rhizome.authorizeMetadata())
* Rhizome: add fine-grained authorization when modifying the model
* Rhizome: add class-based authorization and priority to access tokens
* Rhizome: add authorization model with secure defaults
* Rhizome: added private seed for generating secure hashes
ZML:
** Renamed RhizML to ZML
** made ZML.py standalone (no dependency on rx package)
** added xml to zml option
** added #?zml prolog with optional markup map URI
** lines that begin with #! are ignored
** lines that begin with #? are treated as processor instructions
** leading '<' are treated as spaces
** \Uxxxxxxxx and \uXXXX are converted to character references (XXX;)
** have two modes for parsing: "markup" and "mixed"
** lines like "#?zml markup" or "#?zml" set the parser in and out of markup mode
** in markup mode, wiki text is not allowed
** in mixed mode a line must start with a '<' to be treated as markup, otherwise it's wiki text
** in mixed mode leading space continues the previous line (instead of trailing \ as before)
Other:
* Rhizome: support for aliases of page names
* Rhizome: support for interwiki links (see rhizome/intermap.txt)
* Rhizome: added preview option in edit page
* Rhizome: added Wiki-style link display options (see rhizome/wiki2html.xsl)
* Raccoon: Etag are now set on all responses and If-None-Match honored
* Raccoon: the xml/html content processor now fixes up 'site:' URLs
* utils: added class for fixing up links in HTML and XML
* Raccoon: content processors can now dynamically chain formats based on content
(for XSLT and RxSLT stylesheets, use assign-metadata('_format','format'))
* RxUpdate:added define-template and call-template elements
* Rhizome: added support for hierarchical names and folders
* Rhizome: added folder view handler (see rhizome/dir.xsl)
* Rhizome: revisions saved as diffs are now saved to disk like other content
* RxPath: added sort() extension function that sorts a node set like XSLT's sort element
* RxUpdate:attribute values in literal elements are now treated as attribute value templates
* Rhizome: default template less ugly
* Rhizome: added RxML, RxML Edit, and RxPathDOM output to search
* Raccoon: bug fix: convert response status code to an int (fixes login error on IE 6)
* Rhizome: enable the creation of anonymous entries (see save.xml)
* RxUpdate:added include element
* RxPath: RDF containers (rdf:Seq, rdf:Bag, rdf:Alt) are now implemented as
described in the RxPath spec.
* RxPath: Descendant axes are now implemented as described in the RxPath spec.
* utils: Diff and patching bug fixes, add fast diff for sorted lists
* Raccoon: Add MRU file cache (disabled by default)
* RxPath: diffing and 2-way merge RxPath DOMs and nodes
* Rhizome: new defaults to enable viewing, editing, and deleting resources regardless of type
* Rhizome: added RxML template disposition for creating new resources
* Rhizome: added Recent Changes page
* Rhizome: added administration page and new resource templates
* RxPath: added core RxPath functions for mapping URIs to QNames (and implemented id())
* RxPath: added "uri" attribute to Predicate elements
* Rhizome: added sha1 digest and content length to the model when saving content
* Raccoon: added an option whicn adds an identifying statement each time a model is committed.
* Rhizome: better handling of content-type response header
* Rhizome: new metadata view and search display make browsing the model much easier.
* Rhizome: added print view template and link
* Raccoon: various minor refactorings for usability and flexibility
* Rhizome: added help pages
Changes in Version 0.2 (Feb. 29, 2004)
---------------------------------------
Major changes and bug fixes:
* Rx4RDF: The RxPath engine has been completely rewritten.
Changes include:
** much faster
** RDF lists are now implemented as described in the RxPath spec.
** updates underlying model incrementally as changes are made
** loads statements from the underlying model on demand
** simple interface for supporting for multiple RDF model implementations
** support for 4Suite (default) and Redland (experimental) RDF models
** commit/rollback support
** the default memory model now incrementally commits changes to disk
instead of re-saving the whole model.
* RxUpdate: added new xupdate:replace and xupdate:copy-of element/instructions
* RxUpdate: implemented xupdate:variable element/instruction
* Racoon: added cacheing of RxPath expression parsing, stylesheet parsing,
RxPath evaluation, and Racoon Actions.
(See docs/RacoonCaches for config options.)
* Racoon: partial support for virtual host names.
(See rhizome/server.cfg for config options.)
* utils: added iterators and visitors for compiled XPath expressions
* utils: utility classes for generating exception classes and patching 3rd-party classes
* Rhizome: rewrote saving content logic, including allowing external
content to be safely changed by external applications
* Rhizome: added config-specific functions to ease extending Rhizome
* Rhizome: improved static export (including added $_static var for dynamic content)
* Rhizome: added support for revision labels and draft/release workflow
Changes in Version 0.1.3 (Dec. 15, 2003)
---------------------------------------
Major changes and bug fixes:
* utils: added function for creating thread-local properties
* utils: add Res class for programmatically building a RDF model
* Rhizome: add save content to disk option
* Rhizome: smarter '--import' command
* Rhizme: generalize request pipeline to handle arbitrary resource types
* Rhizome: Added users, roles and associated pages (signup, login, etc.)
* RxUpdate: changed semantics of xupdate:value-of to align with xslt's value-of
* Rhizome: implemented search, results in HTML or RSS
* Racoon: exposed $url, $_base-url, and $_path variables
* Racoon: Added support for sessions, improve cookie support
* Racoon: Upgrade http server to be based on CherryPy-0.9 (from 0.8)
* Racoon: Support for python 2.3
* Rhizml: link annotations
* Rhizml: added syntax for
,
and* Rhizome: added authorization infrastructure * Rx4RDF: fixed loading .rdf files from the rdfdom.py command line * Rx4RDF: fixed exceptions with circular reference * All: added logging (includes support for Python 2.2) Changes in version 0.1.2 (Oct. 30, 2003) ---------------------------------------- Everything. (initial public release)