Re: [Flightgear-devel] RFC : FlightGear Roadmap for 2.0 and further

2008-12-26 Thread Tim Moore
Tatsuhiro Nishioka wrote:
 Hi there,
 
 I'm very happy that we finally released 1.9.0.
 According to the discussions before the release, I believe that many of us 
 are willing to release FlightGear more often, like semiannually or quarterly 
 (or even more often). To release more than once a year, I believe that we 
 need to have clearer roadmap, versioning policy, and the release process.
 Here are my opinions so please give me comments and feedback please.
 
 
 1) The version numbers and release dates
 Here's an example list of version numbers and release dates when FlightGear 
 will be released quarterly.
 
 2.0 - at the end of March, 2009
 2.1 - at the end of June, 2009
 2.2 - at the end of September, 2009
 2.3 - at the end of December, 2009
 
This is a good idea, regardless of the specific milestones that make it into a 
release. It seems to me that just the data tree sees enough new development 
that 
quarterly releases would have interesting new content.
 
 2) Milestones (Goal for each release)
 Here's an example list of must-achieve things for 2.0.0 (based on 
 discussion on the list, I believe).
 
 [2.0.0 - at the end of March, 2009]
 Functionality:
   - Landing Lights
   - Shadows
   - More improvements in 3D clouds (I don't know the exact goal on this 
 though...)
This sounds nice, but we, or at least I, can't commit to specific features or 
development on a fixed timescale.

 
 
 3) Release branch
 I believe that we need to have a release branch for both developers and 
 release organizers.
 The main reason is to separate bug fixes from implementing a new features. 
 This way, developers don't have to wait for the release
 to check in attractive but likely buggy code to cvs. Usually you must not 
 include a new feature to the release branch once it is created.
 However, if many developers want to include one to the release branch, then 
 we can discuss it in the list.
 After each release, we'll merge the bug fixes to trunk. If we get used to 
 this release process, maybe a branch exists only for a few weeks,
 and thus merging changes to trunk is not gonna be that hard.
 
I think this is a very good idea, and the work like shadows could start going 
into a bleeding edge branch soon. I think we need a stable branch, even 
with 
quarterly releases; new code and fixes are checked in all the time that our 
power users want, even if they aren't willing to break their world with 
experimental stuff.

That said, I cannot bear the thought of setting up this parallel branch 
structure (to say nothing of the plib branch, that sees some fixes from time to 
time) in CVS. I know it's possible in CVS, I've worked on many hobby and 
professional projects that use CVS branching, and there is always some fiasco 
that happens in the course of making or merging branches. I don't have the 
bandwidth to deal with those headaches on a hobby project. Thus, I won't 
support 
a bleeding-edge branch until we move to a revision control system that properly 
supports branching.

We can debate this 'til the cows come home, but Git is the only rational choice 
for a replacement VCS. It has the features, the community, and today has the 
user friendliness and Windows support to be used by everyone who wants to 
compile current FG development sources. It is already being used by a critical 
mass of FG developers.

Tim

--
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] RFC : FlightGear Roadmap for 2.0 and further

2008-12-26 Thread Tatsuhiro Nishioka
Hi, 

Thanks for the comments,
It's kinda hard to reply individually, so here I wrap up the comments given so 
far:


1) The version numbers and release dates
 Here's an example list of version numbers and release dates when FlightGear 
 will 
 be released quarterly.

 2.0 - at the end of March, 2009
 2.1 - at the end of June, 2009
 2.2 - at the end of September, 2009
 2.3 - at the end of December, 2009

James:
 It's not quite the number system I first guessed at, and I think the  
 odds of ever *doing* a bug-fix release are quite low, but it sounds  
 reasonable.

Stuart:
 A roadmap would be a great idea. However, I'm not sure a quarterly release 
 cycle
 is realistic. Allowing for a 2 week RC test, you're talking about less than 3 
 months
 of actual development between releases. That's not much time.

Tim:
 This is a good idea, regardless of the specific milestones that make it into 
 a 
 release. It seems to me that just the data tree sees enough new development 
 that 
 quarterly releases would have interesting new content.


So having such version numbers are acceptable but we have more room on 
determining the release cycle.
To me quarterly release cycle is reasonable, plus you don't have to promise 
100% completeness on a certain feature for each release.
Almost all open source software have some bugs in each release, so we don't 
have to seek for such perfect project that none can reach.


There're some preferences for version numbers, but all the comments are not 
against the version numbers I listed as examples.
So my idea may be acceptable, I think.

I want to collect more opinions on the release cycle. Which do you prefer, 
semiannual or quarterly? and why?



 2) Milestones (Goal for each release)
 Here's an example list of must-achieve things for 2.0.0 (based on 
 discussion 
 on the list, I believe).

 [2.0.0 - at the end of March, 2009]
 Functionality:
  - Landing Lights
  - Shadows
  - More improvements in 3D clouds (I don't know the exact goal on this 
 though...)


Stuart:
 These seem like sensible goals for a 2.0 release. However, they appear to be
 very dependant on Tim and myself.
 (snip)
 Pushing for a release in 3 months without any commitment from the
 developers involved in the main feature improvements is pretty high risk.

Tim:
 This sounds nice, but we, or at least I, can't commit to specific features or 
 development on a fixed timescale.

James:
 Overall I agree, coming from a commercial software development side,  
 I'd prefer people to think in terms of features, and committing to  
 delivering them for a certain release. Where a feature means the kind  
 of thing we'd put in a 'new for this release' bullet point list. Then  
 we can decide whether to delay a release because feature X will take  
 an extra two weeks, or postpone feature Y from release 2.n to 2.n+1  
 because it would delay it too much.


So maybe Must-achieve is a bit too tight. What about listing features that 
you (will) start working 
instead of must achieve. That also work. This way there's no commitment of 
achievement on each release,
but it rather says you are or will be start working on a listed feature on a 
certain release.
We cannot seek for the 100% completeness at the end of each release, but it is 
a good idea to show that we have a certain set of features
regardless of completeness. we can keep improving such features in the versions 
follow.

How's this?

About the milestone document, we can put these in either wiki or cvs.
Maybe there's no perfect place so we can start writing such things to wiki with 
a clear note like developers only.

By the way, are there any features that can be implemented on 2.0.0?


 3) Release branch
 I believe that we need to have a release branch for both developers and 
 release 
 organizers.
 The main reason is to separate bug fixes from implementing a new features. 
 This 
 way, developers don't have to wait for the release
 to check in attractive but likely buggy code to cvs. Usually you must not 
 include a new feature to the release branch once it is created.
 However, if many developers want to include one to the release branch, then 
 we 
 can discuss it in the list.
 After each release, we'll merge the bug fixes to trunk. If we get used to 
 this 
 release process, maybe a branch exists only for a few weeks,
 and thus merging changes to trunk is not gonna be that hard.


James:
 I think in practice, the odds of ever doing a release *branch* for a  
 project like FG is very low. I'd rather just stabilise trunk and tag.  
 If we ever needed to do a x.y.1 release, it's trivial to branch from  
 the tag and fix the bug. In general, back-merging from a release  
 branch to a trunk is a horrible, thankless task, so avoiding it seems  
 like a win to me.


Stuart:
 I think cutting a release branch just prior to the release makes sense, but 
 having long-term
 release branches and only merging from trunk when you're confident a feature 
 is finished
 and 

[Flightgear-devel] RFC : FlightGear Roadmap for 2.0 and further

2008-12-25 Thread Tatsuhiro Nishioka
Hi there,

I'm very happy that we finally released 1.9.0.
According to the discussions before the release, I believe that many of us are 
willing to release FlightGear more often, like semiannually or quarterly (or 
even more often). To release more than once a year, I believe that we need to 
have clearer roadmap, versioning policy, and the release process.
Here are my opinions so please give me comments and feedback please.


1) The version numbers and release dates
Here's an example list of version numbers and release dates when FlightGear 
will be released quarterly.

2.0 - at the end of March, 2009
2.1 - at the end of June, 2009
2.2 - at the end of September, 2009
2.3 - at the end of December, 2009

0.1 is increased on every release until it reaches the goal of 3.0.0 (it can be 
2.10.0 or 2.150.0 :-p)

I think incrementing minor version number on each release is enough for our 
project, and micro version number can be reserved for bug-fix releases between 
two releases. 



2) Milestones (Goal for each release)
Here's an example list of must-achieve things for 2.0.0 (based on discussion 
on the list, I believe).

[2.0.0 - at the end of March, 2009]
Functionality:
  - Landing Lights
  - Shadows
  - More improvements in 3D clouds (I don't know the exact goal on this 
though...)
Reliability:
  - NaN things must be eliminated
  - SIGSEGV must be avoided when:
+ no osg plugins are found
+ a sound file is missing
+ there are some other missing xml / ac files
Usability:
  - to be determined (T.B.D.)
Effifiency: 
  - T.B.D.
Maintainability:
  - T.B.D.
Portability:
  - T.B.D.

[2.1.0 and further versions ]
- T.B.D. :-p

