#41 Specifying the version control system of a repo

Open
opened 1 month ago by fr33domlover · 2 comments

How should a Repository specify which version-control system (VCS) it uses? For display in UI and for determining which VCS program to use on the actual repo in the filesystem.

IDEA: have a VersionControlSystem type, and define some values in the ForgeFed JSON-LD context, for known VCSs. Of course people can use other values / suggest new values for inclusion. For example, we'd have "git", mapped in the JSON-LD context to https://forgefed.peers.community/ns#git.

Sounds reasonable?

Feneas forum thread

How should a `Repository` specify which version-control system (VCS) it uses? For display in UI and for determining which VCS program to use on the actual repo in the filesystem. IDEA: have a `VersionControlSystem` type, and define some values in the ForgeFed JSON-LD context, for known VCSs. Of course people can use other values / suggest new values for inclusion. For example, we'd have "git", mapped in the JSON-LD context to `https://forgefed.peers.community/ns#git`. Sounds reasonable? [Feneas forum thread](https://talk.feneas.org/t/specifying-the-version-control-system-of-a-repo/180)
zPlus commented 1 month ago
Owner
  • A simple property for the Repository type: "vcs": "darcs"

  • A specialized actor type that extends Repository, for instance GitRepository

The second one imo only makes sense if the specialized actor type is supposed to have more properties that are only relevant for one vcs. Otherwise I'd prefer the first one.

- A simple property for the `Repository` type: `"vcs": "darcs"` - A specialized actor type that extends `Repository`, for instance `GitRepository` The second one imo only makes sense if the specialized actor type is supposed to have more properties that are only relevant for one vcs. Otherwise I'd prefer the first one.
fr33domlover commented 1 month ago
Collaborator

So far there's nothing VCS-specific, not in the spec and not in Vervis, and VCS features get generalized anyway as much as possible and reasonable, so I think it's safe to use a simple property.

As to the name, vcs or versionControlSystem? AP/AS2 usually don't use abbreviations, and the objects are machine generated anyway, so I'm leaning towards the long version. @zPlus, what do you think? Assuming the long version, here's some RDF for VCSs just to summarize the discussion:

forge:VersionControlSystem rdf:type    rdfs:Class
forge:darcs                rdf:type    forge:VersionControlSystem
forge:git                  rdf:type    forge:VersionControlSystem
forge:mercurial            rdf:type    forge:VersionControlSystem
forge:versionControlSystem rdf:type    rdf:Property
forge:versionControlSystem rdfs:domain forge:Repository
forge:versionControlSystem rdfs:range  forge:VersionControlSystem
So far there's nothing VCS-specific, not in the spec and not in Vervis, and VCS features get generalized anyway as much as possible and reasonable, so I think it's safe to use a simple property. As to the name, `vcs` or `versionControlSystem`? AP/AS2 usually don't use abbreviations, and the objects are machine generated anyway, so I'm leaning towards the long version. @zPlus, what do you think? Assuming the long version, here's some RDF for VCSs just to summarize the discussion: ``` forge:VersionControlSystem rdf:type rdfs:Class forge:darcs rdf:type forge:VersionControlSystem forge:git rdf:type forge:VersionControlSystem forge:mercurial rdf:type forge:VersionControlSystem forge:versionControlSystem rdf:type rdf:Property forge:versionControlSystem rdfs:domain forge:Repository forge:versionControlSystem rdfs:range forge:VersionControlSystem ```
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.