News / Changelog
================

Version 1.1.6
-------------

  * new module added: log (centralized logging for surf)
  * new LogMixin superclass for Store and Plugin,
  * support for deprecation
  * deprecated methods enable_logging and is_logging_enabled (use LogMixin facilities)
  * deprecated the use of only_direct where defined, use direct_only - this feature will be removed by 1.2.0!

Version 1.1.5
-------------

  * Issue 54 - fixed
  * Issue 45 - SuRF can be installed from source with pip (FIXME: python chesse shop)
  * Issue 40 - (could not reproduce locally, however rdflib 3.2.1 was used and worked surf + surf.rdflib)
  * Issue 27 - fixed
  * Small changes in version API (see __version__.py)

Version 1.1.4
-------------

  * Changes to support rdflib 3.1.0
  * plugin-wide execute_sparql(), fix JSON result format, better SPARQL ASK
    query support
  * Descending ordering of results
  * Updated Sesame2 & AllegroGraph support
  * many bug fixes
  * Dropped dependency on old & buggy cjson
  * More unit tests
  * Tests are shipped with the source code


Version 1.1.3
-------------

  * Fixed bug on plugin manager for running SuRF in embedded mode (bundled with an application)
  * Single version control point (see, __version__.py)


Version 1.1.2
-------------

  * Support for loading plugins directly from folder if specified
  * Introduced the plugin manager module


Version 1.1.1
-------------

  * Changes to support Python 2.4
  * Added new vocabularies to the default namespace manager
  * Bug fixes


Version 1.1.0
-------------

  * Class mapping based on rdf:type in session
  * Query builder allows min, max, avg aggregate functions
  * get_by accepts Resource instances as values, uses their subjects
  * ResultValue supports "in" (if some_person in person.foaf_knows: ...)
  * "single" descriptor for easy access to attributes with single value
  * Fixed multiple bugs in sesame2 plugin
  * Default namespace can be specified for autogenerated resource URIs


Version 1.0.0
-------------

  * Improved resource and attribute querying:
      * filter resources by attribute values 
      * filter resources using SPARQL filter expressions 
      * limit, offset, order ascending/descending 
      * specify graph/context where resources should be loaded from and later 
        saved to 
      * eager-load resource attributes 
  * More documentation and examples


