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.lockandpdm.lockforcodemeta.jsonenrichment, next to the already supportedpoetry.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
- use the nearest lock file at or above the
- recognize common
[project.urls]spellings such asBug TrackerandRelease Noteswhen fillingissueTrackerandreleaseNotes - 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 exampleHomepage, 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.tomlsupport 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
SetupToolswriter toPep621and its input model toPep621Config
v0.8.1 (2026-09-08)¶
- Added
- add
somesy init --non-interactivefor 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-validationoption orpass_validationconfig setting
v0.8.0 (2026-09-07)¶
- Added
- add
somesy initto createsomesy.tomlfor 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 setto update scalar project metadata insomesy.toml - enrich
codemeta.jsonfrom 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, andcodemeta.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
dynamicfields inpyproject.toml; dynamicversionanddescriptionfields 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
-PCLI shortcut warning fromsomesy 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
versionoptional - 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
documentationURL to Project metadata model - added support for Julia
Project.tomlfile - added support for Fortran
fpm.tomlfile - added support for Java
pom.xmlfile - added support for MkDocs
mkdocs.ymlfile - added support for Rust
Cargo.tomlfile
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
configsection
v0.2.0 (2023-11-29)¶
- internal: Test refactoring
- internal: Pydantic 2 implementation
- Added
publication_authorfield to Person model
v0.1.0 (2023-08-10)¶
- First release