Cees-Jan

Github tips

Github has fundamentally changed the opensource landscape, especially for those among us remembering the sourceforge days. While Github is powerful out of the box there are some tips, tricks, and browser addons that can be used to improve the experience.

Deployment

Tips

  • Following interesting developers like Jakub Kulhan, David Dan, and in case you're interested here is my account.
  • Star all the repositories that are interesting or might be handy in the future (I'm currently at 1.4K starred repositories). You can always search through your starred repositories to find what you've starred ages ago at github.com/stars. (PSA: This information is public and can be viewed by everyone, also users not signed in. If you hesitate starring a repository you find interesting for what ever reason, keep a list on Google Keep, Evernote, Dropbox etc etc.)
  • Subscribe to the Github Explore newsletter at the bottom of the explore page, or by going here. Mine is set to daily. It sends you a short list of the trending repositories for today, but also what the developers you follow starred the past 24 hours.

Github Explode Subscribe

Tricks

  • Sign your tags, with git tag -s -m "" 1.2.3, using a GPG key, for example from keybase.io. The great advantage from this is that your users can verify their downloads against attacks. For more information on how to set that up check this repository.
  • Make pull requests for everything, and I mean everything. If you're not doing this it might sound like a lot of extra work, and it in a way it is, but it allows you to keep track of different features and you can work on two features at the same time without them interfering within master. For example you can pause the work on a feature for a while without blocking the work on others. Add Travis CI, CircleCI, and/or AppVeyor to the mix for quality control and always know what the status of your code/project is.
  • Don't build monolithic repositories, build small specifically purposed repositories instead, and when a project grows to big for your own namespace, put it under an organization. The past few weeks I've been working on a async-first Travis CI client (and a async-first Pusher client, and AppVeyor client for that matter). It occurred to me that all the stuff I was building there could be useful to others but the repository count was constantly growing. Decided to put it under the php-api-clients for a couple of reasons. A) to keep my own namespace clean. B) To group related packages together into a org scoped for them. C) Easy repository permission management for when others get onboard granting them permissions to the repositories they want to work on. Or even create new repositories for projects they want to build that fall under the scope of the org.

Browser addons

The default experience on github.com is powerful by default but these addons amp it up a notch.

OctoLinker (Chrome/Firefox/Opera)

OctoLinker is a great time server, when in a composer.json it lets you click a dependency taking you to that dependency's repository. No need to look it up on packagist anymore, the addon does that for you.

Octotree (Chrome/Firefox/Opera/Safari)

Octotree Makes your whole repository directory structure available as a tree for quick and easy browsing.

Octotree

Isometric Contributions (Chrome/Firefox/Safari)

Isometric Contributions is mainly just a fancy, and have to admit very cool, way of displaying your contribution graph.

Isometric Contributions

PixelBlock (Chrome)

While PixelBlock isn't technically a Github browser addon, it is a Gmail browser addon. It blocks tracking pixels in emails, Github's tracking pixels included. As mentioned before I watch all projects and repositories I'm involved with and that can lead to a lot of email at times. The issues with Github's tracking pixel is that when you read the mail it will also mark those comments tracked on github.com. That is fine but it if you also use github.com's unread notifications you lost track of those on the website. As a bonus it also blocks a lot of other tracking pixels.

PixelBlock


Categories: PHP - GithubTags: PHP - Github - Chrome - Firefox - Opera - Safari