Re: [Bf-committers] Blender Release Cycle

2011-08-16 Thread Thomas Dinges
Hey Michael,
This is everything else than foolish.
It would be if we would continue like before, but we intend to only 
merge features into trunk which are really finished already!
In trunk then the projects still have a few weeks to fix bugs and 
improve it if necessary. If the feature is not ready or still unstable 
at the end of week 6, project admins will decide if it will be removed 
again, it's that simple.

We won't have any problems if we stick to that:
1) Only features which are finished and code is reviewed well can be merged.
2) If at the end of a cycle the feature is not ready to be released, 
remove again until next cycle.

Thomas

Am 16.08.2011 09:35, schrieb Michael Fox:
 I never agreed with the 8 week release cycle anyway, as it causes you to
 rush your work resulting in ugly hacked together code and features and
 results also in releases with little substance. Such a cycle works for
 Chrome and FF because they are at each other throats trying to out do
 each other and fix 100s of bugs a day.

 This proposal for 8 weeks is foolish, we have always prided ourselves on
 clean(ish) code and well thought out mature features and releases filled
 to the brim with stuff and never put 1 bug above another all bugs are
 the same and the community loves us and loves blender for that as we
 don't belittle their problems.

 i know i should have said this earlier but what i say has very little
 meaning anymore like what i said here will be ignored as always
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers


-- 
Thomas Dinges
Blender Developer, Artist and Musician

www.dingto.org

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] Blender Release Cycle

2011-08-16 Thread Campbell Barton
On Tue, Aug 16, 2011 at 5:35 PM, Michael Fox mfoxd...@gmail.com wrote:
 On 16/08/11 14:55, Campbell Barton wrote:
 On Tue, Aug 16, 2011 at 7:52 AM, Michael Foxmfoxd...@gmail.com  wrote:
 On 15/08/11 22:40, Sergey I. Sharybin wrote:
 Hi, devs!

 We've already got thread about release cycles, but it was a bit long and
 seems like there's no final decision made. We've discussed that proposal
 with Campbell and also investigated why we've run into some problems
 with current release. There are some comments which i'd prefer be final
 decision about our release cycle (most people are already ok with it,
 just to make things 100% clear).

 Few first weeks of cycle (B-Con 1 and B-Con 2) aren't so critical for
 this discussion and we've already agreed with this levels.

 More critical to make work clear in few weeks (1-2) before release (i
 mean before starting commiting new splash/changelogs and so). What is
 needed there:

 - Only _critical_ bugs should be fixed. Critical doesn't mean i can
 make blender crash in few clicks but it mostly means this bug was
 introduced in current cycle and it stops normal workflow. If this bug
 was present in previous release or if it's not making general usage
 unusable we'd prefer to keep this bug untouched. Fixing such bugs
 wouldn't make real sense on general workflow and if it wasn't noticed in
 previous release then it doesn't annoy artists. But fixing such bugs
 easily produces new bugs which difficult to predict and we wouldn't have
 enough time to test everything.

 - We need clear FREEZE and UNFREEZE AHOYs. If freezing will happen a
 bit earlier -- it's not so critical. But unfreezing should be done quite
 accurate -- when everybody who is familiar with making release would say
 it's ok to unfreeze.

 - We'll need tag for every release. It should be created even for
 initial release (not corrective release like 'a' or 'b' releases).
 this is needed to make platform maintainers' life more clear. If stopper
 is discovered during archive preparation, fix for this stopper can be
 easily commited to trunk and merged to tag. It'll help a lot for release
 process when most of core/BF developers are offline -- no need to wait
 someone to prepare archive.

 - Most probably we'll need guy who is familiar with svn who will make
 tag and solve possible issues of platform maintainers. It shouldn't be
 constantly defined developer, prefer to choose one for each release --
 it's needed to be sure he can be available during release.

 - So, FREEZE happens, new tag is creating and AHOY could happen. Day or
 two after this normal life of trunk could be restored. But _nobody_
 should commit anything than fixes for stopper/fixes for build
 environment until _official_ unfreeze. Even commit of stylefix could be
 confusing in the future (if more serious problem was discovered, i.e.).

 - If 'a' release is needed, we shouldn't re-tag. We should merge fixes
 for _stoppers only_ into tag and do not include fixes for all bugs which
 were made since release. This is a way to avoid 'b' releases.

 So, short summary: fix only _really_ critical bugs last week before
 release-related commits; make clear FREEZE/UNFREEZE messages in ML.
 create tag for release just before AHOY, if 'a' release is needed only
 stoppers for previous release (for which 'a' is creating) should be
 ported into tag.

 I hope only Campbell/Ton/Brecht make minor changes to this message or
 write things i've forgot to tell about. But again. i don't want this
 message start new discussion thread and i hope it'll be final decision now.

 I thought this is what we already do, its just in the 2.5 series we have
 become very lazy in these regards, now that 2.5 is final and stable, we
 should really adopt our old methodology again with no set freeze period,
 we aim for a date and set freeze a few days before it, and only release
 if the code is deemed releasable
 This goes against the fixed 8 week release cycle, release when its
 ready might sound good but blender is getting so big that we can
 always point at some part
 (py-api/input-support/bug-on-some-OS/some-new-library/ffmpeg/sequencer)
 and say its not ready *and be right*, but then end up not releasing
 even though many bugs _are_ being fixed between releases and useful
 improvements made.

 With time based releases only consider show-stoppers as new bugs which
 were introduced since the last release or anything that makes blender
 unstable for common use.

 I never agreed with the 8 week release cycle anyway, as it causes you to
 rush your work resulting in ugly hacked together code and features and
 results also in releases with little substance. Such a cycle works for
 Chrome and FF because they are at each other throats trying to out do
 each other and fix 100s of bugs a day.

 This proposal for 8 weeks is foolish, we have always prided ourselves on
 clean(ish) code and well thought out mature features and releases filled
 to the brim with stuff and never put 1 bug above 

