You need good understanding of Windows system calls plus Linux coding experience - a difficult combination to find.
IMO one is enough to get started. Solid Linux experience + access to MSDN gives a you good start. I had no Windows programming experience whatsoever before I started working on wine's winsock.
I think that a lot of people will look at the code, browse the web/bugzilla, be unable to find anything quick to break into the fold and give up.
There are such things, but most of them are of course boring. The "sexy" parts are hard to get started with. But that's no different than with other larger projects.
I personally think this is changing with CodeWeavers delivering commercial products based on Wine.
Yes, Codeweavers got brilliant reviews. Transgaming is also doing quite a good job. This may encourage users, but does it encourage developers?
What both you and James are referring to is making the process more transparent. People need clear deliverables to be able to focus and redirect their engergy towards something. With my newbie hat on, I can say that we don't provide that. Unless you have been around for a longish period of time, you have no real idea as to the state of affairs.
What is most urgently needed IMHO is more up-to-date documentation. Wine is changing very rapidly and the docs, even on WineHQ itself, more often than not don't reflect the changes.
And the most important part of the docs would be an easy-to-understand, up-to-date and in-depth tutorial of how to debug wine crashes, failures, etc. using different techniques (trace, winedbg, ..).
I know there are docs on that but we must make sure that they are up-to-date. It has happened to myself that I ran into some wine problem, wanted to produce a meaningful bug report, and than gave up because the debugger wouldn't run as expected (or described in the docs I had). Setting up wine such that you can do meaningful debugging currently almost requires "wine guru" capabilities.
The wine Wiki is great but there are far too many empty "New Item" entries.
- Making sure BugZilla is always updated anbd used in the right
fashion. If something gets done, close the bug and make a comment
A problem is that many reporters don't know how to use it. (Report bug, receive request for more information, never answer back - this has happened to me with a bug reporter employed in a wine-related company!). The only way to deal with that is to close the bug if it happens. For such situations I'd appreciate clear guidelines for maintainers.
Martin