<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements. See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<document>
  <properties>
    <title>Apache Commons RDF Release Notes</title>
  </properties>

  <body>
    <release version="0.6.0" date="20YY-MM-DD" description="Minor feature and bug fix release.">
        <action dev="ggregory" type="update" due-to="Gary Gregory">
            Update commons.japicmp.version 0.11.0 -> 0.15.3.
        </action>
    </release>
    <release version="0.5.0" date="2017-11-19" description="Minor feature and bug fix release.">
        <action type="fix" issue="COMMONSRDF-47">
            RDFSyntax should be interface, not enum
        </action>
        <action type="fix" issue="COMMONSRDF-51">
            RDF-1.1 specifies that language tags need to be compared using lower-case
        </action>
        <action type="fix" issue="COMMONSRDF-52">
            Duplicate Bundle-SymbolicName values across all components
        </action>
        <action type="fix" issue="COMMONSRDF-55">
            Stream of Jena quads use wrong IRI for default graph
        </action>
        <action type="fix" issue="COMMONSRDF-57">
            Use newer dependency Jena/RDF4J/JSONLD Java
        </action>
        <action type="fix" issue="COMMONSRDF-62">
            japicmp-maven-plugin breaking build because there is at least one incompatibility
        </action>
        <action type="fix" issue="COMMONSRDF-63">
            AbstractRDFParserTest.parseFile and parseFileContentType broken under Mac OS X
        </action>
        <action type="fix" issue="COMMONSRDF-66">
            JenaDatasetImpl.toString() throws RIOT exception
        </action>
        <action type="add" issue="COMMONSRDF-53">
            Add ServiceLoader support in OSGi
        </action>
        <action type="add" issue="COMMONSRDF-54">
            overloaded versions of RDF4J#asRDFTerm(org.eclipse.rdf4j.model.Value)
        </action>
        <action type="add" issue="COMMONSRDF-59">
            Fix javadocs warnings
        </action>
        <action type="add" issue="COMMONSRDF-64">
            Add Automatic-Module-Name to bundle manifest
        </action>
        <action type="add" issue="COMMONSRDF-65">
            Upgrade to Jena 3.4.0, RDF4J 2.2.2
        </action>
        <action type="add" issue="COMMONSRDF-70">
            Upgrade Jena version to 3.5.0
        </action>
    </release>

    <release version="0.3.0-incubating" date="2016-11-15" description="Minor feature and bug fix release.">
      <!-- TODO -->
    </release>

    <release version="0.2.0-incubating" date="2016-09-27" description="Minor feature and bug fix release.">
      <!-- TODO -->
    </release>

    <release version="0.1.0-incubating" date="2016-08-24" description="Initial Release">
      <action type="add">
        Initial Release.
      </action>
    </release>

  </body>
</document>