We can add more items on each category (I took these categories from ISO-9126, 
but we can express the must-achieve things in a different categorization) Maybe 
we need to separate general FG things from per aircraft things.

It is also very good to organize the must-achieve items for each release based 
on the following documents:
- http://wiki.flightgear.org/index.php/Long_Term_Goals
- http://wiki.flightgear.org/index.php/FGFS_Todo
- http://wiki.flightgear.org/index.php/Feature_Requests_/_Proposals_/_Ideas

I believe that these milestones don't prevent the developers from implementing 
their new ideas at all.
we can freely add new features even these are not listed in the milestones. 
Moreover, if we cannot implement some of the must-achieve items due to lack of 
time, then we will carry these over the next release, and make the current 
release published.



3) Release branch
I believe that we need to have a release branch for both developers and release 
organizers.
The main reason is to separate bug fixes from implementing a new features. This 
way, developers don't have to wait for the release
to check in attractive but likely buggy code to cvs. Usually you must not 
include a new feature to the release branch once it is created.
However, if many developers want to include one to the release branch, then we 
can discuss it in the list.
After each release, we'll merge the bug fixes to trunk. If we get used to this 
release process, maybe a branch exists only for a few weeks,
and thus merging changes to trunk is not gonna be that hard.


Any comments, better idea?

Tat


--
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] RFC : FlightGear Roadmap for 2.0 and further

2008-12-25 Thread James Turner

On 25 Dec 2008, at 18:38, Tatsuhiro Nishioka wrote:

 1) The version numbers and release dates
 Here's an example list of version numbers and release dates when  
 FlightGear will be released quarterly.

 2.0 - at the end of March, 2009
 2.1 - at the end of June, 2009
 2.2 - at the end of September, 2009
 2.3 - at the end of December, 2009

 0.1 is increased on every release until it reaches the goal of 3.0.0  
 (it can be 2.10.0 or 2.150.0 :-p)

 I think incrementing minor version number on each release is enough  
 for our project, and micro version number can be reserved for bug- 
 fix releases between two releases.

It's not quite the number system I first guessed at, and I think the  
odds of ever *doing* a bug-fix release are quite low, but it sounds  
reasonable.

 2) Milestones (Goal for each release)
 Here's an example list of must-achieve things for 2.0.0 (based on  
 discussion on the list, I believe).

snip

Overall I agree, coming from a commercial software development side,  
I'd prefer people to think in terms of features, and committing to  
delivering them for a certain release. Where a feature means the kind  
of thing we'd put in a 'new for this release' bullet point list. Then  
we can decide whether to delay a release because feature X will take  
an extra two weeks, or postpone feature Y from release 2.n to 2.n+1  
because it would delay it too much.

OGRE create a wiki page for each release - initially it's a blue-sky  
page, then it becomes 'live' when the release is being worked on, and  
finally it becomes the release notes for that release, with a list of  
completed features. That seems pretty logical to me.

 3) Release branch
 I believe that we need to have a release branch for both developers  
 and release organizers.
 The main reason is to separate bug fixes from implementing a new  
 features. This way, developers don't have to wait for the release
 to check in attractive but likely buggy code to cvs. Usually you  
 must not include a new feature to the release branch once it is  
 created.
 However, if many developers want to include one to the release  
 branch, then we can discuss it in the list.
 After each release, we'll merge the bug fixes to trunk. If we get  
 used to this release process, maybe a branch exists only for a few  
 weeks,
 and thus merging changes to trunk is not gonna be that hard.

I think in practice, the odds of ever doing a release *branch* for a  
project like FG is very low. I'd rather just stabilise trunk and tag.  
If we ever needed to do a x.y.1 release, it's trivial to branch from  
the tag and fix the bug. In general, back-merging from a release  
branch to a trunk is a horrible, thankless task, so avoiding it seems  
like a win to me.

James

--
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] RFC : FlightGear Roadmap for 2.0 and further

2008-12-25 Thread Stuart Buchanan
Tat wrote:

 I'm very happy that we finally released 1.9.0.

Thanks for your hard work in making it happen!

 According to the discussions before the release, I believe that many of us 
 are 
 willing to release FlightGear more often, like semiannually or quarterly (or 
 even more often). To release more than once a year, I believe that we need to 
 have clearer roadmap, versioning policy, and the release process.
 Here are my opinions so please give me comments and feedback please.

A roadmap would be a great idea. However, I'm not sure a quarterly release cycle
is realistic. Allowing for a 2 week RC test, you're talking about less than 3 
months
of actual development between releases. That's not much time. 

