Difference between revisions of "VersionHistory"

From BioCASe Provider Software
Jump to: navigation, search
(Upcoming)
(Upcoming)
 
(138 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Current Version 3 ==
 
== Current Version 3 ==
 +
 
=== Upcoming ===
 
=== Upcoming ===
 +
* Timeout added for the request to retrieve latest version from subversion repository
 +
* Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
 +
* QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
 +
* Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
 +
* DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.
 +
 +
=== Version 3.8.5 [2023-11-30] ===
 +
* Bugfix for ConfigTool login page (didn't work for empty webroots like ''biocase.xxxx.de'')
 +
* Fix for CMF upgrade function
 +
 +
=== Version 3.8.4 [2023-08-18] ===
 +
* Fix for login page of configtool (didn't used the webroot from configuration)
 +
* Use SQL statements with parameters for most DB mods
 +
 +
=== Version 3.8.3 [2023-01-13]===
 +
* Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)
 +
 +
=== Version 3.8.2 [2022-06-08]===
 +
'''Important: BioCASe now requires Python version 3.7+'''
 +
* Fixes
 +
** Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
 +
** Check if file system supports Unicode; if not, convert archive file names to ASCII.
 +
** Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
 +
* Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.
 +
 +
=== Version 3.8.1 [2021-09-24] ===
 +
* DarwinCore Archives
 +
** Term ''occurrenceStatus'' added (''present/absent'', set from ''abcd:basisOfRecord'')
 +
** Extension ''MeasurementOrFact'' added; will be filled from ''abcd:MeasurementOrFact''
 +
** Invalid term ''occurrenceDetails'' removed
 +
* Smaller fixes
 +
** Apache configuration snippet is now compatible with Apache 2.4
 +
** If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
 +
** Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
 +
** Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)
 +
 +
=== Version 3.8.0 [2021-06-04] ===
 +
* BioCASe now runs on Python 3 - yeah!
 +
* Advantages
 +
** Removal of external dependencies: consistent use of internal Python packages
 +
** Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
 +
** Better handling of invalid database values (control characters used to break requests)
 +
** Easier installation: All database-dependent packages can be installed by Python itself
 +
** DB connection setting "encoding" removed (will be detected automatically)
 +
** Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly
 +
 +
=== Version 3.7.4 [2021-05-17] ===
 +
* Last version for Python 2!
 +
* Fixes
 +
** in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
 +
** for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
 +
** in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
 +
** in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).
 +
 +
=== Version 3.7.3 [2019-12-02]===
 +
* Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
 +
* ABCD 2.1 template in manual query form moved right next to ABCD 2.06
 +
* Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
 +
* Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.
 +
 +
=== Version 3.7.2 [2019-07-10]===
 +
* Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
 +
* Bugfixes in Local Query Tool
 +
** Error page on "Grouping page" now displayed correctly.
 +
** for SSL handshake error on certain installations if HTTPS is used.
 +
** Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
 +
* PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
 +
* QueryTool: Preview added in detail view for multimedia types video and sound
 +
* Template for connecting to an [https://www.irisbg.com IrisBG database] added.
 +
 +
=== Version 3.7.1 [2018-10-02] ===
 +
* XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
 +
* New feature ''Filtered Export'' allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
 +
* GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
 +
* Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
 +
* Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).
 +
 +
=== Version 3.7 [2018-06-12]===
 +
* Dockerfile and Makefile added for dockerisation
 +
* ODBC modules now use pyodbc or ceODBC, whichever is installed.
 +
* DBmod_sqlite overhauled; uses Python-integrated module ''sqlite3'' and supports metadata retrieval.
 +
* Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
 +
* Java version now shows type of JRE installed (for example OpenJDK)
 +
* If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
 +
* Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
 +
* Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
 +
* Apache snippet in setup script adapted to Apache 2.4
 +
* Fully functional demo data source included (uses included Sqlite database).
 +
* Parameter ''url'' removed from manual query form for security reasons; target URL can now be changed manually in the form.
 +
* Fixes
 +
** in dbmod_oracle for metadata retrieval
 +
** in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
 +
** in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
 +
** for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
 +
** for layout of ''dsa_info'' page for new Firefox Quantum (versions 57+).
 +
** in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).
 +
 +
=== Version 3.6.4 [2017-07-04] ===
 +
* QueryTool now lists annotations created with [https://annosys.bgbm.fu-berlin.de/ AnnoSys] and allows to create an annotation.
 +
* ''System administration'' page now allows to view log files in browser
 +
* Changes to LIDO schema (small version): Element ''Point'' of complex type ''gml'' now expanded to full GML type; elements ''LineString'' and ''Polygon'' removed
 +
* Fixes
 +
** Bugfix in wrapper core for multi-column primary keys
 +
** Bugfix for "remove cached objects" in system administration
 +
** Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
 +
** Bugfix in metadata retrieval for dbmod_pymssql_2012+
 +
 +
=== Version 3.6.3 [2016-08-08] ===
 +
* DwC archive generation: ABCD node ''Licenses'' will now be tranferred into an ''intellectualRights'' paragraph in the EML document if provided.
 +
* Fix/change for dbmod_oracle.py: Paging is now faster
 +
* New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file
 +
 +
=== Version 3.6.2 [2016-07-21] ===
 +
* Debug output now contains INFO items on time required for SQL execution and XML creation.
 +
* Changes in DarwinCore transformation:
 +
** Transformation streamlined
 +
** ''IdentificationQualifier'' is now correctly filled from ABCD field
 +
** GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the ''sequence'' attribute is mapped)
 +
** If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
 +
** Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
 +
** Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
 +
* Fixes
 +
** Bugfix in metadata retrieval for dbmod_pymssql
 +
** Duplicate slash in access point URL removed in case a slash was specified at the end of base URL
 +
 +
=== Version 3.6.1 [2016-03-14] ===
 +
* New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
 +
* DarwinCore Archives: Field ''higherClassification'' is now also filled with higher taxa that don't have a rank specified.
 +
* Fixes
 +
** Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
 +
** Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).
 +
 +
=== Version 3.6.0 [2015-10-27] ===
 +
* Support for [http://www.lido-schema.org/ LIDO schema] added (including smaller changes to wrapper core).
 +
* Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
 +
* XML archiving improved
 +
** uses less memory now (and will be probably faster with larger datasets)
 +
** is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
 +
* Support for ABCD 2.1 added to QueryTool and archiving.
 +
* ''SchemaLocation'' is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
 +
* DB mod for Excel not experimental any more.
 +
* Fixes
 +
** DarwinCore Archives: Fields ''dc:identifier'' and ''dc:references'' in multimedia extension are now correctly created from ''abcd:FileURI'' and ''abcd:ProductURI''.
 +
** DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
 +
** Namespace only added for all attributes if attributeForm=qualified in schema definition.
 +
** base_dbmod: verifyTable now retrieves the table list from the DB only once.
 +
** dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
 +
** dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
 +
** Warning ''Destination hostname could not be determined'' removed.
 +
** Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
 +
** Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
 +
** In the DB structure editor, trailing ''$'' characters in table/view names are removed for creating the alias.
 +
 +
=== Version 3.5.3 [2015-01-23] ===
 
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
 
* QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
 
* New experimental dbmod for Excel (ODBC).
 
* New experimental dbmod for Excel (ODBC).
* Slight changes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
+
* Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
 
* Fixes
 
* Fixes
 
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
 
** In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).

Latest revision as of 16:06, 14 November 2024

Contents

Current Version 3

Upcoming

  • Timeout added for the request to retrieve latest version from subversion repository
  • Archiving page: List schemas in dropdown box in descending order, so that ABCD 2.1 shows before 2.06 before 1.2
  • QueryTool: Changed default schema from ABCD 2.1 to ABCD 2.06, since this is used more commonly
  • Fix for DwC archives: occurrenceStatus and occurrencID had been swapped in descriptor file meta.xml
  • DwC archive transformation: BasisOfRecord="AbsenceObservation" will be translated into "HumanObservation", since AbsenceObservation is not accepted by GBIF.

