Skip to content

Commit 1d14fce

Browse files
committed
update docs
1 parent 0b78fa2 commit 1d14fce

3 files changed

Lines changed: 72 additions & 30 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Please consult the changelog to inform yourself about breaking changes and secur
88

99
* added separate `documentation` URL to Project metadata model
1010
* added support for Julia `Project.toml` file
11+
* added support for fortran `fpm.toml` file
1112

1213
## [v0.3.1](https://github.com/Materials-Data-Science-and-Informatics/somesy/tree/v0.3.1) <small>(2024-01-23)</small> { id="0.3.1" }
1314

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ verbose = true # show detailed information about what somesy is doing
109109
<!-- --8<-- [end:somesytoml] -->
110110

111111
Alternatively, you can also add the somesy configuration to an existing
112-
`pyproject.toml`, `package.json` or `Project.toml` file. The somesy [manual](https://materials-data-science-and-informatics.github.io/somesy/main/manual/#somesy-input-file) contains examples showing how to do that.
112+
`pyproject.toml`, `package.json`, `Project.toml`, or `fpm.toml` file. The somesy [manual](https://materials-data-science-and-informatics.github.io/somesy/main/manual/#somesy-input-file) contains examples showing how to do that.
113113

114114
### Using somesy
115115

@@ -125,7 +125,7 @@ authoritative** source for project metadata, which is used to update all
125125
supported (and enabled) *target files*. You can find an overview of supported
126126
formats further below.
127127

128-
By default, `somesy` will create (if they did not exist) or update `CITATION.cff` and `codemeta.json` files in your repository. If you happen to use `pyproject.toml` (in Python projects), `package.json` (in JavaScript projects), or `Project.toml` (in Julia projects), somesy would also update the respective information there.
128+
By default, `somesy` will create (if they did not exist) or update `CITATION.cff` and `codemeta.json` files in your repository. If you happen to use `pyproject.toml` (in Python projects), `package.json` (in JavaScript projects), `Project.toml` (in Julia projects), or `fpm.toml` (in Fortran projects) somesy would also update the respective information there.
129129

130130
You can see call available options with `somesy --help`,
131131
all of these can also be conveniently set in your `somesy.toml` file.
@@ -168,16 +168,18 @@ Here is an overview of all the currently supported files and formats.
168168
| -------------- | ------ |-| ----------------------------- | ------ |
169169
| (.)somesy.toml | ✓ | | pyproject.toml _(poetry)_ | ✓ |
170170
| pyproject.toml | ✓ | | pyproject.toml _(setuptools)_ | ✓(1.) |
171-
| package.json | ✓ | | package.json | ✓(2.) |
172-
| Project.toml | ✓ | | Project.toml | ✓ |
171+
| package.json | ✓ | | package.json _(JavaScript)_ | ✓(2.) |
172+
| Project.toml | ✓ | | Project.toml _(Julia)_ | ✓ |
173+
| fpm.toml | ✓ | | fpm.toml _(Fortran)_ | ✓(3.) |
173174
| | | | CITATION.cff | ✓ |
174-
| | | | codemeta.json | ✓(3.) |
175+
| | | | codemeta.json | ✓(4.) |
175176

176177
**Notes:**
177178

178179
1. note that `somesy` does not support setuptools *dynamic fields*
179180
2. `package.json` only supports one author, so `somesy` will pick the *first* listed author
180-
3. unlike other targets, `somesy` will *re-create* the `codemeta.json` (i.e. do not edit it by hand!)
181+
3. `fpm.toml` only supports one author and maintainer, so `somesy` will pick the *first* listed author and maintainer
182+
4. unlike other targets, `somesy` will *re-create* the `codemeta.json` (i.e. do not edit it by hand!)
181183

182184
<!-- --8<-- [end:quickstart] -->
183185

docs/manual.md

Lines changed: 63 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -117,33 +117,33 @@ some of the currently supported formats. Bold field names are mandatory, the oth
117117

118118
=== "Person Metadata"
119119

120-
| Somesy Field | Poetry Config | SetupTools Config | Julia Config | package.json | CITATION.cff | CodeMeta |
121-
| ---------------- | ------------- | ----------------- | ------------ | ------------ | --------------- | --------------- |
122-
| | | | | | | |
123-
| **given-names** | name+email | name | name+email | name | given-names | givenName |
124-
| **family-names** | name+email | name | name+email | name | family-names | familyName |
125-
| **email** | name+email | email | name+email | email | email | email |
126-
| orcid | - | - | - | url | orcid | id |
127-
| *(many others)* | - | - | - | - | *(same)* | *(same)* |
120+
| Somesy Field | Poetry Config | SetupTools Config | Julia Config | Fortran Config | package.json | CITATION.cff | CodeMeta |
121+
| ---------------- | ------------- | ----------------- | ------------ | -------------- | ------------ | --------------- | --------------- |
122+
| | | | | | | | |
123+
| **given-names** | name+email | name | name+email | name+email | name | given-names | givenName |
124+
| **family-names** | name+email | name | name+email | name+email | name | family-names | familyName |
125+
| **email** | name+email | email | name+email | name+email | email | email | email |
126+
| orcid | - | - | - | - | url | orcid | id |
127+
| *(many others)* | - | - | - | - | - | *(same)* | *(same)* |
128128

129129
=== "Project Metadata"
130130

131-
| Somesy Field | Poetry Config | SetupTools Config | Julia Config | package.json | CITATION.cff | CodeMeta |
132-
| ----------------- | ------------- | ------------------ | ------------ | ------------ | --------------- | ----------------- |
133-
| | | | | | |
134-
| **name** | name | name | name | name | title | name |
135-
| **description** | description | description | - | description | abstract | description |
136-
| **license** | license | license | - | license | license | license |
137-
| **version** | version | version | version | version | version | version |
138-
| | | | | | | |
139-
| ***author=true*** | authors | authors | authors | author | authors | author |
140-
| *maintainer=true* | maintainers | maintainers | - | maintainers | contact | maintainer |
141-
| *people* | - | - | - | contributors | - | contributor |
142-
| | | | | | | |
143-
| keywords | keywords | keywords | - | keywords | keywords | keywords |
144-
| homepage | homepage | urls.homepage | - | homepage | url | url |
145-
| repository | repository | urls.repository | - | repository | repository_code | codeRepository |
146-
| documentation | documentation | urls.documentation | - | - | - | buildInstructions |
131+
| Somesy Field | Poetry Config | SetupTools Config | Julia Config | Fortran Config | package.json | CITATION.cff | CodeMeta |
132+
| ----------------- | ------------- | ------------------ | ------------ | -------------- | ------------ | --------------- | ----------------- |
133+
| | | | | | | |
134+
| **name** | name | name | name | name | name | title | name |
135+
| **description** | description | description | - | description | description | abstract | description |
136+
| **license** | license | license | - | license | license | license | license |
137+
| **version** | version | version | version | version | version | version | version |
138+
| | | | | | | | |
139+
| ***author=true*** | authors | authors | authors | author | author | authors | author |
140+
| *maintainer=true* | maintainers | maintainers | - | maintainer | maintainers | contact | maintainer |
141+
| *people* | - | - | - | - | contributors | - | contributor |
142+
| | | | | | | | |
143+
| keywords | keywords | keywords | - | keywords | keywords | keywords | keywords |
144+
| homepage | homepage | urls.homepage | - | homepage | homepage | url | url |
145+
| repository | repository | urls.repository | - | - | repository | repository_code | codeRepository |
146+
| documentation | documentation | urls.documentation | - | - | - | - | buildInstructions |
147147

148148
Note that the mapping is often not 1-to-1. For example, CITATION.cff allows rich
149149
specification of author contact information and complex names. In contrast,
@@ -171,6 +171,7 @@ Without an input file specifically provided, somesy will check if it can find a
171171
* `somesy.toml`
172172
* `pyproject.toml` (in `tool.somesy` section)
173173
* `Project.toml` (in `tool.somesy` section)
174+
* `fpm.toml` (in `tool.somesy` section)
174175
* `package.json` (in `somesy` section)
175176

176177
which is located in the current working directory. If you want to provide
@@ -260,6 +261,40 @@ one of the supported input formats:
260261
verbose = true # show detailed information about what somesy is doing
261262
```
262263

264+
=== "fpm.toml"
265+
```toml
266+
name = "my-amazing-project"
267+
version = "0.1.0"
268+
269+
[tool.somesy.project]
270+
name = "my-amazing-project"
271+
version = "0.1.0"
272+
description = "Brief description of my amazing software."
273+
274+
keywords = ["some", "descriptive", "keywords"]
275+
license = "MIT"
276+
repository = "https://github.com/username/my-amazing-project"
277+
278+
# This is you, the proud author of your project
279+
[[tool.somesy.project.people]]
280+
given-names = "Jane"
281+
family-names = "Doe"
282+
email = "j.doe@example.com"
283+
orcid = "https://orcid.org/0000-0000-0000-0001"
284+
author = true # is a full author of the project (i.e. appears in citations)
285+
maintainer = true # currently maintains the project (i.e. is a contact person)
286+
287+
# this person is a acknowledged contributor, but not author or maintainer:
288+
[[tool.somesy.project.people]]
289+
given-names = "Another"
290+
family-names = "Contributor"
291+
email = "a.contributor@example.com"
292+
orcid = "https://orcid.org/0000-0000-0000-0002"
293+
294+
[tool.somesy.config]
295+
verbose = true # show detailed information about what somesy is doing
296+
```
297+
263298
=== "package.json"
264299

265300
```json
@@ -412,6 +447,10 @@ Therefore, **in such a case you will need to fix the ORCID in all configured som
412447
before running somesy (so somesy will not create new person entries), or
413448
after running somesy (to remove the duplicate entries with the incorrect ORCID).
414449

450+
!!! warning
451+
452+
Person identification and merging is not applied to standards with free text fields for authors or maintainers, such as `fpm.toml`.
453+
415454
### Codemeta
416455

417456
While `somesy` is modifying existing files for most supported formats and implements

0 commit comments

Comments
 (0)