Twitter github

EclipseCon 2011 Attendee Survey

Just to let everyone know, the EclipseCon 2011 attendee survey is available!

Please fill it out as the results are looked at every year to find ways to improve EclipseCon.

Mylyn Builds and Hudson (Jenkins) Integration

Have you tried Mylyn Builds yet? Well, you should!

I’ve been using the Mylyn Builds Hudson/Jenkins integration extensively for the past few weeks and all I can say is awesome. As developers, we tend to spend a lot of time switching between Eclipse and something else, like a browser pointing to build results. With Mylyn Builds, I’m able to see build results within Eclipse and can even open the test results in the JUnit view and re-run any test failures. This alone helps with time savings on my end when it comes to dealing with build failures. In the end, this reminds me of my experience when first using Mylyn to work with Bugzilla… I spend more time in Eclipse working on what I need to.

Anyways, enough of me talking about it… give it a try and see yourself!

EclipseCon 2011: Effective Git Tutorial

Thanks to all who attended our hands-on tutorial yesterday!

We hope that people got a taste of the improved Git tooling at Eclipse and how to effectively work with the Gerrit code review system. As a reminder, the exercises are available online.

If you have any questions, please ask them on the EGit forums.

EclipseCon 2011 Git Tutorial Preperation

If you’re attending the Effective Git tutorial at EclipseCon 2011, it would be great if you could get an early start by doing the first tutorial exercise.

It would benefit everyone if tutorial attendees took the time to setup as there are nine total exercises to get through. It’s a bit of work to go through the first exercise and setup a Gerrit account. If everyone is setup, we can spend less time on the first exercise and more time on the other exercises. However, if we can’t get through all the exercises, everything is available online for you to finish at your own convenience. We are eventually looking to make this material more consumable and are even considering doing a book.

Anyways, I look forward to spreading the Git love tomorrow afternoon!

EclipseCon 2011 QR Code Game

I heard from the grape vine that some people didn’t know about the QR Code game at EclipseCon! All you need to play is to download a QR code reader for your mobile phone and start scanning!

I highly recommend Red Laser if you don’t have an application already to scan codes. Other than that, please read the rules of the game and start the hunt for codes!

The State of Git at Eclipse – Early 2011

Next week at EclipseCon 2011, it will be a year after we first presented some rough Git tooling to the eclipse.org community via a tutorial. At the time, the deal was that the tooling was in early stages and needed some love from early adopters to help improve the situation. I’m happy that things have come quite a long way since last year based on Eclipse Marketplace stats and the community contributions the projects have received.

So what’s next? In terms of tooling, we’re getting closer to our 1.0 release (which is planned for the Indigo release). The git tooling at Eclipse is much better these days, if you need help or have questions, please start with the most excellent EGit User Guide. From our user guide, you should tell that we support the majority of the common work flows now. If something is missing, please let us know by filing bugs or contributing.

If you’re an eclipse.org project, please consider starting the process to move your project repository to Git. There are a lot of eclipse.org projects already on Git. You can find great documentation at Eclipsepedia on how to do the move. It’s not that bad, the LinuxTools project has recently migrated to Git and the CDT project has stated that they will start the process after the Indigo release. It would be nice to see the all of the eclipse.org projects have plans to move to Git by the Indigo release.

A portion of the EGit and JGit teams will be at EclipseCon 2011, so please swing by our tutorial and track us down if you have any issues moving to Git or using the tooling. We believe that the tooling is good enough now to meet the majority of eclipse.org committer needs. All of us want to see eclipse.org fully on Git by the end of the year, so let’s work together to make this happen. If people think holding a BOF about moving eclipse.org projects to Git is a good idea, let us know and we can do it.

Maven Tycho, Hudson (Jenkins) and Eclipse

I’ve helped setup quite a few Maven Tycho builds for people as of late, with more requests coming in. Personally, I’ve had quite a bit of experience working with Tycho-based builds as being one of the first early adopters with the EGit and JGit projects at Eclipse. At that time, Tycho was pretty rough around the edges but I’m pleased to report I believe now Tycho to be one of the best, if not the best option for building Eclipse/OSGi related artifacts. Sure, it’s not perfect but it’s pretty damn good now. Furthermore, there are even large projects like Mylyn at eclipse.org that have moved to Tycho to manage their whole build if you need further proof.

