Comment 0 for bug 723846

Revision history for this message
James Hunt (jamesodhunt) wrote :

Binary package hint: upstart

= Overview =

The Upstart work for Natty comprises 4 branches to be merged first into
an Upstream version of Upstart, and then merged down into an
Ubuntu-specific branch for Natty. The branches are:

1) lp:~canonical-scott/upstart/bridges
2) lp:~canonical-scott/upstart/session-support

3) lp:~jamesodhunt/upstart/override-support
4) lp:~jamesodhunt/upstart/upstart-job-visualisation

As the names suggest, Scott worked on (1) and (2), whilst I worked on
(3) and (4). However, the timing of when Scott left meant that (1) and
(2) were in an incomplete state (although the basic coding was
complete). Branches (1) and (2)...

  a) Were not documented
  b) Were not fully tested
  c) Did not have their own set of Upstart unit/functional tests.

I have worked with cjwatson to merge branches (1)-(4) into an upstream
version of Upstart. Due to the issues outlined above, this has taken a
lot longer than anticipated, so at this point, we have only merged
branches (1)-(3) inclusive into:

  lp:~upstart-devel/upstart/0.9

= Feature Freeze Exception Request =

I would like to apply for a Feature Freeze Exception for the inclusion
of all *four* branches into Natty in 2 staged releases:

- Stage 1 comprising branches : (1)-(3)

- Stage 2 comprising branch : (1)-(4)
  This encompasses:

  - the addition of Branch (4).
  - the addition of test code and documentation for branches (1) and
    (2).

== Rationale ==

All 4 branches are deemed to have highly desirable features for users.

=== Branch 1 ===

Branch (1) provides a "socket activation" feature. It has minimal impact
on users in case of problems in that users would have to migrate their
jobs (.conf files) to use the new features.

JUSTIFICATION:

- By default, this migration will not happen for Natty, thus the risk
  associated with the branch is deemed to be low.

=== Branch 2 ===

Branch (2) provides:

  - chroot support
  - session support
  - user-session support

These features are highly desirable, particularly the chroot support at
this point. However, unlike Branch (1), due to the nature of the session
support, there are *potential* security considerations (for example a
non-privileged user potentially being able to star/stop a system
service.

JUSTIFICATION

This branch contains very useful features for users. However, the view
is that in light of the amount of testing that has been performed on
this code, Branch (2) should be added to Natty ** with session and
user-session support disabled by default **. This support could be
re-enabled by users if they so wished, or by Ubuntu developers (via
apt/dpkg) at a later date.

=== Branch 3 ===

Branch (3) provides override file support which is a feature which users
have been requesting for some time.

JUSTIFICATION

- Branch (3) does modify the Upstart init daemon itself and has
  appropriate documentation and test cases. Thus, the perceived risk of
  adding this is deemed to be low.

- Users can choose not to use the override facility if problems are
  experienced in its operation.

=== Branch 4 ===

Branch (4) provides job and to some degree event visualisation, again a
feature users have been after for a long time (particularly on Ubuntu
Server).

The core functionality for Branch (4) is fully complete, but it was determined
that with some extra effort a very useful "configuration check" option
could be added which adds to the existing job visualisation work. This
"check-config" option is 90-95% complete (and would have been completed
had we not experienced such issues merging branches (1) and (2)).

Branch (4) should be completable within one week, hence the request to
delay the inclusion of this code.

JUSTIFICATION:

- Branch (4) does not impact the init daemon itself - the
  code changes are entirely to the utility program "initctl" so the impact
  of a late(r) delivery of this feature is low.

- Branch (4) contains very useful functionality for users (particularly
  sysadmins) so we really do want this in Natty.

= Timing =

== Stage 1 ==

At this stage, the view is that we should be able to land Branches
(1)-(3) by Monday 28 February / Tue 1st March.

== Stage 2 ==

This should be possible by 7 March, being the first Monday after Alpha 3
(March 3).

= Testing =

We will get various teams to help out with additional test resources and
the plan is to create a PPA for the new code as soon as possible to
allow users access to the new functionality.

= REFERENCES =

https://wiki.ubuntu.com/FoundationsTeam/Specs/MaverickFinishUpstart
https://blueprints.launchpad.net/ubuntu/+spec/packageselection-foundations-n-finish-upstart