jNetPcap Version 1.2 software has gone through a number of revisions that were labeled 1.2.rc1 through 1.2.rc5. These revisions added new features and fixed numerous bugs. The jNetPcap Version 1.2 so far has been a major success. jNetPcap is being utilized for many different purposes. This includes embedding into a commercial products and utilization in major corporate infrastructure projects. Number of interested companies and users has been phenomenal and explosive.
Unfortunately, the current software release model is insufficient to address stability requirements of a major software package. Especially when jNetPcap is being utilized in production environments and even in commercial products requiring the utmost care taken when making decisions to include such sub-components as jNetPcap. The current release model is insufficient to address these concerns and has to be changed.
To address the above mentioned issues, jNetPcap software will adhere strictly to release guidelines, previously determined goals, objectives and milestones. The new release model will provide stability and pre-determination of when a release will be considered stable and usable for production environments.
The new development and release process will follow the following general guidelines.
jNetPcap project will be made up of two modules:
This is not a split into 2 modules, but the "protocols" module is in addition to the current software base. The jnetpcap module contains the same exact code as has been released so far and distribution packages which were named "jnetpcap-1.1-fc8-i386.rpm" for example, will be continue to be named identically. The jnetpcap module currently contains a builtin set of core protocols and it will continue to have exact same set of protocols.
The protocols module, will be a separate module, with its own distinct build scripts and release cycles. The purpose of this module is to release new protocols, in addition to the core protocols already present in the main jnetpcap module. All new protocols will be released under the "protocols" module which will be provided as additional file package that will need to be downloaded and installed. The "protocols" module will provide 1 or more jar files containing additional protocols that can be included with jnetpcap module. The protocols will integrate seamlessly with jnetpcap.
The protocols module will be released more frequently then the main jnetpcap module. It will however, go through the same release procedures as the main jnetpcap module described in the section below. This will gurrantee quality and a path to becoming stable, production quality.
All major development of new features and protocols, will occur on the main development trunk of a module. The trunk will, as it does today, contain the latest and greatest features that are under development. Developers will deliver snapshots of the development trunk as daily, weekly, quarterly and milestone releases. These snapshots will be downloadable from SourceForge file release system.
At some point, a decision will be made to release the software to general public. At that point the following release model and procedures will be used:
To better incorporate new modules and development builds, the file release system (FRS) on SourceForget will incorporate new file release structure.
In order to conform to the above development and release guidelines, the existing release version 1.2 will have to be modified. The existing version 1.2 release naming nomenclature is very misleading. All of the 1.2 releases have been mislabeled as "release candidates". This stems from the fact that initial 1.2 release had very minor enhancements that were almost ready for final release. After initial rc1 release had been made, significant new features were added and continued to be added and released as addition release candidates.
Version 1.2.rc5 contains 2 major feature sets that have been incorporated. First is the "packet decoder" and the second is the "protocol analyzer". These are both very major enhancements to jNetPcap and each of them is very complex. Complexity usually means that there will be issues and defects. The current mix of these 2 major features guarantees that release version 1.2 will be unstable for a long time to come. Therefore I have decided to split release version 1.2 a long the lines of "packet decoder" and "protocol analyzer".
The "packet decoder" feature has been present in jNetPcap from version 1.2.rc1 through 1.2.rc4. The "protocol analyzer" feature had only been introduced with the latest release 1.2.rc5. In reality the rc1 through rc4 could be considered incremental alpha stages of release 1.2 and this is how I would like to split the existing releases.
We will start the release process for version 1.2 from the beginning, but this time properly. I will make a new release version 1.2.alpha1. This release will be based on current release 1.2.rc4. It will also incorporate all of the rc4 API and bug fixes that were fixed up in the development trunk. The new release will correctly reflect the state of the software which is "alpha" stage.
The "protocol analyzer" feature will remain strictly in the development trunk and will eventually be released in the next new feature release cycle which looks to be version 1.3. The "protocol analyzer" feature will however be released very shortly as a development trunk snapshot. It will be released as a milestone or major feature development build under "Dev Snapshots" FRS package. For those of you waiting for 1.2.rc6 which would have incorporated various "protocol analyzer" fixes, will be able to use this new milestone snapshot. For others who wish for more stability can stick with the release alphas, betas and eventually final stable packages.
This split will address 2 key issues. Stability of the releases and flexibility of continuing development of jNetPcap features without affecting incubating releases. Since the new release, version 1.2.alpha1, will contain only the single, already tested "protocol decoder" feature, we can concentrate exclusively on this feature to bring the 1.2 release to stable status much much quicker then with the current combined model.
I realize this is a bit drastic change to the development process and the release cycle, and it is not ideal, but if we continue on the current track, I can not honestly tell anyone when we could eventually get to a final release and call it "stable". Further more, with the current development model of all the changes and release updates occurring on the singe development trunk, I'm being forced to seize any further development in order to eventually achieve a stable release. Therefore it is now time to fix this once and for all.
All future releases will follow this development and release model from the beginning. Bringing to new releases and development stability, predictability and flexibility. jNetPcap is growing up.