Re: [Bf-committers] new dependencies for (spacenav / ndof / 3D mouse) support

2011-08-16 Thread Daniel Salazar - 3Developer.com
Mike! I have definitive proof that what I expect makes sense, even
BigBuckBunny likes it that way! you can't argue with the big passive
aggressive bunny!

http://youtu.be/lI2KIjSkbzQ?t=1m30s

Daniel Salazar
3Developer.com



On Mon, Aug 1, 2011 at 10:09 AM, Stephen M. McQuay step...@mcquay.me wrote:
 I installed from source and everything worked ... except I agree with
 Daniel: everything seems backwards. I'm sure it could be chalked up to a
 preferences thing, but when I used my first spacenav device 5 years ago
 (3D parametric CAD stuff using Unigraphics) it was definitely in a move
 device as you'd expect to move the part in 3-space kinda way.

 I also build the little config gui thing and saw that one could invert
 axis, but I haven't tried that out.

 Anyhow, there are my two cents.

 --
 Stephen M. McQuay
 http://mcquay.me/vcf
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] OpenMP on osx

2011-08-16 Thread Campbell Barton
On Tue, Aug 16, 2011 at 8:54 PM, Tobias Kummer supertoi...@gmx.net wrote:
 Hey there!

 I just realized that when using an OpenMP enabled build on osx (cmake),
 all simulations and baking run terribly slow. When I compile the same
 revision with OpenMP disabled, it uses one core at 100% and is MUCH
 faster. Can anyone confirm this? Are there known problems with OpenMP on
 OSX?

 Greets,
 Tobi

At the blender institute we had the same problems and it seemed to be
because of the processor (core2's were ok but i7's had performance
problems), rather then rebuilding you can set the OMP_NUM_THREADS
environment variable to 1.

We could make blender detect this on startup and set OMP threads to 1
based on the processor - using a shell script or perhaps it can be
done in blender's main function on startup.

-- 
- Campbell
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] OpenMP on osx

2011-08-16 Thread Mats Holmberg
Oh yes!

I can confirm. It has been a problem for a long time, I first noticed it about 
six months ago when I got a new machine. It's been discussed over at IRC, but 
no resolutions yet.

My Mac Pro cannot really be used for simulations at all, my MacBook Pro is a 
lot faster. This is a bit weird since my pro is an 8-core machine, while the 
laptop is dual core.

I tried compile using newer gcc versions through macports, but always ran into 
(for me) unsolvable errors.

-mats

On 16.8.2011, at 13.54, Tobias Kummer wrote:

 Hey there!
 
 I just realized that when using an OpenMP enabled build on osx (cmake), 
 all simulations and baking run terribly slow. When I compile the same 
 revision with OpenMP disabled, it uses one core at 100% and is MUCH 
 faster. Can anyone confirm this? Are there known problems with OpenMP on 
 OSX?
 
 Greets,
 Tobi
 ___
 Bf-committers mailing list
 Bf-committers@blender.org
 http://lists.blender.org/mailman/listinfo/bf-committers

___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] Blender Release Cycle

2011-08-16 Thread Matt Ebb
On Tue, Aug 16, 2011 at 2:55 PM, Campbell Barton ideasma...@gmail.comwrote:


 With time based releases only consider show-stoppers as new bugs which
 were introduced since the last release or anything that makes blender
 unstable for common use.


For what it's worth, I really like the idea of time-based releases, but
there's a big caveat which I think hasn't been properly solved yet. The
whole idea is based on keeping trunk stable (i.e. not allowing it to go into
long periods of instability while coders work on things heavily in situ),
and to use branches for work-in-progress stuff and merge them into trunk
when they're properly ready and won't disturb trunk.

This is great in concept, but it's also this part that is the problem here.
Time and time again, branches aren't tested well enough before merging. I've
seen it so many times over the last several years - features getting added
without having major bugs found by testers, dodgy code getting added without
a proper code review or oversight from other committers, and when these
things happen, the code tends to stick around. (I'm sure I'm not blameless
in the past here myself, either). For the last couple of releases it wasn't
so bad since there weren't any major new features (but even then there are
still plenty of bugs), but I'm a bit concerned about what will happen
especially now the kids on the internet are getting all excited about
opening the floodgates of new code for 2.6, which probably hasn't had nearly
enough testing/review either.

I think for this to work, project admins will need to be much stricter about
what is acceptable to go into trunk. If there are still signs of problems in
a newly merged bit of code when coming up to release time, it needs to be
ruthlessly pulled out before release (in order for the developer to work on
it some more before the next cycle), and not just allowed to slip through.

I think if the last year or two of blender development has shown anything,
it's that quality control is a huge issue, and that blender needs *quality
code* much more than it needs *more code*. It's quite an inefficient use of
resources when the more experienced and skilled blender developers (the ones
on the BF payroll) are spending their time bogged down fixing silly bugs. At
least when I was doing it, I found it rather demotivating too.

So I think this shorter release cycle can be an improvement, but if and only
if it's taken as an opportunity to be stricter about the inclusion of
insufficiently tested/poorly written code. If not, it'll probably make
things much worse.

cheers

Matt
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] Blender Release Cycle

