Hibernate – From User to Contributor in 24 hours.
April 17th, 2012 by BryanIt finally happened. After nearly 8 years of using Hibernate in various incarnations, yesterday I came across real honest to gosh bugs that I was able to track down and determine how to fix.
The hibernate community is big. But it, like every other good open source project is a meritocracy based organization, run by a handful (or couple handfuls) of dedicated developers. Some do it for a living (jboss / redhat employees, I’m looking at you) others do it as a way to break into the industry.
I am still a firm believer that if you want to do software development for a living, you’ll do it in your free time, and in the modern age (the last 15 years) that means you’re probably doing some FOSS in your spare time. I’ve been involved with enough other FOSS projects to know the right questions to ask and how to seek out the right people to ask them of. Here’s my take on Hibernate, now that I’ve successfully submitted 3 patches which are in consideration for 4.1.3
- Get a freenode IRC account. Register a username. /join #hibernate and #hibernate-dev
- Spend a proper amount of time searching their bug-tracker. (JIRA) Make sure your problem is unique before creating a new issue. If it’s not, make sure you read the entire thread on the existing issue. There may be a workaround listed there.
- If you plan on attempting to patch the thing yourself, talk to the guys in #hibernate-dev _before_ you start working on it.
-
- Get a GitHub account. Make sure you take the time to setup your ssh keys.
- Read over the Contributing Code document in the hibernate wiki. sebersol provided me the link when I asked what the process was in #hibernate-dev
- When you have your fork, and you have your fork checked out, don’t bother with installing gradle locally. This was my first experience with gradle. There’s actually an embedded gradle (gradlew, as it’s called) in the hibernate source you’ve checked out. Just execute that.
That’s pretty much all the notes I have. The folks in #hibernate and #hibernate-dev are pretty helpful, and I was surprised by how open to contributions from a guy they’ve never worked with before they were. Although, it was pretty fun when one person pointed out, “If you’ve already tracked down the source of the bug, this process should be pretty easy for you.”
Perhaps that was the first piece of merit I earned — the secret handshake, so to speak.
So here’s the issues I’ve contributed fixes too.
HHH-7101
HHH-7251
HHH-7252
