Sonatype Nexus 1.0.0-beta-2 released

April 8, 2008 By

Sonatype Nexus 1.0.0-beta-2 has now been released. A list of the changes can be found here. If you are upgrading from beta-1, be sure to see the new upgrade section in the Nexus chapter of our Maven book.

Nexus is a Maven repository manager that is able to host your internal repositories, proxy downloads from external repositories, generate indexes consumable by M2eclipse, and if you ask nicely, it will even do your dishes!

Learn more about Nexus

Categories: Maven, News, Nexus

Quality is not accidental

April 8, 2008 By

I’ve had plenty of opportunities to manage releases of products in my career. As I mentioned in an earlier post, most of them were large mission-critical enterprise applications. Open source projects are different beasts entirely, but they don’t have to be. A little bit of Enterprise rigor combined with the vast resources of the community can reap great rewards.

Lately the Maven project has been taking a lot of heat from various sources about stability and over-all quality. For the most part, they were right. The Maven team is very strong and certainly no one intends for these problems to happen, but ultimately they were.

In a well run commercial project, you have a team of QA engineers dedicated to validating fixes and checking for regressions. Unfortunately no matter how hard you test and identify regressions, business pressures often force a release to occur before it’s truly ready.

In an OSS project, the team is typically made up of developers and not professional testers (or docs writers). As such, you tend to end up with lots of code and less than stellar testing coverage. However, if you expand the concept of the team a bit to include the user community at large (aka The Community), you can easily smoke the commercial equivalent for a couple of reasons:

  • The user community is comprised of a nearly limitless number of expert users who are highly motivated to check for regressions
  • Each user in the community brings a slightly different set of use cases to the testing effort
  • The absence of business pressure for a release can be a blessing if harnessed correctly.

During a review of the open issues while planning 2.0.10, I became aware that a significant number of open issues start with “this used to work until 2.0.[x]“. I became frustrated and a little embarrassed to realize how bad of a regression problem we had going on.

At that point I decided that my personal priority for 2.0.9 had to be No more regressions.

The normal release process for Maven is to stage a release, email the dev list and wait for votes or show stopper issues to occur. The norm for most releases is 72 hours, but with Maven core releases it was common to let it bake for a week or more. Based on history, I was positive that the first few attempts wouldn’t make it through, so we started with a “pre vote” instead of a vote email.

It seemed that each “pre vote” staged release we posted for dev list testing showed yet another how come no one noticed that? regression. It became apparent that we needed more than ever to harness the power of the full community to squash these regressions. Since tossing out multiple versions all called “2.0.9″ to such a wide audience was clearly a bad idea, we started appending -RC[x] to distinguish them. Additionally, we needed to have a set of operating parameters to guide this broad level of testing, lest we have chaos in the flood of bug fix requests.

The gist of the operating parameters was:

  • We won’t fix more issues unless it’s a demonstrated regression from the previous version. (2.0.8)
  • We will fix all regressions identified unless fixing it is riskier than leaving it.
  • All changes will be accompanied with a core Integration Test.
  • Community participation will drive the quality of this release.
  • We will continue this progress as long as it takes.

That last item relates specifically to the lack of business pressures to force a premature release. Being OSS allows us to harness the immense power of the community for as long as it takes to get the release right.

So far we’ve gone through 8 release candidates, and, as a team, we were able to correct every regression identified, something I wasn’t sure would be possible. The official release is now staged awaiting a last check and formal vote. If all goes well, the release will be out later this week.

The feedback received on the new process has been overwhelmingly positive and the level of testing by users was surprisingly high for the first try. A special thanks to all of you that tested and provided feedback, even if it was just confirming that everything looked good. Several users went through the effort to validate all eight of the RCs on corporate CI systems and that’s no small feat.

Going forward, I’m hoping to be able to put out more regular core releases and by holding the No regression mantra from the beginning, future releases should be easier. As promised the lessons learned from this release will be codified into a new formal release procedure. I’m currently toying with introducing the idea of milestone releases for regression testing should any future release go beyond a month or so since the last release.

Only time will tell if 2.0.9 stands out from all the predecessors in terms of quality, but it feels like we’re on the cusp of a new era. WDYT?

Categories: Community, Maven, Strategy

