-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow to pass additional metadata to codemeta that is not or cannot be automatically harvested #51
Comments
If I understand the somesy code correctly. I think this issue arises mainly because the original codemeta.json file is not used/parsed as an additional input to codemetapy, when the new codemeta.json is generated. So there is only a new codemeta file generated from the given sources and any additional information in the existing codemeta.json is ignored. When somesy creates the new codemeta.json via codemetapy, one do not want conflicting information in the sources. This merge will not solve the affiliation id issues, or any other nested things. Maybe one should do a rekursive @id merge. so a special treatment just for Also there should be a test with a rich codemeta, where 1. nothing changes, and 2. something changes, and in both cases only the given changes should happen, like a version update or any other update. |
All What we could do is introduce an extra flag for a "supplemental" codemeta file to provide additional triples to be merged, which also would be passed to We could also think about adding metadata fields to somesy that are passed to codemetapy using its interface (such as the base ID or certain specific codemeta fields not currently covered/inferred) |
I removed the 'bug' tag, because overwriting |
I must say, I do not agree. Every file is 'overwritten' by somesy, including pyproject.toml and CITATION.cff, but as a user I do not expect my specifications to be overwritten (like ignoring all other tool sections or metadata keys in pyproject.toml). i.e somesy's overwrite of codemeta.json in a completely different worse way, is unwanted and unexpected behavior by any user. The behavior of somesy is therefore inconsistent for the different files. |
Because CodeMeta is based on RDF / linked data, for technical reasons it is practically impossible to provide an equivalent behavior like we can for TOML, YAML and XML files (i.e. more or less conservative patching). Concerning codemeta specifically, you could disable codemeta synchronization ( However, due to other idiosyncracies of your project setup (e.g. mixing setuptools and poetry in one The main target audience for somesy is people who:
I would claim that:
Therefore, unfortunately, I think we have to "agree to disagree" here. |
How about doing an rdf patch instead? i.e.
The current support is ONLY good if there is no codemeta.json in the first place. People who currently use somesy care about metadata, so there is likely a codemeta.json, because they like start from here: https://codemeta.github.io/codemeta-generator/ It is good that there is already a feature to disable the codemeta-sync. An other solution could be: Where all the additional information is also in the somesy,toml, i.e where somesy.toml can be as rich as codemeta.json. Then one could go with the full recreation like no and not change any logic expect piping the information through to codemetapy. |
Describe the bug
somesy sync
deletes existing ids from affiliations of authors and contributors.it also removes: the '@id' from the resource itself, all keys-value pairs that codemeta allows, but codemeta somesy internal does not.
For me this is a critical bug, because of which I won't use somesy until this is not the case anymore.
Expected behavior
To Reproduce
Steps to reproduce the behavior:
(sorry for not condensing to a minimal example).
Some of the changes come because of python project metadata.
Example codemeta.json in:
somesy.toml in
'crippled' codemeta.json out.
The text was updated successfully, but these errors were encountered: