[petsc-dev] plans for PETSc release
rupp at iue.tuwien.ac.at
Sun Apr 24 16:38:52 CDT 2016
>>> 1) I don't think having a feature freeze in master for a week is tenable at all. Developers want to move stuff along into it and continue work as they should. Plus developers don't like to think that stuff they are working and just finishing won't be in a release for another year so will lobby (as Lisandro did) to slip into the current release.
>> If that is a concern, one could still fork a branch off master, which gets stabilized for a week and merged to maint once the release is out. The price to pay is the extra backporting to master, which is just as much a nuisance as a feature freeze.
> Why, all you do is merge this "maint" branch to master every time you fix something in it.
Still something that requires extra effort and may (even though
unlikely) lead to merge conflicts.
>> On the other hand, a feature freeze for a week is a perfect opportunity for improving documentation and other work that will not break the code. And even if one prefers to keep coding, new features can still be put in next for testing. Particularly if communicated in advance ("Hey, we will have a feature freeze in 7 days and plan to release in 10 days"), people can easily arrange things. I think Lisandro's feature would have been ready on time if he had known 7 days in advance.
> Nonsense, he knew weeks ahead.
Urgency and deadlines are something people tend to consider in their
priority queue to schedule their work. I'm merely suggesting that a
better communicated release schedule allows us to provide a better release.
>>> 2) You seem to think that if we announce a freeze on master (or some branch) dozens of disparate types of users will jump all over it and do massive testing during that week finding all kinds of issues. Maybe that happens with some package's users but not PETSc; we're lucky if one or two people give it a half-hearted try out.
>> Even if it's only two, it's better than zero. Providing the possibility for users to test (e.g. against their own set of nightly tests) is better than not providing the option at all.
> The option is ALWAYS there. We even have users who run Jenkins or buildbot against master everyday. It's not like there was not a warning that a release was coming out soon. People who want to do the pretesting (and there are very very few of them) had the opportunity.
> Some people like to have a pre-annouced day for a release (thinking if people are told that day, they will actually finish their feature on time or do some testing before then), I've avoided this because we are reliant on people (both in and outside PETSc) whose schedules are erratic, I think people do crappy work with fixed deadlines, and when we've tried it in the past we've always pushed past it anyways so what meaning did it have?
A feature freeze will not magically fix things if we've done a crappy
job in the months before the release. However, each bug fixed in a
feature freeze stage will help avoid repeated support requests later
(some users only update between major releases).
>>> You are being a bit pedantically Roscoe in this thread.
>> ;-) Jed is not proposing something that induces more effort, just a more coordinated plan of moving things when and where.
> Actually he is proposing something that induces more effort. For example for a whole freaking week my work-flow of moving stuff that passes the tests in next into master is broken and this induces later more manual merges because other developers started their features/fixes with outdated code. Plus I am suppose to be running around for a week fixing documentation and testing on odd-ball machines.
> If you have a staff of programmers sitting in an office everyday whose schedule revolves completely around a software package they work on full time on the boss can say to them "ok, next week you will be doing testing stop all development". But we are not a staff of programmers sitting in an office whose schedule revolves completely around a software package they work full time, nor do we have a boss. Matt may be in China that week, Jed climbing the Matterhorn, Lisandro working on some cool new feature of PetIAG, Barry pandering to some third rate project we have to interact with for DOE politics, Emil proving some great global error estimator, Karl having another baby. The idea that there can be this magical week for the testing process where more than one PETSc person is able to exert serious effort on is absurd. What Jed proposes* is idealistic, not practical, and would result in just having a less productive week (this is why I compared it to Ross's blathering).
The feature freeze is not meant to be enforced on everybody (i.e.
writing documentation, testing on funky machines, etc.), but serves as a
coordinated and agreed-upon synchronization point, where the end result
is the best software package we could come up with. There are some
machine configurations I can test if a release is imminent, but are not
available for testing on a regular basis for various reasons. When
should I run those tests if not right before the release (maximizing
More information about the petsc-dev