CHDK Wiki
(Add more detailed outline of intended development lifecycle)
(Version numbering update)
Tag: sourceedit
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
=Introduction=
 
=Introduction=
This page describes the development and release strategy adopted as of December 2011. Original discussion in the forum http://chdk.setepontos.com/index.php?topic=2905.15
+
This page describes the current development and release strategy. See [[Releases]] for a roadmap of current and past releases.
   
 
==History / Motivation==
 
==History / Motivation==
  +
Original release strategy discussion in the forum http://chdk.setepontos.com/index.php?topic=2905.15
  +
 
Prior to the adoption of this strategy, there was a single "autobuild" which was both the development trunk and the only version readily available to end users. This made it extremely difficult to implement major changes without negatively impacting users.
 
Prior to the adoption of this strategy, there was a single "autobuild" which was both the development trunk and the only version readily available to end users. This made it extremely difficult to implement major changes without negatively impacting users.
   
Line 10: Line 12:
 
* At intervals, the development branch will enter a period of stabilization.
 
* At intervals, the development branch will enter a period of stabilization.
 
* When the result is judged sufficiently stable, a new stable branch is made, and development of the next version proceeds in the development branch.
 
* When the result is judged sufficiently stable, a new stable branch is made, and development of the next version proceeds in the development branch.
  +
 
==Version numbering==
  +
Starting with the 1.4 release, the 3rd digit of the version number is incremented on release, so builds from the 1.4 development branch are 1.4.0.x, while builds from the stable release branch are 1.4.1.x. See [http://chdk.setepontos.com/index.php?topic=12133.msg125459#msg125459] for discussion.
   
 
=Development branch=
 
=Development branch=
The development "branch" is always be the trunk, found at http://subversion.assembla.com/svn/chdk/trunk/
+
The development "branch" is always the trunk, found at http://subversion.assembla.com/svn/chdk/trunk/
   
All major new features or code re-writes will be done here.
+
All major new features or code re-writes will be done in the development branch.
   
 
Autobuilds of the development branch are available from http://mighty-hoernsche.de/trunk/
As of February 2012, the development version 1.1.0 is in the "active development phase" as described below.
 
 
Autobuilds of the development branch will be available at some point.
 
   
 
==Development branch lifecycle==
 
==Development branch lifecycle==
# Release branch N created, development for N+1 proceeds in trunk
+
# Release branch N created, released as 1.N.1, development for N+1 proceeds in trunk as 1.(N+1).0
 
# Active development phase
 
# Active development phase
 
#* Release branch recommended for users and new ports
 
#* Release branch recommended for users and new ports
Line 38: Line 41:
 
The stable branch represents a "release" where major functionality and features are frozen. New ports may be added to the stable branch.
 
The stable branch represents a "release" where major functionality and features are frozen. New ports may be added to the stable branch.
   
The stable branch will always be named release-''N''_''M'', where ''N'' and ''M'' are the major and minor version numbers.
+
The stable branch will always be named release-''N''_''M'', where ''N'' and ''M'' are the major and minor version numbers. See the [[Releases]] page for the current stable branch.
 
As of February 2012, the stable version is 1.0.0, found in the svn branch http://subversion.assembla.com/svn/chdk/branches/release-1_0/
 
   
 
Autobuilds from the stable version are available from http://mighty-hoernsche.de/
 
Autobuilds from the stable version are available from http://mighty-hoernsche.de/
Line 49: Line 50:
   
 
=Ports=
 
=Ports=
It is currently recommended that new ports may be developed for the stable branch, unless they require major changes in the core code.
+
It is currently recommended that new ports be developed for the release branch, and ported to the trunk when complete.
 
The development branch is probably not a good target for new ports, since the port developer may encounter problems not related to the port. However, the choice of which branch to target is up to the developer doing the port, and the correct choice will depend on the developer and the current state of the development branch.
 
 
=Roadmap=
 
==Version 1.1==
 
Version 1.1 is in the unstable development phase. The following features are currently targeted for 1.1. This list is subject to change.
 
* Loadable binary modules
 
* Script improvements (ubasic performance, non-ui scripts)
 
* Re-write of USB remote code
 
* "Live view" over PTP
 
* Support for Eye-Fi cards.
 
* Integration of chdkde features (details TBD)
 
 
==Version 1.0==
 
Current stable.
 
 
[[Category:Development]]
 
[[Category:Development]]

Latest revision as of 19:52, 29 November 2015

Introduction

This page describes the current development and release strategy. See Releases for a roadmap of current and past releases.

History / Motivation

Original release strategy discussion in the forum http://chdk.setepontos.com/index.php?topic=2905.15

Prior to the adoption of this strategy, there was a single "autobuild" which was both the development trunk and the only version readily available to end users. This made it extremely difficult to implement major changes without negatively impacting users.

Process overview

  • A stable release is maintained for bug fixes and ports.
  • New features and other major changes to the core code are implemented in an unstable development branch.
  • At intervals, the development branch will enter a period of stabilization.
  • When the result is judged sufficiently stable, a new stable branch is made, and development of the next version proceeds in the development branch.

Version numbering

Starting with the 1.4 release, the 3rd digit of the version number is incremented on release, so builds from the 1.4 development branch are 1.4.0.x, while builds from the stable release branch are 1.4.1.x. See [1] for discussion.

Development branch

The development "branch" is always the trunk, found at http://subversion.assembla.com/svn/chdk/trunk/

All major new features or code re-writes will be done in the development branch.

Autobuilds of the development branch are available from http://mighty-hoernsche.de/trunk/

Development branch lifecycle

  1. Release branch N created, released as 1.N.1, development for N+1 proceeds in trunk as 1.(N+1).0
  2. Active development phase
    • Release branch recommended for users and new ports
    • Development of major / disruptive features
  3. Stabilization phase
    • Major features complete
    • Development builds suggested for users who want new features
    • Low risk features may be added
  4. Release candidate phase
    • Development branch recommended for users
    • New ports go in development branch, not back ported by default
    • Focus on bug fixes
  5. Release - GOTO 1

Stable branch

The stable branch represents a "release" where major functionality and features are frozen. New ports may be added to the stable branch.

The stable branch will always be named release-N_M, where N and M are the major and minor version numbers. See the Releases page for the current stable branch.

Autobuilds from the stable version are available from http://mighty-hoernsche.de/

Important: stable refers to the feature set, not necessarily the maturity of the software. Stable does not mean that all features are fully functional on all cameras, or that the software won't crash.

Individual ports within the stable branch may vary widely in completeness and functionality. Individual ports will be labeled Alpha or Beta as appropriate.

Ports

It is currently recommended that new ports be developed for the release branch, and ported to the trunk when complete.