Skip to content

Rewrite roles for clarity and best practice (fix #106) - #136

Merged
moranegg merged 2 commits into
codemeta:masterfrom
meldra:roles-rewrite
Sep 11, 2026
Merged

moranegg merged 2 commits into
codemeta:masterfrom
meldra:roles-rewrite

Conversation

@meldra

@meldra meldra commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Comment thread content/user-guide.md Outdated
Comment on lines +403 to +405
The `Role` type property is used to define the contribution of a `Person`. It
describes their contribution independently of the person, and allows a person,
through their `id` to be linked to all of their various roles.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `Role` type property is used to define the contribution of a `Person`. It
describes their contribution independently of the person, and allows a person,
through their `id` to be linked to all of their various roles.
The `Role` type is used to define the contribution of a `Person`. It
describes their contribution independently of the person, and allows a person,
through their `id` to be linked to all of their various roles.

Role is not a property

Comment thread content/user-guide.md Outdated
Comment on lines +407 to +411
One `Person` can be credited for multiple types of `Role`. This means, for
example, that one person can be credited as "Developer" and for "Documentation".
Multiple people can be attributed to the same `roleName`. A `Role` can also be
defined for a specific period of time by using the `startDate` and `endDate`
properties.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
One `Person` can be credited for multiple types of `Role`. This means, for
example, that one person can be credited as "Developer" and for "Documentation".
Multiple people can be attributed to the same `roleName`. A `Role` can also be
defined for a specific period of time by using the `startDate` and `endDate`
properties.
One `Person` can be credited for multiple kinds of `Role`. This means, for
example, that one person can be credited as "Developer" and for "Documentation".
Multiple people can be attributed to the same `roleName`. A `Role` can also be
defined for a specific period of time by using the `startDate` and `endDate`
properties.

to avoid confusion with the other meaning of "type"

Comment thread content/user-guide.md Outdated
Comment on lines +413 to +416
`Role` is distinct from other `Person` type properties that such as the
`maintainer` property. Those properties should be defined separately as
top-level properties of the document, containing at least one `Person`.
{.tip}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what this means. First, Role and Person are types (of values) but maintainer is a property. And both Role and Person are valid as (items of) values for the author property for example.

@meldra meldra Sep 8, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what this means. First, Role and Person are types (of values) but maintainer is a property. And both Role and Person are valid as (items of) values for the author property for example.

That maintainer doesn't replace the need for a role. It wouldn't be grabbed as a substitute for role in processing if a role for a person didn't exist in the document, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll update the PR to say that in a bit, if so.

@moranegg

moranegg commented Sep 8, 2026

Copy link
Copy Markdown
Member

Interestingly, the example in the ticket is quite different from our early debates on Roles on this:
codemeta/codemeta#240

From the exchanges on this PR, and from debates with CodeMeta enthusiasts, there is a question about why a separate top-level property for maintainer when it could be identified as part of a role.

The reason is the importance of having a maintainer for software and its particular status as being accountable. This is reflected in the vocabulary.
The Role in software development is about the "type" of contribution, specifically to give credit to a type of endeavour.
Similarly to the CRediT taxonomy: https://credit.niso.org/

For CodeMeta, we wanted to express the following:
Design and Architecture (DA), Coding and Debugging (CD), Maintenance and Support (MS), and Team/Project Management
(TPM).
in https://hal.science/hal-02135891

I found the original ticket in our legacy Forge: https://forge.softwareheritage.org/T2329

@meldra

meldra commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

My read was that since roles can have start and end dates, they can be passed around. A explicitly declared maintainer makes it completely unambiguous about the roles at the point in time that the document is a snapshot. I'm glad that I read that correctly.

I'll fix it up tomorrow as well when i do the dev guide fix. Have a good night.

@meldra

meldra commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

@moranegg @progval does this sound better?

@moranegg
moranegg merged commit 8d32e96 into codemeta:master Sep 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants