Wireshark-dev: [Wireshark-dev] Subversion Repository Layout, or, How to Confuse People
From: "Bryant Eastham" <beastham@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 19 Jun 2009 08:54:30 -0600

All-

 

This is going to sound more harsh than I mean it to. I appreciate that people have differing opinions on this subject.

 

To the core developers: please use Subversion in a more standard way.

 

Yes, Subversion can be used in many different ways. However, just because it can doesn’t mean that it should, and to those of us who try to use your repository (at least from my point of view) what you have done is extremely confusing.

 

Let me just walk you through my experience today. Wireshark 1.2.0 is now released, and I must build my plugins based on it for internal distribution. To do this I need to download the source code corresponding to the build, both Windows and Linux. I need to determine what to check out.

 

1.       I first consult the official release announcement. There is no mention of what source produced the release. Lots of hashes and signatures, but nothing related to source code.

2.       Next, I go to the “Downloads” area and I notice that the stable release is 1.2.0 (of course), the development release is 1.1.3. Seems strange, but OK.

3.       I check the Wireshark 1.2.0 Release Notes. Nothing useful for understanding the sources.

4.       I figure I must “Browse the source code”. I see some hopeful directories “releases” seems promising, although I see three “trunk”-related directories, and no “branches” or “tags”. All red flags.

5.       Since it was a “release” that was announced, I check “releases”. Although there is recent activity, there is nothing related to 1.2.0.

6.       Maybe it is “trunk-1.2”? I see that the version.conf file was modified on the 15th, close to the release. So do I build against the LATEST on trunk-1.2? That seems too bizarre to be right – a release should be locked down in some way… (yes, I know that the revision locks it down, but I haven’t seen the revision yet…)

7.       I download and install the release to see if there is more information there. Finally! On the “About Wireshark” page! SVN Rev 28753! But using what path? And what about the Linux code that I need?

 

So, some time later I am only slightly better off than when I started. I can guess that I should build against trunk-1.2, r28753. Not very comforting.

 

How about the following as some suggestions:

 

1.       If you are not going to use the “releases” directory, please remove it. If you leave it there, please use it! It is not standard, but it is fairly intuitive. It is complete *unintuitive* to see it there and not up-to-date.

2.       Subversion users are familiar with branches, tags and trunk. To quote the Subversion book: “There are some STANDARD, RECOMMENDED ways to organize a repository” (emphasis mine). Seriously consider following the standard, recommended layout.

3.       If all this is ignored, then *at least* list the full path that was used (something like /trunk-1.2, r28753) in the About screen, and consider putting that information in the official announcement emails.

 

I appreciate the time and effort required to manage a project as large as Wireshark. There will always be ways to improve things.

 

Thanks for listening.

-Bryant

 

Panasonic

http://eww.panasonic.com/meca/91320I18/brand_image/guidelines/spacer.gif

Panasonic Electric Works Laboratory of America - SLC Lab
4525 So. Wasatch Blvd., Suite 100, 84124
Salt Lake City, UT 84124

T 801.993.7124
F 801.993.7269
beastham@xxxxxxxxxxxxxxxxxxxxxxxxxx

Bryant Eastham
Chief Architect

Panasonic

 

***CONFIDENTIALITY NOTICE***: This e-mail and any attachments may contain information which is confidential, proprietary, trade secret, privileged or otherwise protected by law. The information is the property of Panasonic Electric Works Laboratory of America, Inc., and is solely intended for the named addressee (or a person responsible or delivering it to the addressee). If you are not the intended recipient of this message, you are not authorized to read, print, retain copy or disseminate this message or any part of it. If you have received this e-mail in error, please notify the sender and the Office of General Counsel at generalcounsel@xxxxxxxxxxxxxxxxxxxxx immediately by return e-mail and delete it from your computer.