2011-08-16 Thread Campbell Barton
On Wed, Aug 17, 2011 at 10:47 AM, Matt Ebb m...@mke3.net wrote:
 On Tue, Aug 16, 2011 at 2:55 PM, Campbell Barton ideasma...@gmail.comwrote:


 With time based releases only consider show-stoppers as new bugs which
 were introduced since the last release or anything that makes blender
 unstable for common use.


 For what it's worth, I really like the idea of time-based releases, but
 there's a big caveat which I think hasn't been properly solved yet. The
 whole idea is based on keeping trunk stable (i.e. not allowing it to go into
 long periods of instability while coders work on things heavily in situ),
 and to use branches for work-in-progress stuff and merge them into trunk
 when they're properly ready and won't disturb trunk.

 This is great in concept, but it's also this part that is the problem here.
 Time and time again, branches aren't tested well enough before merging. I've
 seen it so many times over the last several years - features getting added
 without having major bugs found by testers, dodgy code getting added without
 a proper code review or oversight from other committers, and when these
 things happen, the code tends to stick around. (I'm sure I'm not blameless
 in the past here myself, either). For the last couple of releases it wasn't
 so bad since there weren't any major new features (but even then there are
 still plenty of bugs), but I'm a bit concerned about what will happen
 especially now the kids on the internet are getting all excited about
 opening the floodgates of new code for 2.6, which probably hasn't had nearly
 enough testing/review either.

 I think for this to work, project admins will need to be much stricter about
 what is acceptable to go into trunk. If there are still signs of problems in
 a newly merged bit of code when coming up to release time, it needs to be
 ruthlessly pulled out before release (in order for the developer to work on
 it some more before the next cycle), and not just allowed to slip through.

 I think if the last year or two of blender development has shown anything,
 it's that quality control is a huge issue, and that blender needs *quality
 code* much more than it needs *more code*. It's quite an inefficient use of
 resources when the more experienced and skilled blender developers (the ones
 on the BF payroll) are spending their time bogged down fixing silly bugs. At
 least when I was doing it, I found it rather demotivating too.

 So I think this shorter release cycle can be an improvement, but if and only
 if it's taken as an opportunity to be stricter about the inclusion of
 insufficiently tested/poorly written code. If not, it'll probably make
 things much worse.

 cheers

 Matt

Hi Matt, I'm with you on this, more often then not big changes ==
breakages/bugs/dropping-support-for-corner-cases/glitches.

I think problem with code quality of branches needs to be solved by
some tangible changes to the process and what we accept.
like saying lets not write buggy code - it sort of meaningless
unless its followed up with some real changes to how we work.

Here are some suggestions
*disclaimer that this is colored by my own experience  preferences, I
may be overlooking some issues*



1) don't accept changes from branches that are outside the branches scope.

Sounds obvious but devs add features or fix bugs (in gsoc too), which
are not related to the branches main purpose, IMHO this is really bad
for a few reasons.

* makes reviewing the branch difficult since its not always obvious
why the change is made, Ive had to follow this up with the authors -
sometimes to find it was some test left in by accident or just a
change they thought was a better default.

* adds communication overhead to branch review OR it just slips
through into trunk which can also be really bad if the change has
unforeseen side effects.

* makes svn annotations harder to follow when new bugs resolve to
lines from a merge which isn't even supposed to be touching this area.

For devs who already made unrelated changes in their branch it just
means submitting unrelated changes as patches on trunk.


2) Code should be reviewed - as in a developer read over the
changes, sounds obvious too but currently we don't always do it.

Of course code review still allows for bugs in behavior, but from
reading diff's some bugs are obvious.

With large changes to blender which I find suspicious, I'll copy
blenders source tree and view the source tree before/after the change
using a visual diffing tool - since reading the diff on its own isn't
easy to follow.
I did this recently from a merge and found lines like Fix this
tomorrow, and some obvious hacks that should have been dealt with
before the merge - This was in code I wrote so I'm confident they were
not-good-changes, but the point is nobody reviewed the branch!

We have 4 employees for BF now, we should be able to manage this? :)


3) Improve testing on branches

This is hard to enforce, I think we can only try to help users to get

Re: [Bf-committers] Blender Release Cycle

2011-08-16 Thread Nicholas Bishop
 1) don't accept changes from branches that are outside the branches scope.

 Sounds obvious but devs add features or fix bugs (in gsoc too), which
 are not related to the branches main purpose, IMHO this is really bad
 for a few reasons.

