Jenkins Blogs
Happy birthday Jenkins!
On February 2nd, 2011 the first release of Jenkins, version 1.396, was made available for public consumption. Thus marking a new beginning for many of us who had come to rely on this very versatile piece of software and wanted to see it continue to thrive.
Along with some other bug fixes, the 1.396 release of Jenkins included a very important changelog item:
Fixed a trademark bug that caused a considerable fiasco by renaming to Jenkins
On behalf of the core Jenkins team and the governance board I would like to extend a extremely large Thank You! to all of the plugin developers, bug filers, wiki page editors, book authors and the users who have helped grow Jenkins into the project it is today.
Some of the tidbits from our highlight reel:
- As of this writing there have been 54 releases of Jenkins
- Jenkins now supports writing plugins in Ruby as well as Java (more languages in the process)
- We have 7 high-speed mirrors streaming Jenkins packages to users around the world.
- There are now over 450 different plugins available for Jenkins
- Over 80 donors participated in our end of year fundraising drive
- 5 "Long Term Support" releases have been published by the Jenkins community, offering users a slower moving upgrade target (supported even further by CloudBees' Enterprise Jenkins product)
- Public project governance meetings are held and recorded (almost) every couple of weeks.
- More than 340 individuals contribute on GitHub to the project in some form or another.
- About 750 members of the developers mailing list and around 1700 on the users mailing list
There are many other impressive sounding numbers I could rattle off, but the list is far too long to be interesting.
The project isn't perfect and nor is the software, but we're off to a fine start and I hope you'll join us in making this next year of Jenkins even better than the first.
Highlight video from JUC 2011
A slick highlight video from the Jenkins User Conference, 2011 was posted recently which captures some great quotes from a number of the fantastic speakers who participated in the inaugural JUC.
I've embedded the video below, enjoy!
Jenkins at FOSDEM 2012
Shortly after the Jenkins project shows up at SCALE10x we will also be at FOSDEM 2012 in Brussels on February 4th and 5th.
If you can make it to Brussels, you definitely should come to FOSDEM. It's one of the largest meetings of open source developers and users on the planet! It's a tremendous opportunity to meet other people in the open source community but also a great learning experience, with over 25 main tracks and plenty of devrooms each hosting their own talks, demos and hackathons. The event is also free!
This year Jenkins will host a stand (table) in the exhibit hall where we will have Jenkins stickers, flyers and maybe even some t-shirts! In addition to the stand, R Tyler Croy will be speaking in the Configuration and Systems Management dev room on the subject of "Open Source Infrastructure - Running the Jenkins project with Puppet and more."
If you're interested in joining in, there's some organizational material on the FOSDEM page on the wiki, with some planning/discussion happening on this mailing list.
I hope to see you there!
Event Date/Time: Sat, 2012-02-04 12:00"Thank you" page for Windows/OS X installers
I've tweaked the website so that downloading the Windows and Mac installers will navigate the browser to "thank you/what's next" page. These pages have links to Wiki that educate the users on where/how the installer will run Jenkins.
Hopefully this makes it little easier for new users to get started on Jenkins. I've tested the new mechanism with IE, Safari, and Firefox, but if you notice a problem, please let us know.
Building Jenkins plugins with Gradle
Until now, Jenkins plugins written in Java or Groovy could only be built with Maven, using the maven-hpi-plugin to generate a proper manifest and archive which Jenkins can consume. But starting now, you can also use Gradle!
See the wiki for information on how you can use Gradle and the new gradle-jpi-plugin to build, test and release your Java or Groovy Jenkins plugin.
Adding diagrams to Wiki
Thanks to the kindness from Gliffy, we can now add diagrams to Wiki pages, in a way that enables collaborative edits.
See more info, including a sample diagram in a Wiki page.
Jenkins survey result and what UI improvement would you like?
Jenkins community survey result is in, which shows a number of interesting stats for us developers, such as 82% of people saying their Jenkins is mission critical, or the spread of distributed builds, especially compared to my earlier similar usage analytics.
But just as interesting is the free-form answers to questions like "If there was anything you could you change about Jenkins CI, what would it be?", and while the answer is colorful, there are a few common themes that one can easily spot.
One of them is "nothing!", which made me feel good, but another is "UI improvement." And incidentally, Domi has started a thread in the Jenkins-users list about this exact topic a week ago.
The idea is to brainstorm what kind of concrete improvements people would like to see, then run them through some real user experience designers and decide which ones are good ideas and which ones are not.
I find this thread useful — so much so that one of those ideas (always show the "Save" button at the bottom in the config page) is already implemented toward the next release of Jenkins. So if you have some thoughts to share, please chime in on that thread.
Thanks for the support PagerDuty!
Over drinks this evening Kohsuke pointed out that he never saw a blog post about PagerDuty.
If you've never worked in a sysadmin role or in any other position that would require an on-call rotation, then you may have never seen PagerDuty.
In essence the service provides a great series of integration points with Pingdom or Nagios for handling monitoring. As an infrastructure guy (part time), I can honestly say it's a great tool and I'm grateful to PagerDuty for supporting Jenkins with our own account to help manage project infrastructure.
A couple weekends ago I finished setting up Nagios (read-only username/password: jenkins/jenkins) for critical project services which by itself is a good step forward. Combine that with PagerDuty's Nagios integration and a solid on-call rotation, and I'm more confident than I've ever been that Kohsuke or myself could actually take a vacation!
Check them out, and be sure to thank them on Twitter at @PagerDuty for supporting Jenkins!
Fundraising drive update: thank you everyone!
Our earlier appeal for donation was a drastic boost to our fund-raising drive, (and looking at the twitter reactions, it feels like the Wikipedia parody we put on Jenkins on Jenkins helped spread the words — I guess jokes do work!
And I'm happy to report that we've successfully raised over $12000 as of today. That's more than enough to pay off all the current balance and it should keep the project going for quite a while. I've assembled the donor list in appreciation.
So once again, thanks everyone for their generous support!
Breakpad and Your CI – A Strong Team
If your C++ software has to run 24/7 on some server rack at your customer’s data center, it has to meet not only all the user requirements, but also requirements that come from you as developer. When your customer calls you about some “problems”, “strange behaviours”, or even crashes, you must be able to detect what went wrong. Fast!
One means to this end is of course logging. But if your application crashes, nothing beats a decent stacktrace
Google’s breakpad library comes in very handy here because it provides very easy crash reporting. Even if your process has 2 gigs of virtual memory, breakpad shrinks that ‘core dump’ down to a couple of megs.
Breakpad pulls that trick off by using so-called symbol files that you have to generate for each compiled binary (executable or shared library). These symbol files together with the breakpad dump file that is created at crash time are then used to recreate the stacktrace.
Because every compilation creates different binaries, dump file and symbol files need to be ‘based on’ exactly the same binaries.
This is where you can let your CI system do some work for you. At one of our customers we use Jenkins not only for the usual automatic builds and tests after each check-in but also for release builds that go into production.
At the end of each build, breakpad’s symbol dumper runs over all compiled executables and libraries and generates the symbol files. These are then archived together with the compiled binaries.
Now we are prepared. Whenever some customer sends us a dump file, we can just easily pull out the symbol files corresponding to the software version that runs at this customer and let breakpad do its magic…
Jenkins at SCALE 10x in Los Angeles
Consider yourself cordially invited to join the Jenkins project at the Southern California Linux Expo this January 20th through the 22nd in Los Angeles, CA.
For those who aren't familiar with the expo, often referred to as "SCALE", here's what Wikipedia has to say:
The Southern California Linux Expo (SCALE) is an annual Linux, Open-Source, and Free Software conference held in Los Angeles, CA.
SCALE is one of five community run Open-source software events in the United States, as of Spring 2011. SCALE has been held annually since 2002, and is a volunteer-run event. The event features an expo floor with both commercial and .org / non-profit exhibitors, as well as 3 days of seminars on the topic of Linux and Open Source software.
This year, we have been invited to exhibit on the expo floor where we intend on introducing our fellow hackers and non-hackers alike to the joys of continuous integration with Jenkins! Kohsuke and myself will be there demonstrating Jenkins and handing out stickers.
If you're interested in helping with the Jenkins booth, please join this mailing list so we can get things coordinated! If you don't have time to help us man the booth, but will be coming to SCALE anyways (we highly recommend it), stop by and say "hello!"
Just as we did for JavaOne this year, we will also likely host a "CI Dinner" in Los Angeles before the Expo. The details of which will likely be hammered out closer to the event, and likely coordinated on the mailing list.
Hope to see you in LA!
Event Date/Time: Fri, 2012-01-20 15:00Holiday appeal: please help Jenkins pay the project expense
As we approach the holiday season, which is when people start to feel more charitable, at least in the U.S. So I'd like to make one more plea, that the Jenkins project needs your help in paying its expense, and that we are still about $1000 shy of the goal we need to get to. So if you can, please help us by donating to Jenkins via SPI.
Think about all the benefits you are getting from your Jenkins, and think about all the volunteer efforts that went into it. Some help by writing code, some help by answering other users questions, and some help by spreading words about Jenkins. If you've been wanting to contribute to the project but you haven't figured out how, this is one way to do it.
As a thank you, I'm writing a special "friend of Jenkins" plugin that I'd like to send out to those who have donated, so that you can show off your support on your Jenkins instance.
Once again, please help us reach our fundraising goal.
Community-contributed localizations to be bundled in Jenkins 1.443
In 1.430, we added the translation assistance plugin in the hope of increasing the contribution from the community. It's been 3 months, and I've finally took the opportunity to integrate them into Jenkins.
The result is pretty amazing. Before this, we had 26 languages, with wildly varying degree of completeness, such as French, Japanese, German, etc. This is still pretty good, but this integration added updates to 40 languages, including 17 brand-new languages, pushing the total up to whopping 43 languages. Among the newly added languages are Arabic (sorry, no right-to-left support yet), Esperanto, Hebrew, as well as large amount of Chinese (both simplified and traditional) and Korean.
While working with this, I've also discovered an issue that prevented Jenkins from correctly showing Hebrew, Indonesian, and Yedish localizations. All these changes will be in 1.443. And going forward, I'll be integrating changes more frequently to reduce the delay.
So big thank you for everyone who contributed localizations, and please keep them coming! Contributing localization is very easy. If you are interested in more seriously working on localizations, please see this Wiki page and request the committership in the project. This is yet another way people can contribute to OSS without writing code.
Project Meeting Wed. Nov 30th
This upcoming Wednesday November 30th, we will be having a very important project meeting to discuss a number of items pertaining to conferences and general Jenkins evangelism. You can view the whole agenda here.
If you're interesting in seeing Jenkins at an upcoming conference (such as SCALE10x or FOSDEM) then please join in the discussion on the #jenkins IRC channel on Freenode.
This is going to likely be the second to last Jenkins project meeting of the year so be sure to join us at 11:00 am PST or 19:00 UTC.
For those who don't frequent the IRC channel, you can click this link from your browser to join in.
Hope to see you there!
Event Date/Time: Wed, 2011-11-30 11:00The beginning of a new era: Ruby plugins now a reality
It's not often that I get to use that much hyperbole in a Jenkins blog post, but I think in this case it's allowable. A journey that started over a year ago by Charles Lowell has reached a new level, thanks to lots of help from Kohsuke along with Hiroshi Nakamura and Jørgen Tjernø.
As of today, with Jenkins 1.438, you can now download and install Ruby plugins from the update center (the Path Ignore plugin being the first).
Words simply can't express what a monumental achievement this is for the Jenkins project, both from the technical perspective but also in terms of what this means for the future of the project.
According to the languages dashboard on GitHub, Ruby is over two times as popular as Java on the site. I do not intend to start a language popularity contest here, but if we pretend just for a minute that the GitHub ecosystem is all that exists. Can you then imagine how powerful it would be to engage and include a community of open source developers that would be two times the size of the current pool of contributors? That's tremendous potential!
Great! Where do I start?For those that are curious, the first officially released Ruby plugin for Jenkins is Jørgen's pathignore-plugin which can be found in the update center. If you're looking for a reference project, this is currently the most up-to-date plugin.
There is also a wiki page covering Ruby plugin development, which might be a little out-of-date but covers most of the essentials.
Additionally you might find the jenkins-prototype-plugin an interesting resource as it is practically a kitchen sink of demo/test Ruby plugin code.
Currently only a few extension points (BuildStep, Publisher, BuildWrapper) are mapped in a Ruby-friendly manner. Don't let that scare you though! If you dig around in the jenkins-plugin-runtime you can see how the existing extension points are mapped from Java into Ruby, because Ruby plugins are running under JRuby, if you need to access some Java APIs, you can do so without too much trouble.
The Thank YousGreat efforts like this one don't just happen without support, which is why I'd like to call out and thank The FrontSide for their wonderful support, helping to cover costs of WebEx for Office Hours and covering Charles' time while he worked with Kohsuke on the internal plumbing needed to make Ruby plugins possible within Jenkins core. If the name "The FrontSide" looks familiar to you, that might be because they also created and donated the Jenkins logo!
We should also thank Lookout, Inc (full disclosure: Lookout is my employer) and CloudBees for affording some employee time for Jørgen and Kohsuke respectively to work on the project.
Continuous Delivery with Jenkins down under at OSDC11
Coming up this Thursday, long-time Jenkins contributor Cliffano Subagio will be speaking at the Open Source Developers Conference 2011 in Canberra, Australia.
Cliffano's talk will be on: "Continuous Delivery Using Jenkins", clearly a popular subject lately as more and more organizations start to recognize continuous delivery as a valuable practice.
In the session, Cliffano will be covering practices for using Jenkins for continuous delivery and will discuss some of the benefits from doing so.
If you're at OSDC 11, stop by Room 1 in the Manning Clark Center!
Event Date/Time: Thu, 2011-11-17 14:30Devoxx11: From Continuous Integration to Continuous Delivery
This Tuesday at Devoxx 11 John Smart, author of Jenkins: The Definitive Guide, will be giving a talk titled: "Jenkins: From Continuous Integration to Continuous Delivery".
In his talk, John will be discussing various strategies for turning your beloved Jenkins Continuous Integration system into a super-charged Jenkins-powered Continuous Delivery platform.
This includes topics such as:
- Ways to ensure your builds are always production-ready automatically!
- Using build pipelines and build promotion in Jenkins to filter out poor builds and streamline the build process.
- Rolling back and redeploying previous builds
- Database update strategies
- Plenty more..
If you're at Devoxx week, be sure to come by!
(If you're not at Devoxx, be sure to check out John's twitter account and his great book)
Event Date/Time: Tue, 2011-11-15 17:25Jenkins Conference Slides and Videos Online
It is just turning into a video heavy week isn't it? First the videos from the Munich Meetup were made available, and now the videos from the first ever Jenkins User Conference.
The full list of slides and videos can be found on this page, hosted by CloudBees who did a phenomenal job helping to organize and host the conference.
I want to thank everybody else involved once again, the fantastic speakers, the enthusiastic attendees and of course the sponsors for making it possible (CloudBees, Red Hat, LifeRay, New Relic, Sauce Labs, Chariot Solutions and eXo).
Jenkins Meetup Munich Videos
Better late than never right? Back in June, during his world tour, Andrew Bayer stopped by Munich to participate in a Jenkins Meetup along with Dr. Ullrich Hafner.
Andrew gave a talk titled "The State of Jenkins" (slides) and Ullrich talked about "Static Code Analysis with Jenkins" (slides)
You can view the videos on this page hosted by TNG.
Thanks to Stefan Wolf for the heads up!
Project Meeting this Wednesday
It's about that time again! After a productive meeting on October 26th we have a number of new items to address this upcoming Wednesday, November 9th at 18:00 UTC
You can view the upcoming meeting agenda on this page, feel free to add your own items if they need to be addressed as well.
As per usual the meeting will be on the #jenkins IRC channel on the Freenode network (direct web IRC link).
Event Date/Time: Wed, 2011-11-09 11:00






