Wine developer frustration (was Re: ntdll: Improve stub of NtQueryEaFile.)

Alex Henrie alexhenrie24 at gmail.com
Fri Jun 19 18:34:51 CDT 2015


2015-06-18 2:08 GMT-06:00 Alexandre Julliard <julliard at winehq.org>:
> So now I want to take a step back, and take the time to look at what we
> are doing wrong, and listen to new ideas. I'd like to encourage
> everyone, but especially people who are disgruntled or have given up
> hope that we'd ever change, to send (either in this thread or by private
> mail) their suggestions for what we should be doing differently, and how.

As a relatively new Wine developer, I submitted a UTF-7 implementation
copied from ReactOS, but it was rejected without explanation. After
some prodding, I was told that I needed to rewrite the code from
scratch.[2] Then, after I rewrote the patches, I was told to put the
implementation in kernel32 instead of libwine.[3] The next patchset was
ignored, but I finally got a couple of cryptic messages about a buffer
overflow and table-based tests.[4][5] Later I got more cryptic messages
about needing more tests, but again I was not told what needed to be
tested, just "think about it".[6][7] Finally I was told "this isn't
going anywhere",[9] "you have nowhere near enough tests"[10] and "if
you're too stupid to know what you're doing wrong then you shouldn't
contribute".[11]

The above process literally lasted from January to December 2012. After
that, I was so upset with the Wine project and AJ in particular that I
did not submit a single patch to Wine for more than a year.[12] When I
finally decided to try submitting the UTF-7 patches again in October
2014, I begged AJ for feedback and once again got nothing specific.[13]
In desperation, I turned to IRC and was invited to participate in Wine
Staging. They patiently provided specific, line-by-line feedback and
even helped rewrite the code in a couple of places. They also accepted
the code into their fork to get some real-world testing.[14] By the end
of November 2014 (less than two months later!) the patchset was
accepted into mainline Wine.[12]

Wine has been one of the worst, if not the worst, open source project I
have ever worked with. (I think it's a tie between Wine and Qt's
QSerialPort module, but that's another story.) My UTF-7 experience
illustrates exactly why we need Wine Staging or something like it:
Without the detailed feedback that the Wine Staging developers
provided, this feature would have never been accepted. Furthermore, I
would not have learned the tips and tricks that I needed to know to
write acceptable patches in the future.

The idea that all discussion and development needs to happen on
wine-devel and wine-patches in order to gain trust is BS. AJ was
unwilling to take more than a glance at the UTF-7 patches until they
had gone through probably a hundred iterations on GitHub and the
wine-staging IRC channel. In my experience, AJ is far more likely to
accept a patch done right the first time than a patch submitted 12
times because the submitter keeps finding problems with it.

Alexandre, the best thing you could do differently is to provide verbose
feedback on every patch. You have been working on Wine for a very long
time and what is obvious to you is not obvious to everyone else. If you
don't have time to write feedback yourself, ask another Wine developer
to do it. Ideally we would have a list of trusted advisors for each
program and DLL, people who are available to answer questions in their
areas of expertise. It would also be a good idea to notice new
developers, assign tutors to them, and have the tutors welcome the new
developers and offer to answer questions.

Please understand that I like Wine, I want to attract new Wine
developers, and I want to see it become the most popular Windows API
implementation. I hope you can take this email as constructive
criticism without it negatively affecting my Julliard Rank™ ;-)

-Alex

[1] https://www.winehq.org/pipermail/wine-devel/2012-January/093705.html
[2] https://www.winehq.org/pipermail/wine-devel/2012-May/095451.html
[3] https://www.winehq.org/pipermail/wine-devel/2012-July/096531.html
[4] https://www.winehq.org/pipermail/wine-devel/2012-August/096867.html
[5] https://www.winehq.org/pipermail/wine-devel/2012-August/096872.html
[6] https://www.winehq.org/pipermail/wine-devel/2012-September/096901.html
[7] https://www.winehq.org/pipermail/wine-devel/2012-September/096910.html
[8] https://www.winehq.org/pipermail/wine-devel/2012-December/097994.html
[9] https://www.winehq.org/pipermail/wine-devel/2012-December/098015.html
[10] https://www.winehq.org/pipermail/wine-devel/2012-December/098036.html
[11] https://www.winehq.org/pipermail/wine-devel/2012-December/098051.html
[12] https://source.winehq.org/git/wine.git/?a=search&h=HEAD&st=author&s=Alex+Henrie
[13] https://www.winehq.org/pipermail/wine-devel/2014-October/105402.html
[14] https://github.com/wine-compholio/wine-staging/commit/04467e7e68b12850349fbe6a60800d3eaf52acdb



More information about the wine-devel mailing list