OBOFoundry / OBOFoundry.github.io

Metadata and website for the Open Bio Ontologies Foundry Ontology Registry
http://obofoundry.org
Other
161 stars 201 forks source link

Add GitHub stars badges to homepage and ontology page #1688

Closed cthoyt closed 2 years ago

cthoyt commented 2 years ago

Similar to #1687, Shields.io will generate all sorts of nice badges that give summary-level information on repositories that can be formatted in using the following markdown:

![GitHub Repo stars](https://img.shields.io/github/stars/:organization/:repository?style=social)

GitHub stars in some ways could be considered as a proxy for ontology usage and uptake, which would be useful for potential users/consumers.

A few examples:

Ontology Repo Badge
PLANA obophenotype/planaria-ontology GitHub Repo stars
CHEMINF semanticchemistry/semanticchemistry GitHub Repo stars
INO INO-ontology/ino GitHub Repo stars

Note: I'd be happy to provide the implementation of this if it gets positive feedback.

matentzn commented 2 years ago

Before you get to wild on this, just remember that there are a number of ontologies with proper version control not on GitHub. There will be some strong arguments against your proposal because it will put ontologies not on GitHub in an unfair disadvantage. I am not that worried, but prepare for that counterargument.

cthoyt commented 2 years ago

I looked for generating badges from GitLab and they're just not as well-supported in shields.io (and similar services).

It's also the case that non-GitHub repositories just aren't well-annotated in the OBO Foundry, so I'm not sure if the argument of lack of engagement from non-GitHub repositories is a reason not to support what most of the community is doing. Here's a summary of the "repository" annotations across the OBO Foundry:

System Count Percentage
GitHub 182 73.39
None 64 25.81
Other 1 0.4
GitLab 1 0.4
Code used to make this table (can be rerun anytime) ```python from collections import Counter from tabulate import tabulate from bioregistry.external.obofoundry import get_obofoundry counter = Counter() for prefix, data in get_obofoundry().items(): repository = data.get("repository") if repository is None: counter["None"] += 1 elif "github" in repository: counter["GitHub"] += 1 elif "gitlab" in repository: counter["GitLab"] += 1 else: counter["Other"] += 1 print(prefix, repository) n = sum(counter.values()) rows = [ (key, count, round(100 * count / n, 2)) for key, count in counter.most_common() ] print(tabulate(rows, headers=["System", "Count", "Percentage"], tablefmt="github")) ```
matentzn commented 2 years ago

There are still "None" ones? I thought you added repository tags to ever record for an active ontology?

cthoyt commented 2 years ago

No, I added one for every repository that I could parse the GitHub repository from the issue tracker annotation. I can do my best to automate stuff, but we need to communicate to repo owners that it's their responsibility to get this metadata into OBO Foundry if they want their work to (continue to be) be accessible/useful

matentzn commented 2 years ago

Yeah. Ok! I was so certain that everyone had an issue tracker now.. Must have been dreaming.