Repo-local identity vs. declared authorship
These look like the same thing and aren't. Git's user.name/user.email answer who performed this action — they're stamped into each commit at the moment it's made and are effectively immutable afterward, since changing them means rewriting history. It's an append-only log of who did what, when.
Declared authorship — [project].authors in pyproject.toml, the copyright line in the report — answers a different question: who claims this work. It's a statement about the artifact, not a record of an action, so it can be corrected at any time without disturbing anything.
They usually agree, and it's easy to assume one derives from the other. It doesn't. The two can drift apart the moment you change your git identity mid-project, or commit from a machine configured with a different one.
Where this bites is provenance tooling. lc builds the RO-Crate's author list by asking git who last wrote each tracked file — so the provenance record inherits the commit identity and ignores your declaration entirely. Editing pyproject.toml fixes the claim instantly; the provenance record only catches up as files are re-committed under the new identity, or via a history rewrite.
Practical rule: set the git identity before the first commit, declare authorship in metadata, and treat a mismatch as two facts about different moments rather than a bug to reconcile.
Repo-local identity vs. declared authorship
These look like the same thing and aren't. Git's user.name/user.email answer who performed this action — they're stamped into each commit at the moment it's made and are effectively immutable afterward, since changing them means rewriting history. It's an append-only log of who did what, when.
Declared authorship — [project].authors in pyproject.toml, the copyright line in the report — answers a different question: who claims this work. It's a statement about the artifact, not a record of an action, so it can be corrected at any time without disturbing anything.
They usually agree, and it's easy to assume one derives from the other. It doesn't. The two can drift apart the moment you change your git identity mid-project, or commit from a machine configured with a different one.
Where this bites is provenance tooling. lc builds the RO-Crate's author list by asking git who last wrote each tracked file — so the provenance record inherits the commit identity and ignores your declaration entirely. Editing pyproject.toml fixes the claim instantly; the provenance record only catches up as files are re-committed under the new identity, or via a history rewrite.
Practical rule: set the git identity before the first commit, declare authorship in metadata, and treat a mismatch as two facts about different moments rather than a bug to reconcile.