Be the First to Know. Really.

So, you have an early-2000 style repository, like Maven Central:
central

And let’s say you are very, extremely interested to know when the new version of netty comes out.  We understand, it’s a natural addiction. How can you do it? Here are some ideas:

  • Well, you can visit Maven Central every day. Couple of times a day.
  • Oh, they have an RSS feed (did we mention early-2000?) It will notify you for everything being published to Maven Central. Well, probably you’ll spend all day reading those notifications, but eventually your eye might catch the project update you are looking for. You could also use Google Reader to filter the RSS stream for you… Oh, wait…
  • Another idea! You can use their REST API. Just a simple query directly on their Solr will produce you a nice JSON file of 109 lines, and by a trivial parsing you’ll find the latest version. Now compare it with what you saw last time you ran the query, and you’ll know about new version in no time.
  • Oh, here’s another neat idea – you can use C4C Firefox plugin or maybe its counterpart for Chrome to get notified. It’s 5 minutes setup. Maybe 10. For each package. Not a big deal, really.

OK, sarcasm aside, that’s how you really can subscribe to notifications without hassle:

Email notifications

  1. Register to Bintray.
  2. Subscribe to netty release notifications:
    watch
    3. Get notification on new netty release to your inbox!
    notification

Hm, how cool n’ simple is that?!

Twitter notifications

Here’s another flow for you:

  1. Follow the publisher on twitter.
  2. Chances are the publisher will tweet about the new release using the twitter button:
    tweet button
  3. Here’s your notification in your twitter feed (that’s not a real one, but you got the idea)!
    tweet

Frankly, We aren’t even sure which way is cooler. Try both!

Webhooks

Now pretend that you are a robot (or that you write software and love to automate things). You want an API to be triggered upon new version? No problem, sir! Register a webhook to get a REST callback when a new version of a package you are interested in is released!

So, with Bintray you are always in the know about packages you care about! Just grab them once they published.

Bintray + GitHub = Synergistic Love Story

First things first – Bintray is not a competitor of GitHub. They complete each other, not compete. Here’s how (I love vienn diagrams):

Github and BIntray synergy

Click to enlarge

Bintray is an organic next step for developing software at GitHub – once your sources are built – distribute them from Bintray.
Our job is to make it as easy as possible for you, our fellow GitHubber. Here’s what you get:

First, sign up to Bintray using GitHub:
Sign Up

Authorize Bintray for GitHub, fill the needed details, and you’re done.

Naturally, login using GitHub too:
Sign In

Next step is the only one you’ll have to do manually, without GitHub integration – creation of a repository1. Don’t forget to select the right type!

Create Repo

Click to enlarge

Once that done, we are back to GitHub integration again. Just click on Import From Git:

Import from GitHub

Click to enlarge

Get your stuff from to Bintray in two simple steps:

  1. Select the desired GitHub repositories to become Bintray packages2. If you have tags, they can automatically become Bintray versions.

    Import stage 1

    click to enlarge

  2. Next step – get your binaries out of GitHub to the proper binary distribution platform (before they shut the binary hosting down again?). You can select the files and they will be included in your version:
    Import stage 2

Done! Your repository is properly set up with packages, versions and even files from GitHub. Last touches – readme and release notes can also be taken from GitHub (I told you – we’ll set you up!):
Readme from GitHub

Woot! Just couple of clicks and the natural next step in your software lifecycle is ready to host and publish your binaries. Configure your build tool (or, even better, your CI server) to deploy to Bintray, and rock on. Oh, that’s a topic for a whole new blog post. Stay tuned.

Happy publishing!


1 A repository, or “repo”, is a logical unit that serves as a category or grouping of information in which uploaded material and relevant metadata are stored. A repo is a grouping of software material that logically belongs together, according to theme and target audience.

2 The package is the main entity with which Bintray works. Essentially, a package is a module of software that one user uploaded so that others can download it. Contained within a repo, each package is a smaller logical unit for storing a software module or a group of files.