> Keith and Roy's conversation about ksh...

Keep in mind the "traditional Sun/Solaris development model" that we are trying
to seed our community with:

        Germinate an idea into a plan,
        Commit to that plan from both resource and technical perspectives
                (do we _want_ to do it?  and
                 is this the _best_ way to architect it?)
        Develop/implement to that plan
        Integrate the result into the "FCS all the time" shared source base

How does this differ from "other" FOSS projects?  Primarily in the
proactive nature of the "commit to a plan" before starting, and
"requiring that a project be complete" before allowing integration.

The former is simply good software engineering - know what you want
before you start hacking; the latter helps us avoid the reactionary
integration fire drills that often accompany "not ready for prime time"
putbacks/commits.

I can imagine two different proposals coming out of this discussion:

        A) We should develop an extension to ksh93 that allows it to be used
           as a "Stable" replacement for ksh88 in places where backwards
           compatibility is required (i.e, such as when invoked as /bin/ksh)
           while exposing all the latest features when compatibility is not
           required (such as when it is involved as /bin/ksh93).  This new
           shell would expose the following interfaces:
                /bin/ksh        Stable
                /bin/ksh93      Stable

        or

        B) We should make an incompatible change to the existing Stable ksh
           interfaces provided by a binary-only closed source component.  This
           proposal would replace the existing ksh (ksh88) with an unmodified
           ksh93. This new shell would expose the following interfaces:
                /bin/ksh (ksh88) Obsolete/Removed (was Stable)
                /bin/ksh (ksh93) Stable

If this were an ARC review, one of the proposals would be formally
submitted for review and commitment.  As the discussion of the merits
and risks of the proposal progressed, I would hope that the core value
of "avoiding gratuitous incompatible changes to Stable interfaces"
would be in everyone's mind.  After the dust settled and a formal
opinion was rendered, I would expect the following results:

        Proposal A:  Approved for a minor release of OpenSolaris/ON
        -or-
        Proposal B:  There are three possible outcomes, of which B.3 is
                     the most likely:
                        B.1) Denied because of the incompatibilities, or
                        B.2) Approved for release in a Major incompatible 
release
                             of OpenSolaris/ON (at Sun, such a release could be
                             expected to happen soon after hell froze over :-)
                             It may be that the CAB/community might decide to
                             go down this route; I hope we don't.
                        B.3) Approved for a minor release of OpenSolaris/ON 
with a
                             "Technical Change Required" to the spec to provide 
a
                             compatibility mode, such as in Proposal A.

Continuing this "model the expected behavior" example, now that we have
a committed plan, what would we do next?  One possibility:

        Create a teamware child workspace (or CVS branch or ...)
        Gather a group of interested developers together to work
        on this project
        Seed this workspace with the ksh93 sources
        Get it to work
        Start building in the "dual mode" behavior
        Develop - Test - Iterate... until complete,
        Request permission to Integrate the changes back into OpenSolaris
        Integrate/Putback/Commit...

When looking at this discussion in this light, I don't think that Keith
and Ray are that far apart - both want the same results in the end:

        Reduce the quantity of closed-source that is required to make Open
        Solaris usable to zero,

        Improve the features in Open Solaris, and

        Don't screw it up in the process.


  -John
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to