I can't agree more with Antonio and Geertjan: as a community we need to
keep our eyes focussed on the goal: delivering a superior IDE to
developers. And doing so in a timely fashion.
My earlier suggestions about voting to move forward with a beta release
intended to support keeping that focus. From the many things that could
be improved in the code, and with such a large code base and extensive
functionality there alway will be a lot of these, we need to identify
which will be essential to realise before getting to the next stage of
release.
As an open source project we need to find a balance between on one side,
sustaining a vibrant community, where many are engaged and feel
appreciate for their various roles, and in efficiently making
decissions. To be specific, democracy is great for the former but may at
times be too slow and not explicit enough for the latter.
After a community decision to have a beta release we will need a small
committee to rank any changes to code and functions that should be
realised before the next stage. In my view Geertjan, possibly together
with a couple of others should have that task, the task of identifying
these essential additions to the beta code base. The input for the
decision on essential PRs should be, primarily, in my proposal, from the
issues provided accompanying the vote to go to beta. And, next to
setting the priorities that small group should set a date by which the
next release stage should ideally be ready.
With that date for a next release known, any PR that was not qualified
as a priority and for which some members in the community had the energy
to address the issue in time could still be considered for integration.
Such additional PRs could be required to be ready some time before the
times set for the essential ones to give time for deciding on them
without interfering with the main line of the delivery schedule.
A further thought on the small committee that takes those decisions
about timely moving from beta to the next stage in the release, in
addition to a small core of one or two people, members of the community
could self nominate for membership thereof. To that end the size of the
committee, let's call them the "release shepherds' has a maximum size,
7, or so, and self nomination happens in two stages: first, interest to
be involved as release shepherd is indicated on the ballot response,
secondly, if there are more candidates, those interested discuss amongst
themselves who of them will be a shepherd this time. As background, I
have very good experience with self nomination for the governance of a
very long-running (30+ years) of a no-conference i participate in
(Consultants' Camp <http://www.consultantscamp.org>).
In summary, the idea i developed here, is to structure a vote for beta
release to have three parts:
— up/down/don't care (=+1/-1/0), this is required to be a real vote
-—One or more PRs the voter considers essential to integrate before the
next stage. Optional with +1 vote, required with a -1 vote.
-—Self nomination as shepherd, optional.
The idea to require at least one PR with a negative vote is borrowed
from international standardisation with ISO. The idea is that addressing
these issues would change the vote to, at least, don't care (=0).
These rules should apply only to a vote for a beta release at that's
when we, as a community, decide it's really ready to release, so that
release should happen sooner rather than later.
I realise all this is getting a a bit more than 2¢. Sorry about that. At
this point in time, I don't have much time to contribute to the coding
effort, yet I like to support NB as it moves into open source, by
sharing some of my experiences with open organisations and democratic
decisions in standardisation and in (city) politics. These ideas may be
worth a dedicated thread of discussion. Anyway, there's no harm in
experimenting and adjusting based on what we learn.
Cheers
Eduard
Antonio wrote:
Hi,
My 2 cents: I agree with Geertjan: I think we should concentrate our
efforts in the best NetBeans 9 we can build for users. There're many
important things to do, ranging from the website to the jdk-javac
branch. And many new tools to control, ranging from the wiki to the
very slow JIRA issue tracker.
I think we should stay focused in those things that worry users, for
the benefit of the users, and leave those code-cosmetic, internal
changes for later on. After all NetBeans users deserve the best IDE we
can build, and it does not really matter to them if we're improving
the readability of ternary operators or if we're replacing for loops
with the Streaming API.
NetBeans is the second Apache project by size (as per [1]), with more
than 5.5M lines of code. Making those millions of lines of code more
readable & pretty may be a perfect academic case study, but spending
our efforts on those areas won't make our users more happy.
Cheers,
Antonio
[1]
Apache in 2017 - By The Digits
https://blogs.apache.org/foundation/entry/apache-in-2017-by-the
On 12/01/18 11:54, Geertjan Wielenga wrote:
On Friday, January 12, 2018, Christian Lenz <christian.l...@gmx.net>
wrote:
Hi,
first, in my opinion each PR is welcome, why not cosmetic stuff too?
There
is always a need to refactor code to make it more readable,
maintainable
and sometimes or more often it makes stuff faster. So why not accepting
everything?
The concern is that we could end up with hundreds of PRs that are
nothing
more than small tweaks for no clear reason, drowning out PRs such as
yours
that provide new meaningful features.
We do need to discuss this, probably in a new thread, but I’d suggest
each
PR needs to start off with a new issue describing exactly what the
problem
is, with the proposed solution, followed by some discussion, after
which a
PR is made. Refactoring for the sake of refactoring, without any
planning
or motivation, could lead to chaos.
Gj
Yes I think we need guidelines too. Like „when do we need Tests“,
„how a
commit should look like“, etc. and we need more branches. I mean atm we
have develop, master and some feature branches?
So develop should be the next release. Until a specific point, we
need a
relase branch like release/nb9 maybe for Alpha/beta and or rc state.
So we
have a fixed state where we can fix bugs and stuff but no new
features. New
features until beta or rc, should be done in feature branches and
merged
into develop, where this is NB9.1 or whatever.
Than there will be no discussion about whether we can handle or we have
time for „luxury“ stuff or not. Each PR, which is not a bug fix and
important for the next release, is done inside the dev state when we
have a
release branch.
Cheers
Chris
Von: Neil C Smith
Gesendet: Freitag, 12. Januar 2018 10:02
An: dev@netbeans.incubator.apache.org
Betreff: Re: Pull requests need to be reviewed
On Fri, 12 Jan 2018 at 08:04 Geertjan Wielenga <
geertjan.wiele...@googlemail.com> wrote:
I think we need to set up guidelines — e.g., a PR must be connected
to an
issue; a PR must solve a problem and not be cosmetic only; etc.
I’d advise looking at pull/3 by Chris instead.
I like Chris' PR, and see the benefit of it ... but, within those
guidelines are we going to have the concept of feature freeze? In my
opinion, if we're in beta vote phase, we should also only be
accepting bug
fixes. In which case, I'd be tempted to push that back to the next
point
release?
Out of interest, what were the old NetBeans policies around feature
freezing / release planning?
Best wishes,
Neil
--
Neil C Smith
Artist & Technologist
www.neilcsmith.net
Praxis LIVE - hybrid visual IDE for creative coding -
www.praxislive.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists