The schema changes are preliminary and temporary, since they are developed in another repository. I only included them here to keep track of changes.
- Added
contributors
key, which are currently exactly the same type asauthors
. - Added key
relation
toidentifiers
. Its value is anenum
same as Zenodo'srelated_identifiers.relation
(cites
,isNewVersionOf
,isCitedBy
, etc). - Updated ISBN regex pattern
- Updated the schema with new licenses from SPDX license list
- Long outputs, for example those resulting from validation errors, are now truncated by default, but this behavior can be disabled using
--verbose
flag #278 cffconvert
exits with non zero code when something went wrong converting or validating #266- Added "Star on GitHub" footnote in CLI
- Added conversion and validation behavior for CFF 1.3
- Converted metadata now includes information from CFF 1.3 key
contributors
for target formats that support it #333, #334 - Zenodo metadata now includes
related_identifiers
and optionallyrelation_type
such ascitedBy
,compiles
,isSupplementTo
etc using CFF 1.3 keyrelation
on elements inidentifiers
#327, #329 - Converted metadata now uses author
email
for target formats that support it #285 entity
authors get exported asOrganization
when converting toschema.org
orcodemeta
(wasPerson
) #239- CFF key
name
takes precedence overalias
when converting entity authors (was the other way around) #308 schema.org
andcodemeta
conversion export an affiliation name asname
(waslegalName
) #272- Added
"upload_type": "software"
when exporting to Zenodo from CFF files that use schema versions 1.0.x or 1.1.x #306 - Apalike conversion now uses "and" or ", and" to concatenate author names when there are 2 or more authors #226
- Bibtex conversion now uses braces to protect names of entity authors #156
- Library now explicitly exports Citation and nothing else
- Requests to GitHub now use versioned API
- Requests to GitHub can now be authenticated via environment variable CFFCONVERT_API_TOKEN for higher rate limit #353
- Requests to GitHub now use the target repo's default branch if user leaves branch unspecified #263
- Changed the repo name from
cff-converter-python
to justcffconvert
#283 - Moved to a
src/
directory layout #311 - Clearer separation between
cli
parts andlib
parts #276 - Replaced
setup.cfg
andsetup.py
withpyproject.toml
#312 - Added
pytest
markers forapalike
,bibtex
,codemeta
,endnote
,ris
,schemaorg
,zenodo
tests #330 - Added
pytest
markerlib
for library tests andcli
for command line interface tests - Refactored testing directory layout/naming to facilitate testing subparts of the test tree #315
- Consistent styling now enforced with ruff #339
- Added linting via
pre-commit
(isort
,pyroma
,ruff
,prospector
) #324 - Added Markdown link checker pre-commit hook
- Added
cffconvert
metadata validation checker viapre-commit
- Updated
jsonschema
dependency to a wider range, now includes 4.x #292 - Updated python versions used in CI #295
- Added tests to verify that behavior maps such as those for authors or URLs implement all possible keys, that there are no extra keys, and that there are no extra methods. #300
- Added missing
codemeta
tests to1.2.0/author-creators
#355 - Fixed bug with YAML parsing related to testing order #343
- Fixed invalid CFF in one of the tests #297
cffconvert
is now available as apre-commit
hook with idvalidate-cff
#269- Updated the Dockerfile to use latest version of cffconvert and recent version of Alpine #340
- added APA output (PR #149; thanks @wleoncio)
- added support for validation and conversion of
CITATION.cff
files withcff-version: 1.2.0
- argument
--outputformat
was renamed to--format
- argument
-ig
,--ignore-suspect-keys
was removed - argument
--verbose
was removed - argument
--show-trace
was added
- added APA output (PR #149; thanks @wleoncio)
- added support for validation and conversion of
CITATION.cff
files withcff-version: 1.2.0
- simplified the
Citation
class and its interface cli
is no longer part of the public interface of the library- URLs are now constructed from
identifiers
,repository
,repository-artifact
,repository-code
, orurl
, with a transparent mechanism to choose what to use given the data that is available from a givenCITATION.cff
file - Authors are now constructed from
given-names
,family-names
(includingname-particle
andname-suffix
),alias
,name
,affiliation
andorcid
, with a transparent mechanism to choose what to use given the data that is available from a givenCITATION.cff
file
- switched to static configuration (setup.cfg over setup.py)
- dependencies are now in
setup.cfg
as opposed torequirements[-dev].txt
- updated version ranges for dependencies
- tests are no longer
unittest.TestCase
based, but pytest with fixtures - added jsonschema based validation for CITATION.cff files with
cff-version: 1.2.0
- implemented State pattern for
Citation
to help it deal with multiple behaviors under past and future versions of the Citation File Format. - switched from TravisCI to GitHub Actions workflows, added linting and publishing workflows
- CI is now testing against Python 3.6, 3.7, 3.8, and 3.9 on Mac, Linux and Windows
- copies of the relevant schemas are now bundled with the package
- organized the tests to be more orthogonal to each other / less overlap between tests
- With recent changes to the release process, the schema will be in a different place than before. This release fixes #119).
- the ruamel.yaml dependency was not specified tightly enough,
requirements.txt
has been updated as have the notes for maintainers.
- 'cff-version: 1.0.3' is now interpreted as 1.0.3-1 (the latest
schema version that implements the spec 1.0.3). This will fix some
problems with the list of SPDX license abbreviations. These
additional licenses should now work:
AGPL-3.0-only
AGPL-3.0-or-later
BSD-1-Clause
BSD-2-Clause-Patent
CDLA-Permissive-1.0
CDLA-Sharing-1.0
EPL-2.0
EUPL-1.2
GFDL-1.1-only
GFDL-1.1-or-later
GFDL-1.2-only
GFDL-1.2-or-later
GFDL-1.3-only
GFDL-1.3-or-later
GPL-1.0-only
GPL-1.0-or-later
GPL-2.0-only
GPL-2.0-or-later
GPL-3.0-only
GPL-3.0-or-later
LGPL-2.0-only
LGPL-2.0-or-later
LGPL-2.1-only
LGPL-2.1-or-later
LGPL-3.0-only
LGPL-3.0-or-later
- added schema.org converter method
- added documentation for the Google Cloud Function interface
- setup.py no longer includes test dependencies as install dependencies
- corrected an error where cffconvert could not raise an error during validation (#94).
- replaced pykwalifire with its parent pykwalify
- now works for python 3.7 (refs #80)
- not using PyYAML anymore (but it still comes along with pykwalify for some reason)
- added a function that can be used as Google Cloud function
- hopefully fixed parsing of strings that should have been entered as dates (the new validator does not find that offensive, hence I had to fix it myself)
- replaced PyYAML dependency with ruamel.yaml
- security bugfix by updating requests from 2.18.4 to 2.20.0
- fixed bug #82 (warnings on stdout)
- fixed bug #73 (orcid format in zenodo export)
- first stable release
- solved bug
#59
(cffconvert creates local file
data.yaml
andschema.yaml
on validate)
- Minor changes
- added optional validation of CITATION.cff files using pykwalifire
(
--validate
) - added printing the CITATION.cff contents from the command line
- added unit tests for command line interface
- added integration with sonarcloud code quality monitoring
- removed shorthand command line argument
-v
(represented both--validate
and --verbose) - added showing its own version (
--version
) - command line argument
--ignore-suspect-keys
no longer needs to be assigned a value, it's simply a flag