On 10/07/2017 05:15 PM, interest-requ...@qt-project.org wrote:
On Saturday, 7 October 2017 14:58:03 EDT Andy wrote:
I don't really want to play the "pile on" game (and sorry for hijacking
the
current thread), however as someone who cares about Qt and has been using
it for a long time this is a particular source of real frustration.

Bug reports often get labelled as "Reported" and then ignored (the
"priority" only seems to make a difference if it's a showstopper, so why
have the other levels?).
Well, if we had infinite resources, we'd fix them all in priority order. We
don't, so we fix what we can. At some point, we have to draw the line and
cut a
release. So yes, lower priority items will go unfixed (unless they re
easy).

They are, however, a great way for us to get new contributors. Usually, the
lower priority items are not as complex, which allows people to "get their
feet wet" in contributing to Qt.

Thanks for the response Thiago.

Yes I understand the time constraints completely. I think some of where I'm
coming from is that there are areas that feel like they are more focused on
building new stuff at the expense of documenting & fixing the older stuff.
So the balance feels off (from the outside - I'm sure there are lots of
issues at play we aren't aware of, so maybe it's just a communication
thing).

I certainly don't want to come off as ungrateful for the work all
contributors do. It's an amazing piece of technology.
I do thank you for your work Thiago, and it is not negativity, just frank appraisal as others in this thread have eluded to without saying it so plainly. Adding to the stinging feeling was the recent rash of emails from OpenSuSE and Ubuntu, most of which were automated "version no longer supported." For a brief moment I thought I had the first ever Linux email virus. While I didn't go back to check the date, the OpenSuSE bugs had to be at least 6 years old because I haven't used OpenSuSE in that many years.
Trying to contribute is often an exercise in frustration because it can
take months for even the most trivial changes and often requires constant
hounding of the "committers" to get reviewed/committed. (When it works
though it can be awesome - it really improves the quality of the
contributions.)
I understand, and like to Krzysztof, thank you for your contributions. The
fact that you are participating means others can focus on the complex
things.

I also share your pain. And to me it's worse because not only I have more
changes to get reviewed, but often I am the only person who can review the
change I made myself. According to our rules, I cannot self-approve and
must
make the effort to get others to review.

My suggestion is that you send "ping" after a week of not getting a review.
After another week, if it's still not approved, make sure the module's
maintainer (me for QtCore) or the Chief Maintainer for orphaned modules is
added to the review list, and specifically ask the maintainer for a
decision.
Two weeks is more than enough for at least some feedback.

Ok, thank you. I'm starting to do that a little more and I am seeing some
movement on things. Part of this might be cultural as well. To me bothering
someone over-and-over to do something is kind of rude, so it doesn't come
naturally:-)  If that's the "accepted practice" then I'll work on my
pinging skills.


To be fair - this isn't uniquely a Qt issue - it's kind of a drawback of
the open source model in general. It would be nice to discuss it though

It's a problem which plagues every OpenSource project I have ever utilized. The problem is epidemic at the distro level where abandonware just keeps getting compiled and included in the next version. The KDE tree seems to be the worst offender in that regard. KBiblio (or whatever it is called) hasn't been maintained in over half a decade. Long ago it ceased to work with any blog system I tried it on, yet it keeps getting included, even in Neon. Emerald/nView (whatever) WYSIWYG Web page editors were long ago abandoned for Blue Griffon but most distros still include the long dead projects because someone set up the build script to include them and they still compile. They haven't really worked in a long time, but, there they are for the noob to pull down and be frustrated with.

I remember one instance where a colleague made a simple one-line-comment
change, I reviewed it and said ok, then we pushed. A few minutes later,
another colleague came into our office and asked what the hell we were
thinking,
since we broke the build (this was before the CI existed).

Turns out that we forgot the "//" to make the comment a comment.

:-)  Yes, certainly there are hurdles, but documentation fixes/changes seem
like they should be easier somehow. Because I don't know all the Gerrit/CI
details I'm not 100% sure how this might be accomplished.
While the comment story is horrible, it points out a rather wretched flaw in the AGILE/TDD development method. There is no requirement for a clean build prior to a commit. I recently left a project where developers would hack out a change, hack out the QTest, check them in, nag for a code review which would be very light because of all the other time constraints only to find the automated build process died. Adding insult to injury, a build was something like 6 hours so you could only get 2 done per day. Adding carnage to the situation, the PC oriented method of source control and automated builds didn't allow the ability to regenerate the last known stable build.

I came from the big stuff. Not the massive blue iron world, but the DEC world of global clusters long before we had the Internet. I covered the development/code control process in this book.

http://theminimumyouneedtoknow.com/app_book.html

Boiling it down there were Development environments D01-D99, integrated testing environments T01-T99, Production build environments P01-P99, and Production Support environments S01-S99. Not every shop created all 99 environments because of resource limitations, but they all had command files to auto-spin a new number up as needed.

Developers flashed from the chosen P environment to their assigned D environment. When they "thought" they were done and could show the log of a clean scorched earth build they would be assigned a T environment for integration testing. Multiple D's would be assigned to the same T (usually what was going to be included in a production turn) for integration testing. Once it passed with user acceptance it would be scheduled for a move to a P environment. (Usually P01. You only had multiple P environments in use when there were massive unrelated changes being staged over days.) After a production turn had been live for N days it rolled to a production support environment.

I've yet to encounter a PC/OpenSource world which follows this rigor. As a result, things get backed up.

In my experience, which seems to be the experience of others in this thread, is the "ignoring of things" isn't an issue with the lack of production quality rigor, but the thrill of writing new code for new features. Nobody wants to fix bugs and even fewer people want to fix other people's bugs, everybody wants to put their name on a new feature and new features are what draw in new users, not stability. As a result, bugs age off and users who needed those bugs addressed choose some other development tool. Yes, compiled Qt is great and resource friendly, but, when your delivery date is fixed and you can't work around a bug deemed low priority by the maintainers, you move to a different tool for some/all of your project.

[Thinking out loud]
Can the Sanity Bot figure out if the changes are just comments? Maybe when
submitted the commits can be marked as docs only, the Sanity bot can
complain if anything else changed, and then comment-only changes can be
batched together for integration. Would avoid the issue Krzysztof mentioned
(which I've also run into).

Maybe comment-only changes only require +1?

Like how? The only thing we can add to alleviate this problem is more
people
as reviewers. Anyone can give +1 and -1, but we don't seem to get enough
new
contributors.

I'm not sure because I'm not in the position, so I don't know all the
day-to-day stuff that's being dealt with. I feel like there are some of us
on the "outside" that are willing to spend some time & resources, but
aren't because of the frustrations. So maybe there's another way to engage
this group (assuming it doesn't just exist in my head:-)  to use them more
effectively?
Lack of new contributors is a self feeding problem. Without an easily understood production level rigor to the control and submittal process, developers like the pair in this thread, become frustrated and stop contributing. Without trying to beat a dead horse, a build process which only a hallowed few understand isn't sexy or attractive.

When I left the last AGILE project I will _ever_ work on we had one guy who was notorious for hounding everyone else to review his changes, but boy could he ignore those automated emails to review others. He was a nice guy and skilled developer, but if you review request had more than 3 files in it, the thing would rot in his inbox unless he desperately needed you to review his 20+ source file change. (Changes which impacted 40+ source files were nothing there. Don't get me started.)

In a corporate environment this is an easy policy fix. Each week developers must participate in N code reviews. It doesn't fix the problem of everybody reviewing the code assuming the developer actually compiled it, thus missing the fact the comment doesn't have // in front of it, but, it is a first step.

The problem with letting code reviews rot is the fact those changes won't be any good once something else goes in. Even if the auto-merge works, the change can now break the other change which went in.

The second problem has been the issue others in this thread eluded to. When their change seemed to grow moss they quit submitting other fixes.

A long time ago I submitted bug reports with some simple changes needed in QChar. They were just some tests for characters, hex digits and something else. I submitted them with the bug report. No idea if they made it in. I had to create a custom derived QChar class for the project. Most likely that product is still using that change today.

While time is always an issue, "the group" could institute a policy that _your_ review request cannot be acted on until you have reviewed at least one outsider submittal. The _your_ would be whoever in the inner circle has just checked in for review. A project cannot get new contributors if submissions don't get reviewed in a timely manner. If a tight nit group of developers focuses on doing their own code and only reviewing each other's code, the problem of no new contributors will continue.

One of your comments did trouble me. I don't think I still have it in what is left of this message, but you said something about you being the only one who could review most of your changes. As a generalized rule, peer review is for coding standards via diffs and checking for stupid things like uninitialized variables as well as comments. That is what it "should" be, especially with a large code base. An indepth code review would also be checking against the SAG and FSD to ensure neither System Architecture or Functional Specification were violated.

While you took insult at my appraisal at the process, I would ask you to put yourself in the shoes of the thousands of people each day who get an automated "version no longer supported" closure message for the bugs they either reported or opted to follow because it impacted them. I'm not saying they get them all from the Qt project, but given the number of distros and OpenSource projects most of us have to use daily, we get email onslaughts when a version goes out of scope with a massive number of open bug reports, many of which never made it past "Reported" meaning nobody ever looked at them to move them to "Confirmed" status.

I know it isn't vogue in the PC world, but in the big systems commercial world, it is not unusual for companies to declare a "stabilization year" where no product enhancements/new features get looked at. Instead, that calendar year is spent digging through the mountain of "bugs" as either real or "new feature" then assigning all of the real bugs to be swept up. Why? Because today's low priority not fun to fix bug is tomorrow's Equifax headline.

Just my 0.0002 cents.

--
Roland Hughes, President
Logikal Solutions
(630)-205-1593

http://www.theminimumyouneedtoknow.com
http://www.infiniteexposure.net
http://www.johnsmith-book.com
http://www.logikalblog.com
http://www.interestingauthors.com/blog
http://lesedi.us/
http://onedollarcontentstore.com
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to