Sonatype's Nexus 1.0-beta-1 Released

April 4, 2008 By

After many months of alpha testing we are tickled pink to announce the 1.0-beta-1 release of Nexus. Tamás Cservenák, Brian Fox, Eugene Kuleshov and Justin Richard have been working very hard to bring Maven users something we feel will benefit the whole community. In an unbelievable twist of fate, this might be the first Maven-related project that has documentation with its first releases! We have a website with some information about Nexus which you can find here:

http://nexus.sonatype.org

And Tim O’Brien has written a chapter on Maven repository management which covers all the basics that people will need to get started with Nexus. We’ll have a few more cool announcements to make about Nexus shortly, but people are probably most interested in how to get started, where they can download Nexus, and if there are any mailing lists to join. You can surf around the site, but here are the most relevant links.

http://nexus.sonatype.org/getting-started.html http://nexus.sonatype.org/download.html http://nexus.sonatype.org/mailing-lists.html

We look forward to feedback from users, and you’ll definitely be hearing more from us about Nexus!

Thanks,

The Sonatype Team

Categories: Nexus

Nexus Repository Manager 1.0.0-beta-1 Released

April 3, 2008 By

Nexus is the next generation of the popular Proximity repository manager software for use with Apache Maven. This is the first public release of Nexus, and I believe it marks an important milestone in the practice of building software.

I’m not what you might call an early adopter when it comes to software. In the vast majority of applications I use, I know how to use less than 25% of the features. A long time ago, I realized I was spending too much time trying to keep the technology (software, hardware, configurations, whatever) going to get anything done in a reasonable amount of time. Today, my point of view is very pragmatic. For any new application, I generally ask myself what the software does that will make my life easier in concrete terms, and can I really depend on it to do these things reliably and with little or no babysitting. For instance, I generally don’t use the milestone releases of my IDE of choice, Eclipse; they’re simply not stable enough for me to be able to focus on the software I’m trying to write.

As a result of this viewpoint, you’re not going to hear me get very excited about beta releases of other people’s projects very often. You won’t hear me trying to sell you on the latest and greatest technology that probably overstates its capabilities. I’m not a big believer in the value contained in the promise of a piece of software, unless I have intimate knowledge of how it’s put together. In short, I’m not going to be your first choice for the job of technology evangelist.

Having said all of that, I do stand by my initial statement about Nexus. I do believe Nexus represents something new in the discipline of producing quality software. I can talk about the slick UI features that I love to look at; I can talk about how cool it is that you can reuse repository definitions in different groupings that themselves look like remote repositories to Maven; I could even talk about the fact that you can literally unzip and start Nexus with no configuration, and start using it immediately…which makes it incredibly easy to try out. But for me, these are all window dressing. What I really love about Nexus is how it puts its money where its mouth is. This is an application that just works. Period. For anyone in the software industry, you’ll know how rare this is.

I work with the guys who wrote, tested, and released Nexus, and having a chance to witness firsthand the use cases and quality control that went into this application, I can honestly say I’m really excited about this project. Maybe it means something that I’ve been developing the core of Maven for four years, and thinking almost exclusively of how to improve the way we build software for over three of those years; maybe it doesn’t. The good news is, you don’t have to take my word for it. Try it yourself. It’s dead simple to get started.

To download Nexus, visit the Nexus website, and click on the Download link. To learn how to start using Nexus, try the Getting Started link. For now, the best way to get started is to read the chapter on Nexus in Maven: The Definitive Guide; but it’s a good idea to bookmark the website as well, so you can find out how to tell us what you like, what you want to see but don’t, and what you might find that seems broken in this first beta release.

Please be sure to take it for a spin; I bet you’ll be glad you did.

Technorati Tags: , , , ,

Categories: News, Nexus

The m2eclipse project proposal at Eclipse: Maven married with Eclipse!

April 3, 2008 By

For Maven users interested in Maven integration with Eclipse, you might want to take note of the m2eclipse proposal submitted to Eclipse a couple days ago. This work is being lead by Eugene Kuleshov (also a Subclipse and Mylyn committer). You can discuss the project with Eugene and the rest of the team, in the newly created m2e newsgroup at Eclipse:

http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.m2e

Categories: m2eclipse