I’ve got a lot of question from undergraduates using Github as a social media platform for advertising themselves for job positions and asking how did I get mine like this:
Okay, so let’s break down factors that are contributing to this.
- Naturally Work
- Github Actions & Bots
- Issues
- Small Additions to other Repositories
- Naturally Work
I naturally work a lot, I told myself 5 years ago if I wanted to work on my dream than commit something everyday, it could even be one file change. I’ve nearly stuck to that for a little while. It does help to consistently commit. And it does keep in handy couple years down the line. I’ve filed 68 issues in my own package, Global-Chem, recently as necessary work plans:
And my commit history on this project:
2. Github Actions & Bots
Alright, now it get’s fun. It started off with the repository Uptime. I realized I was needing to keep track of my databases for cheminformatics and occasionally one server would go offline and I would be like why. So I created an upptime monitoring system for cheminformatics (and now others).
So what happened here, is this monitoring service pings the github issues if something is going down and files an incident report in my name
So now there are 2846 issues filed since I started this thing every time something goes down which is a lot. And the issue is filed in my name:
Within my own package, Global-Chem, Github Actions I also have my jobs running continuously and automated pipelines for testing. Which I’m sure perhaps might contribute to my activity if I run them manually which was often during times these systems go down.
3. Issues
Filing issues across different repositories, one thing that helps is getting to know other people on the platform and connecting. I have found filing issues not only helping in contribution but naturally discussions start to form and that’s pretty cool thing to do. I usually am on the hunt for data so I look through the github searching a lot to find new things to explore.
4. Small Additions to Repositories
As a core developer and especially with cloud infrastructure and python we can add a lot of things rapidly to generally improve the quality of the repository. For python this actually might be setting up the distribution for a forgotten package which I did for the dimorphite-dl to get it into a distributable object form.
from dimorphite_dl import DimorphiteDL
dimorphite_dl = DimorphiteDL(
min_ph=4.5,
max_ph=8.0,
max_variants=128,
label_states=False,
pka_precision=1.0
)
print(dimorphite_dl.protonate('CC(=O)O'))
Or it could be as simply adding a “Cite” this repository
And there we go. Here are some basics into what is giving the Github Algorithm “Contributions”