On a related note, I think it might be helpful to break branches up
into a series of smaller patches. I think a lot of branches can
probably be split into at least three sets:
1) First would come very general changes to existing code. This would
include things like bug fixes for trunk, but also things like adding
an extra parameter to a Blen[lib/kern] function to make it more
general, or adding better comments to an existing module. There are
often a lot of changes like this that can be reviewed entirely
independently of whatever feature the branch is actually focused on.
2) The second set would be more in-depth refactoring within one or
more modules. For example, a new sculpting/painting mode might want to
refactor some of the generic paint stroke code to expose some new
feature to all the painting modes. Or maybe some new data structure
has been created that could be submitted as a new Blenlib interface.
Essentially this set is more complex/bigger changes than the first
set, but still stuff that can be reviewed independently of any new
features.
3) The third and final set would contain the new feature itself. The
goal here is that this patch should be as simple as possible, relying
on refactoring and infrastructure changes from the previous two sets.

Obviously the above three descriptions are a bit general and would
need be interpreted a bit on a case by case basis, but I think this
could be a helpful guideline. I've been doing something like this for
my own experimental patches; there are a number of new features I've
worked on like Ptex and the skin modifier that simply aren't ready to
go in trunk yet, but I've still been able to extract some useful code
and put it in trunk (things like adding better comments to the PBVH
struct, cleaning up the GPU VBO code, and refactors in the paint
code.)

-Nicholas
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers


Re: [Bf-committers] Blender Release Cycle

2011-08-16 Thread Matt Ebb
On Wed, Aug 17, 2011 at 3:06 PM, Campbell Barton ideasma...@gmail.comwrote:


 Here are some suggestions
 *disclaimer that this is colored by my own experience  preferences, I
 may be overlooking some issues*


+1  !

Here are some more ideas of mine:

4) Improve testing on branches (continued)

The problem with branches is that not many people use them, everyone just
wants to use trunk, because that's where the action is. At least from my
perception, most of the time when people do use branches, its just to see
some new feature, poke at it a bit, then leave it alone - not really pushing
it to the limit in real work.

A solution for this could be to make trunk the 'boring' branch with mostly
just bug fixes etc, and have a development branch which people can merge
their own branches into for testing (like the gsoc salad branch).

Another idea that Ton had many years ago which I still like is for coders to
find an artist 'buddy' to help them throughout the development process,
someone with whom the developer can work with closely for feedback and
testing. A good portfolio of work done with a branch can go a long way to
vouch for its readiness for inclusion into trunk.

5) All new features are developed in branches

For all substantial new features everyone must use branches - core devs and
module owners included. Module owners are capable of committing
weird/bad/unreliable/poorly tested code, just like anyone else, and this
code should be tested in quarantine as well.

6) Documentation

Ton says this every year or so, but anyway again - before review/merge into
trunk, a new feature should have at least a minimal form of user
documentation, and some brief code/design documentation. Shouldn't have to
be too comprehensive, but should at least help reviewers/module owners/etc
understand the code they're reviewing, or find any design flaws up front.

7) Enforcement

Technically there are policies like these already in place (eg. should have
documentation) but they're never/rarely enforced. Most of the time now, if
people commit weird/bad/undocumented/untested stuff to svn everybody just
shrugs their shoulders and moves on. These will only work if project admins
and committers agree to call each other out on these points and also accept
it when they have to abide by them.

So if something is checked into trunk without going through a branch, or
without proper documentation, or without enough testing, it must get
reverted out of trunk. There can't be a stigma or fear of hurting people's
egos here, it's just a matter of doing what's right for the project. And
ideally with a short release cycle, it's not the end of the world if your
code doesn't make it in to a release anyway, since the next release is just
around the corner.


Anyway, I really do think this is a serious issue - the last couple of years
show that pretty well, and there's the potential for it to get a lot worse
as blender gets more and more complicated, and takes on new scope. In the
end, limiting the addition of code that's not up to scratch results in more,
better features, as less core dev time and resources are spent on bugs, and
more on the cool stuff!


cheers

Matt
___
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers