Twitter github

Category “work”

Comments Closed

Gerrit Code Review Book

It’s great to finally see a book out there on Gerrit Code Review. First off, it’s amazing that the cover features the Gerrit mascot which is the kung fu review cuckoo

Gerrit Code Review Book

As some of you may know, I’m a huge fan of Gerrit and was involved with enabling it for Eclipse Foundation projects as part of our great Git migration. I also shamelessly support pretty much anything else that embeds JGit.

Anyways, I spent some time last weekend going through the book and I found it did a great job introducing Gerrit while taking care of basic setup gotchas. If you’re interested in using Gerrit at the Eclipse Foundation (or else where) and have no idea what the hubbub is about, I highly recommend checking the book out. As an advanced Gerrit user, I found the Appendix sections on working with GitHub (Gerrit supports replication) and integration with Jenkins (or Hudson) well done. As a bonus, I also learned about GerritHub which I had no idea existed.

In my opinion, the main downside of the book is that it didn’t cover an advanced Gerrit feature regarding tweaking submit rules with Prolog (which could always use more documentation), however, you can check out the online docs for some solid examples.

In the end, it’s always good to support authors who take the time to write about open source technology. Check the book out!

EGit and JGit 2.3 Released

The JGit and EGit teams are happy to announce the 2.3.1 release.

egit23

What’s new? I recommend checking out the JGit New and Noteworthy along with the EGit New and Noteworthy documents. The team is excited to get a new version ready for the Juno SR2 release. The release tag is: 2.3.1.201302201838-r

You can download the latest release using this repository (or the Eclipse Marketplace): http://download.eclipse.org/egit/updates-2.3

Enjoy and the next release will be in time for Kepler in June 2013. I personally look forward to recursive merge support soon (see bug 380314).

Comments Closed

Poll: Help name the 2014 Eclipse Release

There will be an Eclipse Simultaneous Release on the fourth Wednesday of June 2014. We just started the poll for potential release names (see bug 398191) based on eclipse.org community feedback. The potential names are:

Note that this community poll will be used to pick top choice. We may have a series of run-off polls with voting until majority consensus achieved. The poll will be opened for a week and then I expect the final decision on the name will be made by Feb 15th at the latest (after Eclipse Legal approval is finalized).

Go vote and be heard!

Eclipse: Naming Kepler+1

It’s that time of year again, time to name the next Eclipse release. The Eclipse Kepler release will happen on June 26, 2013, but after that, we’ll need a new name for the following release (because calling the next release Kepler+1 gets awkward over time). The naming responsibilities traditionally fall to the Eclipse Planning Council and preference will be given to names that start with “L”, but no strict rule that other names would not be considered. On top of that, preference is given to names that fit the moon, heavenly body gods, or scientists themes we’ve had in the past years.

To add your name to the list of possible names, see bug 398191. Here’s an initial list of names to get your creative juices flowing:

  • Lacus
  • Lakshmi
  • Leto
  • Leo
  • Leda
  • Loge
  • Lok
  • Luna

Have fun, the bugzilla entry will remain open until January 22nd to gather suggestions for potential names. After that, a community poll will be used to pick top choice. We may have a series of run-off polls until a majority vote is achieved. The poll should be opened on January 22nd with a week of voting allowed. The final decision on the name will be made by Feb 15th at the latest, maybe earlier depending how quickly final Legal approval is.

Searching the GitHub Archive

Since it’s getting close to the end of the year, I’ve been working on generating some “year in review” reports for company related open source activity. As part of this effort, I stumbled across the GitHub Archive project by @igrigorik.

Essentially, it allows you to query the GitHub timeline (note: timeline data is available starting February 12, 2011). As an added convenience, the data is also available on Google BigQuery via a public dataset to make it easy to try out a few queries before downloading all the archive data locally. A couple downsides to Google BigQuery are that  the user interface is a bit clunky and there are query quotas in place (unless you sign up for the service), other than that it’s pretty straightforward to use.

Of course I got distracted from my initial task and started to search for profanity usage across the GitHub timeline in 2012. I mean, who isn’t interested in seeing how many instances of the seven dirty words they can find across the GitHub timeline? It all starts with a simple query (see the gist).

How many instances did I come across?

37,674 as of today (also posted a CSV online).

Here are some of my favorites:

After this distraction, I was happy add the new word “refuckulate” to my lexicon.

Enjoy grokking the GitHub Archive, I highly recommend it!

Eclipse Foundation Migrated to Git

Update: Mike Milinkovich has a great post on this topic too!

The countdown is finally over…

 

eclipsecvs

Over 80% of the projects at the Eclipse Foundation are finally on Git and CVS access is switched to be read only. I believe the projects left on SVN will migrate soon enough, there are just too many advantages with using Git.

One interesting bit of history regarding this migration to Git is it all started back in 2009 when some community and Eclipse Foundation board members wanted to have Git, JGit and EGit all at Eclipse. You may not believe it, but at that time, moving to Git was a bit controversial. I dug up a old Google doc that we had discussing the pros and cons of moving to Git (prepping a presentation for the Board), this is what we had for benefits:

  • Committers want Git support on eclipse.org
  • Provides all contributors equal tool support: non-committers equal citizens, reduces contributor startup time; have all committer tools at start, reduces contributor -> committer conversion bump
  • More accurate recording of activity: author recorded separately from committer; better IP tracking, code movement detection; better IP tracking after-the-fact; easy to maintain history, audit trails
  • Open source implementations; meets mandate to avoid vendor lock-in.
  • Widely popular: github.com has become very high traffic site.
  • Staying power; many large projects use Git, its not going away. Big current users: Qt, KDE, Linux, Android, X.org, Wine, OLPC, OpenAFS, Ruby, Perl5. More considering: GNOME, ASF
  • Easier to move projects to eclipse.org

An entertaining part of this analysis was the mention of GitHub becoming a high traffic site in 2009… GitHub recently posted some stats so we have an idea of what life was like in 2009 compared to now…

GitHub Stats

How times change.

EGit and JGit 2.2 Released

The JGit and EGit teams are happy to announce the 2.2 release.

EGit JGit 2.2

What’s new? I recommend checking out the JGit New and Noteworthy along with the EGit New and Noteworthy documents. While there were a lot of new features, my favorite feature is the performance improvement in EGit for re-indexing repositories (it’s now done incrementally, see bug 393642).

The release tag is: 2.2.0.201212191850-r

You can download the latest release using this repository: http://download.eclipse.org/egit/updates

Enjoy and happy holidays! The next release will be in mid February.

Gerrit Tip: Rebase Change Button

I use Gerrit quite often and have a particular workflow… but sometimes I discover new features out of the blue…

Since Gerrit 2.4 (see release notes), a Rebase button was added that will take the most recent patch set and have it be rebased onto the tip of the destination branch or the latest patchset of the change depended upon. A new patch set containing the rebased commit will be produced and added to the change. It’s a great feature which helps alleviate a common workflow when working with Gerrit.

Note: Another option would be to set the Submit Action (via Admin > Projects > [Project Name] > General > Project Options) for your project to use ‘Cherry Pick’ as this would keep a clean history with no merge commits when submitting changes.

Anyways, enjoy and happy rebasing!

Open Compliance Summit Asia 2012

Last month, I was grateful to have the opportunity to present at the Open Compliance Summit hosted by the Linux Foundation.

As some of you may know, a portion of my current job at Twitter is defining our open source strategy and compliance efforts. While at Twitter we’re fortunate that compliance is less burdensome than at some other traditional companies who have many distribution points (e.g., devices), nevertheless it’s still important to respect licenses and the software authors intention. We mostly run on open source software and are cognizant of the benefit we receive from a variety of open source communities and what it means to give back. We also don’t mind sharing what we develop, on top of preferring liberal licenses as that helps with adoption (and also makes compliance less complicated) in my opinion.

At the end of the day, it was a great event bringing together participants from different companies to discuss open source compliance issues and best practices. Thanks again to the Linux Foundation for hosting the event.

Checkout GitHub Pull Requests via CLI

The Eclipse Foundation (by the way, you can follow them on Twitter now at @EclipseFdn) is now looking at ways to make it easier to accept GitHub pull requests. I highly recommend you check out this bug if you have any comments on the issue. I think there’s a lot we can do to make the lives of eclipse.org committers easier, along with our community contributors.

Ok, back to the main point of this post. I found a neat trick recently when it comes to accessing GitHub pull requests via the command line. The traditional way is adding a remote that involves the persons repository issuing the pull request (or curling a .patch file via curl https://github.com/repo/pull/123.patch and piping it to git-am). However, it’s as simple as modifying your fetch parameters for the origin repository to include “+refs/pull/*/head:refs/remotes/origin/pr/*” as an option. You can set this optional globally if you like in your git-config as a bonus:

git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*"

You are now able to easily fetch and checkout pull requests to play with. For example:

$ git checkout pr/123
Branch pr/123 set up to track remote branch pr/123 from origin.
Switched to a new branch 'pr/123'

That’s my git tip (or hack) for today, hope you enjoy it!