Skip to content

v2.0

Compare
Choose a tag to compare
@proycon proycon released this 17 May 13:08
· 349 commits to master since this release

This is a major new release of codemetapy. It does introduce some backward-incompatible changes.

  • Major overhaul of the entire codebase:
    • Now uses an actual RDF graph with RDF triples internally (using rdflib) #12
    • Allows for SPARQL queries
    • Supports serialisation in JSON-LD, Turtle and HTML with RDFa
  • Implements codemeta 2.0 with some extensions (see the README)
  • map developmentStatus to repostatus.org vocabulary #7
  • map licenses to SPDX vocabulary #8
  • The old 'entrypoints' extension to codemeta (as described in https://github.com/codemeta/codemeta#183 ) is now deprecated in favour of the newer software types extension (proposed in https://github.com/codemeta/codemeta#271 and worked out in https://github.com/SoftwareUnderstanding/software_types ).
    • Supports schema:targetProduct to link software source code to instances of the software
    • Supports extended software types, on top of the ones already available in schema.org.
    • See the README for more info
  • Implemented support for parsing and converting Java/Maven pom.xml to codemeta #9
  • Implemented support for parsing and converting NodeJS/npm package.json to codemeta #11
  • Implemented support for parsing and converting remote webservices (via targetProduct) (https://github.com/CLARIAH/clariah-plus#92)
    • Can extract <script> blocks with application/json+ld from HTML
    • Parses and converts metadata in HTML <head> (including RDFa and microdata)
  • Improved support for parsing and converting Python/setuptools/distutils to codemeta
    • use runtimePlatform instead of programmingLanguage when converting pip's 'programmingLanguage' classes
    • No longer requires software to be actually installed prior to parsing
  • Implemented supported for parsing and converting from the GitHub API to codemeta
    • Set environment variable GITHUB_TOKEN to your personal access token if you run into rate limitations.
  • Improvements in merging/reconciliating metadata that describe the same source, but from multiple perspectives
  • Improvements in joining multiple sources together in one graph (--graph parameter, replaces the old --registry parameter)
  • Improvements in author parsing
    • Implemented support for ingesting simple textual lists of authors as is customary in files like AUTHORS, CONTRIBUTORS, MAINTAINERS.
  • Rich HTML visualisation (with RDFa!), is used primarily by codemeta-server (https://github.com/CLARIAH/clariah-plus#99)
  • Added a --strict option to disable codemeta extensions (the inverse of the old --all parameter that is now removed)
  • Dropped support for Python 3.5 and below

This release also comes with two related projects that rely on codemetapy, together they form a powerful ensemble:

  • codemeta-server - Server for codemeta, in memory triple store, SPARQL endpoint and simple web-based visualisation for end-users
  • codemeta-harvester - Harvest and aggregate codemeta from source repositories and service endpoints, automatically converting known metadata schemes in the process. Wraps around codemetapy and other codemeta software.