Skip to content

Changelog

Here we provide notes that summarize the most important changes in each released version.

Please consult the changelog to inform yourself about breaking changes and security issues.

Unreleased

  • Added
  • read exact dependency versions from uv.lock and pdm.lock for codemeta.json enrichment, next to the already supported poetry.lock
    • use the nearest lock file at or above the pyproject.toml, so workspace members sharing a lock file at the workspace root are covered
  • recognize common [project.urls] spellings such as Bug Tracker and Release Notes when filling issueTracker and releaseNotes
  • Fixed
  • read the license of projects that still use the deprecated license = { text = "..." } table instead of failing to harvest it
  • update an existing [project.urls] entry regardless of its spelling, for example Homepage, instead of adding a second entry next to it, and follow the capitalization of the table when adding an entry
  • keep the metadata in [project] when a project built with another backend has a leftover [tool.poetry] section
  • keep the versions from a lock file that contains an entry without a version, as uv writes it for projects with a dynamic version
  • Changed
  • document that pyproject.toml support follows the PEP 621 [project] standard and therefore covers uv, hatchling, flit, PDM, setuptools and Poetry 2.x, not only setuptools and Poetry
  • rename the SetupTools writer to Pep621 and its input model to Pep621Config

v0.8.1 (2026-09-08)

  • Added
  • add somesy init --non-interactive for automated and batch initialization
    • write the best available harvested metadata without prompting
    • warn when required project metadata is missing
    • allow partial generated metadata to be synchronized with an explicit --pass-validation option or pass_validation config setting

v0.8.0 (2026-09-07)

  • Added
  • add somesy init to create somesy.toml for an existing project
    • harvest metadata from supported project files and Git history
    • merge harvested sources and prompt only for missing required metadata
    • automatically enable detected synchronization targets
    • support custom output paths and opt-in overwriting
  • add somesy set to update scalar project metadata in somesy.toml
  • enrich codemeta.json from configured project files and Git history
    • include runtime metadata, direct dependencies, project URLs, repository and issue tracker URLs, version, and commit dates
    • resolve configured files relative to the project root and preserve canonical Somesy and user-managed metadata
  • support project DOIs in Somesy metadata, CITATION.cff, and codemeta.json
  • add granular contributor descriptions, contribution types, and contribution dates to CodeMeta roles
  • add Pyright static analysis and pre-commit integration checks
  • Changed
  • migrate generated CodeMeta metadata to the 3.1 context
  • support multiple SPDX licenses and use modern PEP 621 license expressions in pyproject.toml
  • support PEP 621 dynamic fields in pyproject.toml; dynamic version and description fields are neither required nor overwritten
  • preserve target-file formatting by writing only when synchronized metadata changes semantically
  • raise the minimum supported Python version to 3.10 and test Python 3.10 through 3.14 on Linux, macOS, and Windows
  • update runtime, development, documentation, and pre-commit dependencies
  • publish GitHub and PyPI releases directly from the main CI workflow using PyPI trusted publishing
  • replace Safety dependency scanning with pip-audit
  • create the Poetry environment inside the repository for CI lint and pre-commit checks
  • Fixed
  • make generated CodeMeta output idempotent
  • write JSON output with a trailing newline and preserve LF endings on Windows
  • omit unreliable CodeMeta creation dates instead of overwriting them when Git history is shallow
  • synchronize POM contributors without email addresses
  • remove the duplicate -P CLI shortcut warning from somesy sync; output validation now uses -V
  • resolve strict mypy errors and update annotations for Python 3.10+
  • prevent pytest from mistaking a test helper model for a test class
  • Removed
  • remove obsolete GitLab CI configuration and issue templates
  • remove the obsolete reusable GitHub release workflow

v0.7.3 (2025-03-14)

  • accept orcid id as string without url
  • support multiline description in somesy input and outputs that enables multiline strings
  • dont save same person in available output formats
  • better toml inline table formatting
  • support only orcid id string (without the url)

v0.7.2 (2025-03-10)

  • fix CITATION.CFF formatting
  • fix codemeta.json missing maintainer property
  • fix somesy model validator missing return

v0.7.1 (2025-03-07)

  • fix poetry v2 license format and urls format problem

v0.7.0 (2025-03-04)

  • make validation of output files, such as pyproject.toml, optional
  • make somesy project metadata input version optional
  • multiple output file support
  • enable having packages support
  • fix: package.json url set error on None value
  • support poetry version 2

v0.6.0 (2025-02-14)

  • implement CFF Entity (Organization) model for author/maintainer/contributor
  • add a new config option to use existing codemeta.json when syncing
  • fix SomesyBaseModel kwargs being overwritten

v0.5.0 (2025-01-15)

  • make person (and entity) argument email optional

v0.4.3 (2024-07-29)

  • update python dependencies
  • update pre-commit hook versions
  • fix package.json person validation
  • update poetry, julia, and package.json person validation: entries without an email wont't raise an error, they will be ignored.

v0.4.2 (2024-04-30)

  • fix rich logging bug for error messages and tracebacks

v0.4.1 (2024-04-08)

  • fix package.json and mkdocs.yml validation bug about optional fields

v0.4.0 (2024-03-08)

  • added separate documentation URL to Project metadata model
  • added support for Julia Project.toml file
  • added support for Fortran fpm.toml file
  • added support for Java pom.xml file
  • added support for MkDocs mkdocs.yml file
  • added support for Rust Cargo.toml file

v0.3.1 (2024-01-23)

  • fix setuptools license writing bug

v0.3.0 (2024-01-12)

  • replace codemetapy with an in-house writer, which enables windows support

v0.2.1 (2023-11-29)

  • internal: updated linters and dependencies
  • internal: pin codemetapy version to 2.5.2 to avoid breaking changes
  • fix bug caused by missing config section

v0.2.0 (2023-11-29)

  • internal: Test refactoring
  • internal: Pydantic 2 implementation
  • Added publication_author field to Person model

v0.1.0 (2023-08-10)

  • First release