One of the common complaints from folks within the eclipse.org ecosystem is how difficult it is to setup build. In the past, we had the Athena Common Build project at eclipse.org with some success. Athena helped many projects get off the ground when it comes to building and publishing their artifacts. However, it still suffered the drawbacks of PDE Build based systems when it came to debugging, customizing and extending the build system. For example, if you wanted to integrate with Hudson, add FindBugs to your build or run SWTBot unit tests, you suffered quite a bit. Well, I’m happy to report that Maven Tycho helps quite a bit with these customization issues. To help alleviate some of the pain we’re experiencing with build at eclipse.org, I decided to put up sample Maven Tycho project for people to look at and refine. I’m calling the effort Minerva as I think it plays nicely with what was done in the Athena project (Minerva is the Roman equivalent of Athena and the word Maven is in Minerva!).

The goal of the Minerva project would be to get a well documented sample build for eclipse.org projects. I can even envision a future when a new eclipse.org project comes around and they get a build already generated for them and hooked up to hudson.eclipse.org! I think once you have something working and it’s well documented, it becomes pretty easy to expand as you add new features.

To get started, I’d take a look at what is on the wiki already. If you want to play with code, ensure that Maven 3 is installed and then do a quick clone.

git clone git://github.com/caniszczyk/minerva.git
mvn -Dskip-ui-tests=true clean install

Once you do that, you should notice a p2 repository (update site) generated in the update site project’s target/site folder. To sweeten the deal, if you have Hudson (Jenkins) installed anywhere, you can configure it quickly to build the code base.

Remember how long something like that took before? In reality, Tycho isn’t that complicated to setup.

In Maven, the parent pom.xml serves as the central point on adding things to the build. It’s also generally the most complicated piece of the build as it contains information that is shared by children pom.xml files. The first part of the parent pom.xml contains identifying information:

...
<groupId>org.aniszczyk.minerva</groupId>
<artifactId>minerva-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Minvera Parent</name>
...

The second part contains profile information and where to get dependencies.

  <properties>
    <tycho-version>0.10.0</tycho-version>
    <platform-version-name>helios</platform-version-name>
    <eclipse-site>http://download.eclipse.org/releases/${platform-version-name}</eclipse-site>
    <wikitext-site>http://download.eclipse.org/tools/mylyn/update/weekly</wikitext-site>
    <swtbot-site>http://download.eclipse.org/technology/swtbot/${platform-version-name}/dev-build/update-site</swtbot-site>
  </properties>

  <profiles>
    <profile>
      <id>platform-helios</id>
      <activation>
        <property>
          <name>platform-version-name</name>
          <value>helios</value>
        </property>
      </activation>
      <properties>
        <eclipse-site>http://download.eclipse.org/releases/helios</eclipse-site>
        <platform-version>[3.6,3.7)</platform-version>
        <swtbot-site>http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site</swtbot-site>
      </properties>
    </profile>
    <profile>
      <id>platform-indigo</id>
      <activation>
        <property>
          <name>platform-version-name</name>
          <value>indigo</value>
        </property>
      </activation>
      <properties>
        <eclipse-site>http://download.eclipse.org/releases/indigo</eclipse-site>
        <platform-version>[3.7,3.8)</platform-version>
        <swtbot-site>http://download.eclipse.org/technology/swtbot/indigo/dev-build/update-site</swtbot-site>
      </properties>
    </profile>
  </profiles>
...
  <repositories>
    <repository>
      <id>helios</id>
      <layout>p2</layout>
      <url>${eclipse-site}</url>
    </repository>
    <repository>
      <id>swtbot</id>
      <layout>p2</layout>
      <url>${swtbot-site}</url>
    </repository>
    <repository>
      <id>wikitext</id>
      <layout>p2</layout>
      <url>${wikitext-site}</url>
    </repository>
  </repositories>

What’s cool about setting up these repositories and profiles is that we can easily switch the build to run against Helios or Indigo repositories. If you want to run Indigo, simply set -Dplatform-version-name=indigo and you’re good to go. You could even setup multiple hudson jobs that build against various Eclipse releases if you want to ensure everything works properly.