Version 3.8.5 [2023-11-30]

  • Bugfix for ConfigTool login page (didn't work for empty webroots like biocase.xxxx.de)
  • Fix for CMF upgrade function

Version 3.8.4 [2023-08-18]

  • Fix for login page of configtool (didn't used the webroot from configuration)
  • Use SQL statements with parameters for most DB mods

Version 3.8.3 [2023-01-13]

  • Fix in Database connection for Python versions with two-digits minor version (e.g. 3.10)

Version 3.8.2 [2022-06-08]

Important: BioCASe now requires Python version 3.7+

  • Fixes
    • Unicode problem with MySQL data sources fixed (by setting the enoding explicitly in connection string)
    • Check if file system supports Unicode; if not, convert archive file names to ASCII.
    • Always use utf8 encoding for the archiving logs. This requires Python 3.7, since the method for reconfiguring stream encodings was introduced in that version. Python 3.6 doesn't receive any security fixes anymore.
  • Check for existence of Kettle libraries before starting a DwC-A transformation - and issue a hint in case they're missing because a BioCASe version without Kettle is installed.

Version 3.8.1 [2021-09-24]

  • DarwinCore Archives
    • Term occurrenceStatus added (present/absent, set from abcd:basisOfRecord)
    • Extension MeasurementOrFact added; will be filled from abcd:MeasurementOrFact
    • Invalid term occurrenceDetails removed
  • Smaller fixes
    • Apache configuration snippet is now compatible with Apache 2.4
    • If installed, the lxml library will now be shown as installed on Testlibs page (workaround for non-exposed __version__ attribute in versions < 4.5.0)
    • Fix for Ubuntu 18.04: QueryTool didn't work because OS reported a wrong file encoding (encoding now explicitly set to UTF8 upon template loading)
    • Changes in Postgres dbmod for Version 3.8 reverted (used to cause problems for case-sensitive file systems)

Version 3.8.0 [2021-06-04]

  • BioCASe now runs on Python 3 - yeah!
  • Advantages
    • Removal of external dependencies: consistent use of internal Python packages
    • Up to 50% faster due to code clean-up and Python optimizations (tested on MySQL and SQL Server databases)
    • Better handling of invalid database values (control characters used to break requests)
    • Easier installation: All database-dependent packages can be installed by Python itself
    • DB connection setting "encoding" removed (will be detected automatically)
    • Pre/post 2012 versions for SQL Server merged: server version will now be detected automatically and SQL syntax adapted accordingly

Version 3.7.4 [2021-05-17]

  • Last version for Python 2!
  • Fixes
    • in DwC transformation if there is only one identification without preferred flag (ends up now correctly in occurrence core file, not identification extension).
    • for archiving page in config tool: Also allow unicode chars in dataset titles (broken since introduction of filtered downloads).
    • in Dockerfile: Remove apache2.pid before starting Apache in order to prevent problems in case the Docker container wasn't shut down correctly.
    • in Local QueryTool, record list page: The map now also works if some of the records lack coordinates (used to break the leaflet map).

Version 3.7.3 [2019-12-02]

  • Skin unitid_int added for UnitIDs of integer type (necessary for Postgres databases, since it doesn't accept the like operator on integers; MySQL and SQL Server don't object if the operand doesn't contain wildcards).
  • ABCD 2.1 template in manual query form moved right next to ABCD 2.06
  • Bugfix for mapping editor: If column retrieval is not available, potential dots are removed from column names, since they're not allowed.
  • Method sanitiseFieldStorage added that removes any suspicious characters from CGI paramaters.

Version 3.7.2 [2019-07-10]

  • Bugfix for Archiving/section "Existing archives": Link for converting XML archives into DwC archives fixed.
  • Bugfixes in Local Query Tool
    • Error page on "Grouping page" now displayed correctly.
    • for SSL handshake error on certain installations if HTTPS is used.
    • Skin configuration in querytool_prefs.xml is now read correctly (used to be ignored).
  • PyWrapper Wiki logo moved to local resources in order to prevent "not secure" message on HTTPS installations.
  • QueryTool: Preview added in detail view for multimedia types video and sound
  • Template for connecting to an IrisBG database added.

Version 3.7.1 [2018-10-02]

  • XML Archiving allows now to set a BioCASe filter in order to archive and publish just a subset of the records published by a data source.
  • New feature Filtered Export allows to export and download a subset of the records in a datasource into an XML archive without touching the XML and DwC archives that will be published to network harvesters by the dataset inventory.
  • GoogleMaps in QueryTool replaced with OpenStreetMaps because of changes to Google's billing policy.
  • Bugfix for AnnoSys retrieval (used to cause SSL handshake errors on certain installation).
  • Bugfix for path handling of sqlite databases (now always relative to BioCASe home directory).

Version 3.7 [2018-06-12]

  • Dockerfile and Makefile added for dockerisation
  • ODBC modules now use pyodbc or ceODBC, whichever is installed.
  • DBmod_sqlite overhauled; uses Python-integrated module sqlite3 and supports metadata retrieval.
  • Local QueryTool: If a typified name is given for a type, it is now listed in brackets after the type status.
  • Java version now shows type of JRE installed (for example OpenJDK)
  • If configuration files cannot be loaded, raise an exception right away (makes it easier for the user to identify the problem if the setup script is run with missing configuration files).
  • Testlibs page: Graphviz check now executes the file and retrieves version info instead of just checking for file existence.
  • Default value for graphviz path in config.ini set to Debian default for easier dockerisation.
  • Apache snippet in setup script adapted to Apache 2.4
  • Fully functional demo data source included (uses included Sqlite database).
  • Parameter url removed from manual query form for security reasons; target URL can now be changed manually in the form.
  • Fixes
    • in dbmod_oracle for metadata retrieval
    • in DB structure editor of ConfigTool: If a table is removed from the setup, the second confirmation dialog has been removed. This keeps the user from rendering the configuration invalid by keeping invalid FKs.
    • in DB structure editor of ConfigTool: If a table is purged from the setup because of a missing primary key or table name, a more verbose message is being printed.
    • for XML archiving: Hashtag character removed from dataset title when generating the archive names; the download link for the archiving page of the config tool is now correctly URL-encoded.
    • for layout of dsa_info page for new Firefox Quantum (versions 57+).
    • in DwC transformation for the case that several identifications exist per unit and one of them has a preferred flag=true, while others have no preferred flag set (= empty).

Version 3.6.4 [2017-07-04]

  • QueryTool now lists annotations created with AnnoSys and allows to create an annotation.
  • System administration page now allows to view log files in browser
  • Changes to LIDO schema (small version): Element Point of complex type gml now expanded to full GML type; elements LineString and Polygon removed
  • Fixes
    • Bugfix in wrapper core for multi-column primary keys
    • Bugfix for "remove cached objects" in system administration
    • Bugfix in QueryTool for search fields with no label defined (XPath used instead now)
    • Bugfix in metadata retrieval for dbmod_pymssql_2012+

Version 3.6.3 [2016-08-08]

  • DwC archive generation: ABCD node Licenses will now be tranferred into an intellectualRights paragraph in the EML document if provided.
  • Fix/change for dbmod_oracle.py: Paging is now faster
  • New "reset" function for archiving: If the archiving thread is killed for some reason, this allows to reset the archiving process by removing the proc file

Version 3.6.2 [2016-07-21]

  • Debug output now contains INFO items on time required for SQL execution and XML creation.
  • Changes in DarwinCore transformation:
    • Transformation streamlined
    • IdentificationQualifier is now correctly filled from ABCD field
    • GatheringAgents are now ordered by sequence (if they are mapped as separate gathering persons and the sequence attribute is mapped)
    • If type status information are provided with a typified name, they are now assigned to the respective identification result (if no typified name is given, they are grouped and assigned to the preferred identification in the occurrence core)
    • Fixed the issue that one of the identifications was lost if identical scientific names were provided for both a preferred and a non-preferred identification
    • Fixed the issue that higherClassification contained double entries if higher taxa were provided for identifications with empty scientific name
  • Fixes
    • Bugfix in metadata retrieval for dbmod_pymssql
    • Duplicate slash in access point URL removed in case a slash was specified at the end of base URL

Version 3.6.1 [2016-03-14]

  • New experimental dbmod added for text files: Allows to publish data directly from csv files (for example, the contents of a DarwinCore archive).
  • DarwinCore Archives: Field higherClassification is now also filled with higher taxa that don't have a rank specified.
  • Fixes
    • Unhandled exceptions in manual query form removed (occurred when incorrect data source name or no parameter at all was given).
    • Bugfix for XML archiving (occurred when configuration parameter xml_retries not present in config.ini).

Version 3.6.0 [2015-10-27]

  • Support for LIDO schema added (including smaller changes to wrapper core).
  • Various changes to mapping editor in preparation for the LIDO schema (e.g. dealing with mandatory nodes that do not have mandatory leaf elements)
  • XML archiving improved
    • uses less memory now (and will be probably faster with larger datasets)
    • is error tolerant now: If a query fails during the archiving, a configurable number of retries will be done after a short waiting period.
  • Support for ABCD 2.1 added to QueryTool and archiving.
  • SchemaLocation is now set for most schemas (ABCD 2.06, ABCD 2.1, LIDO, GGBN).
  • DB mod for Excel not experimental any more.
  • Fixes
    • DarwinCore Archives: Fields dc:identifier and dc:references in multimedia extension are now correctly created from abcd:FileURI and abcd:ProductURI.
    • DarwinCore Archives: Deprecated namespace for multimedia extension replaced with namespace for Simple Multimedia Extension
    • Namespace only added for all attributes if attributeForm=qualified in schema definition.
    • base_dbmod: verifyTable now retrieves the table list from the DB only once.
    • dbmod_pymssql/2012: Order tables alphabetically; convert table/column names to unicode explicitly.
    • dbmod_pymssql2012/odbc_tsql_2012 renamed to 2012+, because they also work with SQL Server 2014.
    • Warning Destination hostname could not be determined removed.
    • Archives that have been manually moved/renamed/deleted in the file system will now be automatically removed from the Provider Software.
    • Mapping editor doesn't run into an exception if a mapping contains more than five elements and issues a warning instead.
    • In the DB structure editor, trailing $ characters in table/view names are removed for creating the alias.

Version 3.5.3 [2015-01-23]

  • QueryTool now uses libxml2/libxslt or 4Suite XML, whichever is installed. This allows the QueryTool to be used with Python versions later than 2.5, for which 4Suite XML is not available.
  • New experimental dbmod for Excel (ODBC).
  • Slight changes and fixes in mapping editor (pop-up window can now be closed with Return or Escape) and datasource overview of the configuration tool.
  • Fixes
    • In wrapper core for mandatory attributes: If unmapped, the respective element is now removed (used to be removed only if the mandatory attribute was mapped to an empty, i.e. NULL field).
    • for dbmod_odbc_tsql/dbmod_odbc_tsql_2012: In certain cases, SQL statements used to return no results for no reason. Parameters are now integrated into the statements instead of being passed separately, that fixed the issue.
    • CMF upgrades now also keep the static table definition.

Version 3.5.2 [2014-07-18]

  • Fixes
    • For metadata retrieval in DB package pymssql (table lists used to be empty for SQL Server 2005 installations).
    • Admin password removed from configuration dump in system administration.
    • For update hint (for the case that an installation was updated before the hint advised this).
    • DwC archiving
      • For duplicate identical identifications in the source ABCD document (used to quadruplicate the affected occurrences in the result DarwinCore archive).
      • EML document now also valid if some metadata elements in ABCD are empty.
  • Namespace prefix for ABCD 2.1 added.
  • Some content added to dummy files to force Winzip into extracting empty folders from the download archive.
  • Warning added to table setup if configured PKs/FKs do not exist in database any more.

Version 3.5.1 [2014-04-10]

  • DwC Archives
    • Terms verbatimCoordinates, coordinatePrecision, georeferenceProtocol, verbatimElevation, verbatimDepth, minimumDistanceAboveSurfaceInMeters, maximumDistanceAboveSurfaceInMeters, locationRemarks, identificationVerificationStatus, recordNumber added.
    • Term verbatimLocality removed (ABCD element AreaDetail now stored as locationRemarks), term eventID removed (ABCD Gathering/Code now stored as fieldNumber).
    • ABCD element CollectorsFieldNumber is now correctly mapped to recordNumber; fieldNumber is filled with ABCD elemen Gathering/Code.
  • DB connectivity
    • Paging mechanism optimised for Oracle (rownum replaced with row_number).
    • Unicode handling changed for MySQL.
    • Firebird modules (native + ODBC) revised; works now with current Firebird installation and supports efficient paging.
    • Sybase module revised; works with current versions of Sybase Adaptive Server; metadata retrieval implemented.
    • When Postgres is used, another port than the default 5432 can be used.
  • Update Mechanism
    • Provider Software checks for updates once a week and shows update hint if a new version is available.
    • Installation script now supports importing the configuration of an old installation, including mapped data sources.
  • QueryForm now also shows Dataset Inventory.
  • Testlibs page now shows detailed error message in hover text for packages that are not installed.
  • Data source lists are now sorted alphabetically.
  • Fixes
    • If no data source parameter is passed in the URL or if data source is invalid, an error message is now being returned instead of an empty response when Apache is used.
    • Wrong error messages caused by empty strings returned from DB for columns mapped to int and float XML data types removed.
    • Search request with count=true doesn't fail with exception now if count SQL statement doesn't return a row.

Version 3.5 [2013-12-05]

  • XML archiving now shows progress in percent.
  • Mapping editor concept tree
    • Overhauled (collapsable subtrees thanks to Falko Glöckler)
    • Fix for attributes (used to be misplaced when show all concepts was checked)
    • Now has a floating Save button
  • New dbmods for SQL Server 2012 added, supporting new OFFSET clause.
  • Fixes
    • Term recordedBy is now filled correctly in DarwinCore archives.
    • Mapping editor now works even if there is no connection to the database.
    • Selective XML archiving now also works for datasets with multiple subsequent spaces in dataset title.
    • XML archiving now works for datasets with characters &, < or > in title.
  • Cosmetics
    • Datasource page: List of target schemas for possible upgrades now hides cmf_ prefix.

Version 3.4.2 [2013-07-15]

  • XML Archiving can now be limited to certain datasets within one data source.
  • Optional attribute expires for archives added to dataset inventory.
  • Fixes:
    • On Archiving page for datasets with titles containing non-ASCII characters (Internet Explorer).
    • Archiving page now also works with Safari.
    • DarwinCore Archives: Term verbatimCoordinateSystem removed (was misapplied), verbatimSRS replaced with geodeticDatum.
    • Namespace prefixes added for DNA and EFG extensions.
    • More verbose error messages for dbmods odbc_access and odbc_tsql.

Version 3.4.1 [2013-04-04]

  • Fixes:
    • in dbmod_psycopg2 (Postgres) for non-ASCII characters in primary keys.
    • in dbmod_mysql (MySQL) for unicode databases.
    • in dbmod_oracle (Oracle): SCAN results now only yield values that are referenced by at least one root record.
    • Search request with "count=true" now returns the correct number when filters on repeatable elements are used (by doing a COUNT DISTINCT on the primary key).
    • for non-ASCII characters in element attributes (used to break the request).

Version 3.4 [2013-02-20]

  • XML archiving re-implemented:
    • Now directly calls BioCASe libraries instead of using the web service. Results in less complex code and significantly improved archiving performance.
    • XML documents are not pretty-printed any more, but stored without line breaks and leading spaces for indentation, which results in smaller documents and smaller archives.
    • Archiving is now dataset-aware for ABCD 2.06 and HISPID 5 schemas, i.e. each datset published by the webservice will end up in a separate archive.
  • DwC archive transformation simplified.
  • Archiving page overhauled.
  • Archiving information shown in datasource configuration page overhauled.
  • New dataset inventory allows discovery of published datasets and their XML/DwC archives for schemas ABCD 2.06 and HISPID 5.
  • Corrections in layout of DB structure page in datasource configuration tool.
  • Default record limit for web service set to 1000.
  • Change in dbmod_tsql: Do not display tables/views of schemas INFORMATION_SCHEMA and sys.
  • Improvements to the QueryTool (thanks to Franck Theeten): Images will now be viewed on the record details page, coodinates printed on a map; several smaller changes.
  • Bugfix for diagnostic messages with non-ASCII characters (used to bring up a malformed response document).
  • Bugfix for filters containing single quotes for dbmods odbc_tsql and odbc_access.
  • Fix for dbmod_orcale: Synonyms for tables now included in table lists.
  • Fix for dbmod_odbc_access: Python error when SQL statement failed removed.
  • Fix for dbmod_pymssql: Problems with non-ASCII characters in primary key columns solved.

Version 3.3.2 [2012-11-26]

  • Test version of new dataset inventory added: If ABCD 2.06/HISPID5 is mapped, it will list all datasets published by the web service with the respective XML/DwC archives, if present.
  • Bugfix: When on the DB Connection page of the config tool the Save button was pressed after the user had been logged out because of a long period of inactivity, the settings were lost. This has been fixed.

Version 3.3.1 [2012-11-09]

  • Archiving: Archive name is now set automatically by BioCASe; various smaller changes.
  • Upgrade feature changed; now possible to a schema with the same namespace. For example, an existing ABCD 2.06 schema mapping can now be upgraded to ABCD-EFG or ABCD-DNA and vice versa. More upgrade paths added.
  • Fixes
    • dbmod_odbc_tsql now lists tables of all schemas (not only dbo)
    • dbmod_oracle/oracle now use correct format for date/datetime conversion
    • base_dbmod: Bugfix for filter parameters with unicode characters (used to break the request in certain cases)
    • Bugfix for conversion of XML data type "date"

Version 3.3 [2012-10-04]

  • Archiving can now be triggered from outside the UI through a deep link (allows scheduling)
  • Datasource Overview now lists DarwinCore Archives; several smaller changes in UI.
  • Bugfixes
    • Ordering the result of a Scan request is now done in the database. This prevents problems when the collation of the DBMS is different from Python's.
    • Concept count in config tool (datasource overview) corrected: Now includes attributes of hierarchy elements. The count now includes leaf elements that can store data and all attributes.
    • Dummy files added to empty folders to prevent WinZip from ignoring them.
    • Local QueryTool: Umlauts in scientific names are now replaced with placeholder *

Version 3.2 [2012-07-09]

  • DarwinCore Archives fully integrated into config tool interface
  • Changes for XML archiving:
    • Log files are kept for old archives and can be viewed later even if a XML archive generation for the same file name was started, but was not finished successfully (in the past, this used to overwrite the old log file)
    • Log files of failed or cancelled archiving runs can be viewed later
    • If errors occur during archiving, the log output is less arcane now (e.g. when ceODBC is used)
    • Format of output changed
  • Fixes for page DB Structure:
    • DB graph generation works now also when IIS is used
    • No exception thrown in case there is no connection to the database
  • Other fixes:
    • Removing a schema mapping in the config tool doesn't break the Capabilities any more (PSF is updated to reflect this change)
    • install/readme files updated

Version 3.1 [2012-04-23]

  • Fixes for XML archives:
    • Compatibility issue with IIS solved (root directory returned by webserver is different from Apache's, see http://osdir.com/ml/python.web/2005-10/msg00008.html)
    • Webinterface overhauled; reacts faster now because server interaction has been reduced
    • If webinterface is left open in the browser during archive generation, less load is put on the server for showing the progress
    • XML declaration added to documents
    • If documents contain elements from several schemas (e.g. an extension is used), all namespaces are added
    • Bugfix for the case that no results are returned for the chosen mapping.
    • Archiving binary moved from archive working folder to archive lib folder
  • Metadata retrieval added for pymssql (SQL Server connectivity package)
  • Error message for dbmods that don't support parameters (such as pymssql) is less arcane now (dbmod_base changed)
  • "Wrong" error messages removed for unicode datasources and in mapping editor
  • Setup script now fixes write permissions for archive folders (working/download directory)
  • Hint on the usage of literals and concatenation added to mapping editor
  • Bugfix in library test page (for the case that Apache has different access privileges than Python)
  • Bugfix in Mapping Editor for literals containing unicode characters
  • Bugfixes for deleting a datasource:
    • Archive folders will now be correctly removed (both working and download directory)
    • Deleting a datasource with the same name as a previously deleted datasource that is still in the recycling bin now works; it will replace the old version in the recycling bin
  • Bugfix for start page: Leftover debug code removed that always logged an error ("in index")
  • Bugfix for IIS: Error message "No handlers could be found for logger lib" removed

Version 3.0.1 [2012-04-05]

replaced by 3.1

Version 3.0 [2011-12-14]

  • New feature: XML Archives (integrated into UI), DwC Archives (separate application)
  • List of table/column names now also available for Oracle databases
  • "Report a bug" links added
  • Fixes in wrapper core:
    • ORDER BY clause now always used in first query when paging (necessary also when OFFSET is used)
    • Python-sorting of ID list returned by first query removed (already done by DB; caused problems under certain circumstances when paging because Python sort order might be different from DB sort order)
  • Optimization in wrapper core:
    • Check for uniqueness of IDs in the list returned by first query only done when this is not alreay done by DISTINCT clause in query.
    • Db_mod Oracle now uses paging optimization.

Version 3.0RC2 [2011-11-24]

Version 3.0RC1 [2011-11-01]

Version 2 History

Version 2.6.1 [2011-08-23]

  • Test for write-protected files in Testlibs page now ignores Subversion directories, thus avoiding false alarm.
  • Help links now point to the respective sections of the new PyWrapper Wiki.
  • Link to FAQ added to the encoding error page (which can be used to alter system enocding).
  • Non-existing upgrade function removed from setup script.
  • Bugfix for HISPID5: Missing value "unknown" added to the CoordinateMethod vocabulary.
  • Bugfix in XML Handler for unary operators (isNull, isNotNull).

Version 2.6.0 [2011-06-07]

New Features:

  • Table Setup completely overhauled: Tables/Columns will now be retrieved from the database and shown in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
  • Mapping Editor now shows table columns in drop-down-boxes when Postgres, MySQL, MS SQL Server, Access or Foxpro are used.
  • When MySQL or Postgres is used, for Search requests the OFFSET SQL clause is used now for paging; this improves performance for harvesting large datasets considerably.
  • Support for DNA extension of ABCD (data model for the DNA Bank network) added
  • Mapping Editor shows XML Path for current element
  • Deleted datasources and schemas will now be moved to a recycle bin and can be restored later.
  • Several confirmation dialogs and smaller changes in UI.
  • mxODBC package (not free for academic use any more) replaced with Open Source package ceODBC
  • "Mapping Test" in mapping editor now uses the Query Forms, which are more reliable.

Bugs fixed:

  • Session management: User gets logged out only when inactive for more than 30 mins.
  • Bugfix for unicode characters in mapped literals.
  • Mapping editor: Added elements do not disappear temporarily any more.
  • Subversion users: BPS now can handle write-protected svn folders when removing a datasource.
  • Graphviz dot binary now works also when installed in a folder with a name containing spaces
  • Creating multiple mapping files for same namespace will be prevented now
  • Display issues for paths containing "\b" and "\t"
  • Filters combining two comparison operators that always evaluate to FALSE with OR will now be compressed correctly to FALSE, not TRUE. This prevents the Provider Software from returning any results if, for example, the filter of a Search request combines two LIKE-operators on unmapped concepts with the logical operator OR.

Version 2.5.4 [2010-09-14]

Withdrawn; changes included in version 2.6

Version 2.5.3 [2010-05-12]

  • Support for HISPID5 added
  • Bugfix CMF upgrade
  • Bugfix QueryTool (Stylesheet transformation error)

Version 2.5.2 [2009-10-01]

  • Bugfix QueryTool (Unicode conversion error)

Version 2.5.1 [2009-01-25]

  • Security Bugfix (database credentials removed from debug output)

Version 2.5.0 [2008-04-29]

  • replaced XSLT library, mx.DateTime & PyXML with 4suite & python native libraries (ElementTree, datetime). No external libraries are required anymore, just 4suite for xslt processing if you want to use the querytool (and you dont need to install the horrible libxml2 anymore)
  • removed all metakit lib dependencies, thereby removing the concept finder window in the configtool. To select a new concept for mapping you can list all concepts of a schema or enter the xpath to one.
  • Introduced a new cache directory where all temporary files go like user session data, pickled CMFs or temporary configtool files. To remove any cached files you can now simply empty this one folder!
  • remove many old relicts that were never used like datasource metadata, system metadata, database autodiscovery, etc (all nice features to have for a future release, but they were never implemented so far)
  • Use a new config singleton based on some simple ini text files. Incl a new parameter "prettyprint" to format the output nicely
  • When creating a new datasource you can now select template datasources like Brahms6, a training db, ABCD2.06 metadata tables or NoDIT2
  • Replaced the entire logging system with python file logging. Separate debug logs for each datasource plus global request & error logging
  • new sesion based login that stays
  • updated setup.py script
  • changed the library test page
  • and last but not least for developers: cleaned up quite some code

Version 2.4.2 [2006-11-16]

  • configtool mapping pane. use anchors to go back to last editing position
  • typeconverter: some dates were not correctly converted to xs:dateTime. Adding a "T00:00:00" solved it.
  • ABCD2.06 CMF template updated to contain the allowed enumeration of ranks!

Version 2.4.1 [2006-06-26]

  • Football Worldcup 2006 logos included
  • minor bugfixes (dead links)
  • admin password management fixed

Version 2.4.0 [2006-04-06]

  • move most of the querytool_prefs to the new skin.xml preference file within a skin folder. Leave only list of concepts for form in old querytool_pref.xml. Modified querytool_prefs schema
  • webapps log into rotating files instead of screen
  • updated CMF parser service link
  • configtool catches errors for unknown static aliases
  • querytool XSLTs for abcd & abcdefg2.06
  • remove wrapper_config.xml
  • removed character encoding bug in CMF pickling.

Version 2.3.2 [2006-03-06]

  • ABCDEFG extension 1.0 for Earth sciences included
  • List available character encodings for python2.4 and 64bit systems
  • QueryTool capable of querying DiGIR providers for details.
  • new synthesys/biocase QT skin

Version 2.3.1 [2005-11-30]

  • new 4th dimension dbmod!
  • record filters inside CMFs fixed
  • works with NoDIT v2 again
  • GCP Passport 1.03 added

Version 2.3.0 [2005-11-03]

  • compatible with Python 2.4 /!\ Using a new metakit compilation for windows.
  • Graphviz's dot is being used to visualize the database structure.
  • ABCD 2.06 included instead of ABCD2.05

Version 2.2.4 [2005-10-13]

  • include PonTaurus example db
  • scans without a filter crashed with some dbmods. bug fixed.
  • use select distinct in access for scans
  • ConfigTool includes graphical view of the db structure graph through graphviz dot images
  • CMF filters with scan filters crashed the wrapper. solved.
  • typeconverter: fixed bug in transforming zero-length strings to integers.

Version 2.2.3 [2005-09-01]

  • "upgrade" from abcd 2.05 to abcd 1.20 crashes the config tool no more
  • abcd2.05 debugform templates included
  • fixed scan problem with oracle8 module
  • fixed connection problem with native firebird module
  • Querytool allows to view raw xml
  • Querytool can handle unicode queries now
  • Concatenation with pure whitespace works now in wrapper output
  • database module is logged again into the protocol header. was broken before
  • if request filter evaluates to False (because concept is not mapped for example), dont query database with an SQL "... WHERE False ..." but return no results immediately.
  • configtool removes now non mapped concepts after pressing "revert" or re-entering the mapping section

Version 2.2.2 [2005-07-22]

  • Include a button to show all concepts in the mapping tools directly without the need to use the concept retrieval tool. Works wit all CMFs.
  • Update MCPD CMF template to include w3c types.
  • Include new page to create your own CMFs from custom XML schemas with the help of a BGBM TAPIR service.

Version 2.2.1

  • Alternative root tables for SPICE wrappers work now correctly.
  • Hierarchy requests in SPICE parse correct ID parameters now.
  • corrected SPICE1.3 CMF template
  • full Berlin Model SPICE CMF example

Version 2.2.0 [2005-07-18]

  • System section of configtool can modify .configuration (domain, baseURL, admin password) file and gives overview about DSA passwords.
  • setup script included to handle basic configuration, system adaptation and an upgrade facility for existing BPS2 installations.
  • SPICE 1.3 supported with a single CMF now! Search is being done on seperate genus, species and infraspecies fields now. Spice queryforms and IOPI/Berlin model example mapping updated.
  • ABCD 2.05 included (template,upgrade,example), the candidate for the final TDWG ABCD standard.
  • Bugfixes in configtool, mapping section:
    • Internet Explorer compatability fixed (no tablealias names were saved)
    • CMF filter display fixed. Colored green now
    • Allow special mappings (TotalMatchedRecords) to be displayed and saved correctly
    • Fixed minor display problems with attributes
  • fixed a serious new bug of the configtool that does not allow to add new tables to the db structure
  • Allow case insensitive like searches in oracle if wanted.
  • The performance debug logging works again

Version 2.1.0

  • CMF/schema version upgrade facility integrated into the configtool. By using Altovas mapforce to graphically map 2 schemas or versions of the same schema (e.g. ABCD 1.20 to ABCD 2.0, or ABCD1.20 to DarwinCOre and vice versa), it is now possible to upgrade your datasource configuration to support similar schemas. Thanks to Synthesys!
  • SPICE search: bug removed with genus search including the wildcard
  • SPICE: empty root element returned if no result was found. Debugging as html comments output was broken - fixed!
  • optional XML attributes bug removed. optional attributes were sometimes treated as mandatory ones. relevant for SPICE
  • cfgtool attr display: sort order in configtool now shows attributes always below its element and displays the attributes name only with @ instead of the entire element name
  • oracle dbmod improved. Paging has to use subqueries to guarantee that ordering takes place BEFORE the rownum limit. See Oracle FAQ http://www.orafaq.com/faqsql.htm#ROWXtoY
  • attribute mapping synching repaired. It is possible now to sync the mappings of an element with several attribute mappings
  • bug in local conditional mapping removed.
  • logging fixed (error and request)
  • only use "text" instead of "string" and "unicode" everywhere now in the code.
  • ConfigTool: deletion of primary keys, foreign keys and tables works again [Ben Richardson].

Version 2.0.3

  • SPICE search: Modify search string for genera only by adding " *" and normalize whitespace.

Version 2.0.2

  • Limit for Oracle via ROWNUM implemented for ora8,9&10
  • Include a Linux, Windows & MacOSX binary build of metakit. Solaris users still have to build it themselves.
  • SQLLite module added

Version 2.0.1

  • ABCD 2.0 CMF included

Bugfixes

  • Configtool
    • Lot of little bugs solved.
    • Make possible to map attributes
    • Be able to delete mappings
    • Alert user when several CMFs with the same namespace exist for a datasource
    • Allow full xpaths to be entered directly into the add path form
    • allow datasource admin to delete all serialized objects
  • QueryTool
    • More inteligent XSLT for processing
  • PyWrapper
    • Solved error with wrapper not presenting attributes
    • Empty elements are now excluded in the output.

Version 2.0.0

  • SPICE protocol supported for Species2000 CDM 1.20
  • completely rewritten config tool including a concept retrieval interface to search for concepts
  • completely rewritten an adaptable query tool with skin support

Version 1 history

Version 1.6b

  • needs at least version 1.4b of the pywrapper
  • added pywrapper skeleton for new species2000 protocol
  • cleaned the querytool sourcecode (thanks to Doreen Pahlke)
  • added little script "cmfupdater.py" to biocase/cgi that updates all existing CMFs of the installation to the latest CMF version.

Version 1.56

  • Removed authorization bug when entering non ascii characters as the password.
  • added more database modules for (upcoming) new pywrapper version: Sybase, Firebird, PostgreSQL via psycopg

Version 1.55

  • NoDIT v2 metaprofile templates and preconfigured database corrected
  • added a GBIF registration method in the configtool

Version 1.54

  • added a query engine prototype for CMF concepts to the configtool
  • more database modules supported (Oracle8, FoxPro)

Version 1.52

  • added URL encoding service in cgi-test.
  • added AltText to images.
  • removed bugs in config-tool when editing dbType for foreign key attributes and added FoxPro dbmod to menu.
  • Updating the cgi-test script to fully support Unix systems.

Version 1.5

  • Includes the fully working version 1.0 of the config-tool to edit WCF, PSF and CMF files. Structural CMF editing is not yet supported as well as guidance for ABCD.
  • template subdirectories renamed. Subdir "wrapper-skeleton" now contains the skeleton for new database directories, which comes without any CMF template. CMF templates are now hosted in the config-files subdirectory.
  • private config directory used now for wrapper_config.xml, providerlist.xml and all other future configuration files that should be private.

Version 1.41

  • first release including the query-tool