Wikidata:WikiProject Informatics/Forges
In FOSS development communities, a forge (Q3077240) is a web-based collaborative software platform for both developing and sharing computer applications. The term forge refers to a common prefix or suffix adopted by various platforms created after the example of SourceForge. read more...
The wikidata Forges project goal is to define conventions to unify the description of Forge items.
Properties[edit]
Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
instance of | P31 | Item | instance of: that class of which this subject is a particular example and member; different from P279 (subclass of); for example: K2 is an instance of mountain; volcano is a subclass of mountain (and an instance of volcanic landform) | Forgejo <instance of> issue tracking system | - |
Forges provide multiple services in a central place such as repository hosting services, issue tracking etc. It makes it an instance of such a service.
- repository (Q3133368). Provides a version control system such as Git (Q186055) or Mercurial (Q476543).
- issue tracking system (Q1480561). When a forge (Q3077240) such as Forgejo (Q115962387) is an instance of (P31) an issue tracking system (Q1480561), it also includes being a instance of (P31) a bug tracking system (Q956086), reason why issue tracking system (Q1480561) is preferred.
- continuous integration software (Q16947796). A forge is an instance of a CI when it provides an integrated CI as opposed to an external integration. For instance Jenkins (Q7491312) is not an integrated CI.
- code reviewing software (Q16920237). A forge is an instance of a code review system when it provides an integrated code review system as opposed to an external integration. For instance Gerrit (Q1164920) is not an integrated review system.
- collaborative wiki software (Q6686945). A forge is an instance of collaborative wiki software when it provides an integrated wiki. For exemple, MediaWiki (Q83) is not an integrated wiki.
- electronic mailing list manager (Q63067479). A forge is an instance of a mailing list manager when it provides an integrated mailing list manager as opposed to an external integration. For instance GNU Mailman project (Q937466) is not an integrated mailing list.
- software repository (Q1334294). A forge is an instance of an online software repository when it provides a storage location for software packages. For example, Python Package Index (Q2984686) is a software repository for Python (Q28865). The supported protocols are further specified with qualifiers as defined below.
- pull request (Q115641419). A forge supports pull request (Q115641419) (or merge requests) when a developer can upload a patch to be reviewed and merged into a repository.
Software repository qualifiers[edit]
When a forge is an instance of an online software repository (PyPI, Docker Registry, etc.), the supported protocols are further specified by the following qualifiers.
Title | ID | Data type | Description | Examples | Inverse |
---|---|---|---|---|---|
instance of with qualifier of | P642 | Item | the online package system supported by the forge | Forgejo <instance of> software repository <of> Python Package Index | - |
- Ruby Gem::Specification (Q105856803) support a protocol compatible with https://rubygems.org/.
- Python Package Index (Q2984686) support a protocol compatible with https://pypi.org/.
- Docker Hub (Q100769064) support a protocol compatible with https://hub.docker.com/.
- npmjs (Q116058944) support a protocol compatible with https://www.npmjs.com/.
- software release (Q20631656) when release files can be made available for download in a way that is specific to the forge, for instance in the Forgejo release page at https://codeberg.org/forgejo/forgejo/releases/tag/v1.19.1-0.
Queries[edit]
List all Forges[edit]
SELECT ?forge ?forgeLabel
WHERE
{
{
?forge wdt:P31 wd:Q3077240. # Must be of a forge
}
FILTER NOT EXISTS { ?forge wdt:P31+ wd:Q35127 } # exclude online services running a forge, only keep forge software
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". } # Helps get the label in your language, if not, then en language
}
ForgesBot[edit]
ForgesBot is a command line tool dedicated to this project.