For example, I think we've had 3D clouds in CVS for 3 months at least, and 
we certainly haven't ironed out all the bugs yet.

 1) The version numbers and release dates
 Here's an example list of version numbers and release dates when FlightGear 
 will 
 be released quarterly.
 
 2.0 - at the end of March, 2009
 2.1 - at the end of June, 2009
 2.2 - at the end of September, 2009
 2.3 - at the end of December, 2009
 
 0.1 is increased on every release until it reaches the goal of 3.0.0 (it can 
 be 
 2.10.0 or 2.150.0 :-p)

I'd prefer to name something 2.0 or 3.0 when we think we are producing a major
release, with significant new features. Producing 3.0 simply because the last
release was 2.9 will set false expectations for users - they will be expecting
significant feature improvements.

Much better would be 2.01, 2.02 ... that gives us much more leeway before the
next major release.

 I think incrementing minor version number on each release is enough for our 
 project, and micro version number can be reserved for bug-fix releases 
 between 
 two releases. 

That's certainly sensible.

 2) Milestones (Goal for each release)
 Here's an example list of must-achieve things for 2.0.0 (based on 
 discussion 
 on the list, I believe).
 
 [2.0.0 - at the end of March, 2009]
 Functionality:
   - Landing Lights
   - Shadows
   - More improvements in 3D clouds (I don't know the exact goal on this 
 though...)

These seem like sensible goals for a 2.0 release. However, they appear to be
very dependant on Tim and myself.

Regarding 3D clouds: - There are significant ordering issues, quite apart
from the challenge posed by creating stratus layers. Frankly, unless someone 
else is intending to spend significant time writing 3D clouds _code_, I don't 
think 3 months is going to be enough time for me to fix all the issues.

I made myself enough of a hostage to fortune last time by saying I'd
have them ready by Christmas - I'm not making that mistake again ;)

I believe Tim has spent some time working on Shadows (don't know about
landing lights). He's much more sensible than me and hasn't said when
he'll have any code ready ;)

Pushing for a release in 3 months without any commitment from the
developers involved in the main feature improvements is pretty high risk.

[We'll gloss over the fact I'd be a bit disgruntled being told when to have 
something
ready. That's far to close to work, and FG dev is pretty close already ;) ]

 Reliability:
   - NaN things must be eliminated

I completely agree on this one. 

 We can add more items on each category (I took these categories from 
 ISO-9126, 
 but we can express the must-achieve things in a different categorization) 
 Maybe 
 we need to separate general FG things from per aircraft things.
 
 It is also very good to organize the must-achieve items for each release 
 based 
 on the following documents:
 - http://wiki.flightgear.org/index.php/Long_Term_Goals
 - http://wiki.flightgear.org/index.php/FGFS_Todo
 - http://wiki.flightgear.org/index.php/Feature_Requests_/_Proposals_/_Ideas

As far as I am aware, none of those documents is up to date, or reflects current
development.

I think a roadmap checked into CVS would be more sensible. We have a docs
repository for exactly this sort of thing. At the very least it would mean that 
some random user can't just add features to the roadmap.

snip

 3) Release branch
 I believe that we need to have a release branch for both developers and 
 release 
 organizers.
 The main reason is to separate bug fixes from implementing a new features. 
 This 
 way, developers don't have to wait for the release
 to check in attractive but likely buggy code to cvs. Usually you must not 
 include a new feature to the release branch once it is created.
 However, if many developers want to include one to the release branch, then 
 we 
 can discuss it in the list.
 After each release, we'll merge the bug fixes to trunk. If we get used to 
 this 
 release process, maybe a branch exists only for a few weeks,
 and thus merging changes to trunk is not gonna be that hard.

I think cutting a release branch just prior to the release makes sense, but 
having long-term
release branches and only merging from trunk when you're confident a feature is 

Re: [Flightgear-devel] RFC : FlightGear Roadmap for 2.0 and further

2008-12-25 Thread James Turner

On 25 Dec 2008, at 22:46, Stuart Buchanan wrote:

 As far as I am aware, none of those documents is up to date, or  
 reflects current
 development.

Yep - that's partly why I created a personal 'plan' page - so I can  
say what I *am* working on, and what I intend to work on, and hence  
hopefully avoid people getting upset when work is duplicated.

 I think a roadmap checked into CVS would be more sensible. We have a  
 docs
 repository for exactly this sort of thing. At the very least it  
 would mean that
 some random user can't just add features to the roadmap.

Could work, though CVS isn't terribly visible, so this is a two-edged  
sword.

James

--
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel