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
contributorskey, which are currently exactly the same type asauthors. - Added key
relationtoidentifiers. Its value is anenumsame 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
--verboseflag #278 cffconvertexits 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
contributorsfor target formats that support it #333, #334 - Zenodo metadata now includes
related_identifiersand optionallyrelation_typesuch ascitedBy,compiles,isSupplementToetc using CFF 1.3 keyrelationon elements inidentifiers#327, #329 - Converted metadata now uses author
emailfor target formats that support it #285 entityauthors get exported asOrganizationwhen converting toschema.orgorcodemeta(wasPerson) #239- CFF key
nametakes precedence overaliaswhen converting entity authors (was the other way around) #308 schema.organdcodemetaconversion 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-pythonto justcffconvert#283 - Moved to a
src/directory layout #311 - Clearer separation between
cliparts andlibparts #276 - Replaced
setup.cfgandsetup.pywithpyproject.toml#312 - Added
pytestmarkers forapalike,bibtex,codemeta,endnote,ris,schemaorg,zenodotests #330 - Added
pytestmarkerlibfor library tests andclifor 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
cffconvertmetadata validation checker viapre-commit - Updated
jsonschemadependency 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
codemetatests 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
cffconvertis now available as apre-commithook 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.cfffiles withcff-version: 1.2.0 - argument
--outputformatwas renamed to--format - argument
-ig,--ignore-suspect-keyswas removed - argument
--verbosewas removed - argument
--show-tracewas added
- added APA output (PR #149; thanks @wleoncio)
- added support for validation and conversion of
CITATION.cfffiles withcff-version: 1.2.0 - simplified the
Citationclass and its interface cliis 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.cfffile - Authors are now constructed from
given-names,family-names(includingname-particleandname-suffix),alias,name,affiliationandorcid, with a transparent mechanism to choose what to use given the data that is available from a givenCITATION.cfffile
- switched to static configuration (setup.cfg over setup.py)
- dependencies are now in
setup.cfgas opposed torequirements[-dev].txt - updated version ranges for dependencies
- tests are no longer
unittest.TestCasebased, but pytest with fixtures - added jsonschema based validation for CITATION.cff files with
cff-version: 1.2.0 - implemented State pattern for
Citationto 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.txthas 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-onlyAGPL-3.0-or-laterBSD-1-ClauseBSD-2-Clause-PatentCDLA-Permissive-1.0CDLA-Sharing-1.0EPL-2.0EUPL-1.2GFDL-1.1-onlyGFDL-1.1-or-laterGFDL-1.2-onlyGFDL-1.2-or-laterGFDL-1.3-onlyGFDL-1.3-or-laterGPL-1.0-onlyGPL-1.0-or-laterGPL-2.0-onlyGPL-2.0-or-laterGPL-3.0-onlyGPL-3.0-or-laterLGPL-2.0-onlyLGPL-2.0-or-laterLGPL-2.1-onlyLGPL-2.1-or-laterLGPL-3.0-onlyLGPL-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.yamlandschema.yamlon 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--validateand --verbose) - added showing its own version (
--version) - command line argument
--ignore-suspect-keysno longer needs to be assigned a value, it's simply a flag