Henooh Version Control Guidelines

Version Control Guidelines

Version Control is an important aspect of software configuration management, and Henooh Framework is no exception. Henooh Framework uses its own Version Control System, called Henooh Archive Solution (HAS).

Henooh Archive Solution Process

Henooh Framework is more focused on how version control system should be used, as oppose to certain features and functionalities of Version Control. Any version control system can be used to manage Henooh Framework projects, but Henooh Framework dictates Henooh Archive Solution to be used for Software Configuration Management. Henooh Framework Version Control is combinations of hundreds of very small, minor improvements.

Version Increments

Each project maintains it's own Version. Version is composed of the following. vA.BB.CC.DDD A: Release Version. 1 is First iteration of development version. Henooh Framework believes that once a software is released, it should be actively developed and supported, and prevent a whole new release of same product under different version. At this time, no products from Henooh Framework has v2.XX.XX.XXX B: Major Update Version. 0 is Pre-development version, and staring from 1, it becomes a release. Major patch work to production code, with revamped features and functionality that make previous iterations obsolete. Increments to this version is usally a big change, suppose to replace the entire baseline. Removal of obsolete features from previously identified version. C. Minor Update Version. Minor work to production code, with additional features or fixing bugs, making certain features released in major version obsolete. D. Development Version.

When to Version Control

Henooh Framework is passionate about having compiling code - on a daily/weekly basis. Even when adding new features to an interface, go ahead and implement all interfaces and have them throw NotImplemented exception, in the end, the code must compile. Having CR system allows you to go back in any 'closeout' time period, and restore exactly what was available in that certain time period, including resources. Don't worry too much about amount of disk storage taken up by CR, as it uses symbolic links from previous iterations, so this should not be a concern. While the projects increments in version numbers, the solution itself is just a counter of iterative changes. Solution Archive - just increments by 1 everytime an archive has been done.

Henooh Framework Workflow

Developer makes changes to his code, merges on a daily basis.

Show Diffs from One AS to another AS.

Show Diffs from One Project to another Project.

How to Remove or Rewrite Existing Code from Baseline

Henooh Framework enforces Version Control Guidelines on How and when to remove existing methods or properties. When changes are made to the released software, and there is a need to rewrite some existing features, we do not want to break existing code that relies on the current version. Follow these steps as proper guideline to remove or rewrite existing code from Baseline.

  1. Write an alternate solution to existing baseline.
  2. Mark the existing method you want to remove or rewrite obsolete.
  3. Ensure the obsolete method has SA number, and how to use an alternate solution.
  4. During the next release build increment, offer both solutions - Obsolete method and Alternate solution method.
  5. When next release build, modify the Obsolete method tags, warning users that the method is marked for removal.
  6. Immediately remove obsolete methods on next development build.