The third part lists the modules (e.g., features, plug-ins) that are part of the build:

  <modules>
    <module>org.aniszczyk.minerva.core</module>
    <module>org.aniszczyk.minerva.ui</module>

    <module>org.aniszczyk.minerva-feature</module>
    <module>org.aniszczyk.minerva.source-feature</module>

    <module>org.aniszczyk.minerva-updatesite</module>

    <module>org.aniszczyk.minerva.tests.core</module>
    <module>org.aniszczyk.minerva.tests.ui</module>
   </modules>

Each of those modules has a simple pom.xml that tells Tycho what type of project it is (think feature or plug-in). You should be able to piece things together by looking at the documentation on the wiki. Let me know if you have any questions and please feel free to add anything. My plan is eventually to get things up to shape so the code could live at eclipse.org and get things up to a point where a Maven archetype could be built and used to generate new projects.

Thoughts? Also, if you’re an eclipse.org project and interested in moving to Tycho, feel free to contact me and look at the example.

Eclipse Google Summer of Code 2011

It’s that time of year again, the Summer of Code program is gearing up (timeline)!

If you’re part of an eclipse.org project, you should consider being a mentor and spending some time and coming up with ideas. To add an idea, simply update the wiki with your idea. In the past, eclipse.org has benefited quite a bit from this program by getting some code and attracting new contributors. I find mentoring to be one of the most rewarding activities, it’s great to share your passion with others. If you’re a student and don’t see any ideas that you like, feel free to track down some eclipse.org projects and ask them if they are willing to mentor any ideas you come up with. If you have any questions about the program, feel free to contact me.

Finalized EclipseCon 2011 Keynotes

Hey guys, just wanted to let you know that we finalized the EclipseCon 2011 keynotes!

Todd Lipcon will introduce Apache Hadoop and share his experience of working with large scale software systems. Mark Reinhold and John Duimovich will discuss the future of Java and in particular, OpenJDK. Finally, we’ll have David Gondek from the IBM Watson Strategy Team talk a bit about IBM Watson.

I find it interesting that Watson was mostly written in Java (with a smattering of Prolog and C++). If you’re curious how the machine works, check out this interview by the IBM Watson team. Oh, and please remember to register for EclipseCon if you haven’t already! I look forward to seeing everyone at the conference.

2011 Eclipse.org Board Elections

Hey guys, it’s that time of year for the Eclipse.org board elections! You should be getting an email soon with instructions with how to vote. Please take the time to read people’s position statements and vote as who you elect on the board helps determine where the Eclipse Foundation is headed.

From my point of view, I feel fortunate to be nominated again as I believe it’s going to be an interesting year for Eclipse. The year 2011 marks the 10th anniversary of the Eclipse Foundation and it’s amazing to see how many things have changed over the past ten years in the technology industry. It’s great to see the web becoming very relevant again… ten years ago all I remember is the browser being used as a medium to display a dancing banana. In all seriousness, I think the web is becoming more important and Eclipse needs to be prepared to participate in that space.

As I reflect what has happened last year while I was on the board, I’m proud of the progress we made in some things like moving to Git. While not as fast as I’d like, the committer representatives did all the groundwork in convincing the right parties to move things forward. I personally spent time contributing to the EGit and JGit projects to help get the tooling to a state that the whole Eclipse ecosystem could take advantage of Git. If I get elected again, I’ll do my best to continue this trend and see that by the Indigo + 1 release, all eclipse.org projects have moved to Git.

There are many things I want to do at eclipse.org like:

  • Continue modernizing the Eclipse infrastructure around Git and make sure the move is done by end of 2011
  • Simplify the IP logging process by possibly taking advantage of Git (e.g., git-notes)
  • Push the Foundation to consider hosting a eclipse.org wide Gerrit instance for code review
  • Make way for Eclipse’s entry into the web development community with Orion
  • Push the Eclipse Marketplace to become an appstore for the Eclipse ecosystem
  • Build bridges within the Eclipse ecosystem and with other open source and commercial projects
  • Encourage Eclipse committers and projects to participate in the community via blogs, forums and other communication channels
  • Lower the barrier to entry for new projects without sacrificing the quality Eclipse is known for
  • Evangelize and grow the e4, Orion and EclipseRT efforts
  • Ensure Eclipse processes are transparent and lightweight as possible

If you want more information, please read my position statement. Or, if you have any questions, feel free to email me or find me on Skype. If you think I would continue to do a good job representing the committers, I’d appreciate a vote.