Hi,
On Thu, Oct 24, 2013 at 09:24:56AM +0000, Javid Nia / Mod2 Inc. wrote: > As a user of freerdp project and a fellow software developer I want to thank > the code writers behind freerdp. We all know it takes a serious amount of > time to write quality software. Rome was not built in one day. Thank you :). I just want to add a thanks on my side for all the people that got FreeRDP started and already put so much effort in it. It's funny I always tried to escape the MS world somehow but RDP kept following me and I really do like FreeRDP :). On Wed, Oct 23, 2013 at 05:59:36PM -0400, Marc-André Moreau wrote: > I will make myself available for a conference call to answer all of the > questions community members might have. Just contact me and we should be > able to schedule something as soon as possible. count me in. I also really do like Brians idea about having a conference call or something similar to discuss this. A lot of the problems that were addressed, thinking of stability, API changes and release management are absolutely true and it's about time that they get solved. Therefore I think instead of spending our time on blaming, flaming and talking about what went wrong we should get our heads together, bring this discussion back to a professional level and try to address and solve the currently open problems concerning FreeRDP. And most important of all make sure these don't happen again in the future. What do you think? To get started, here are the, hopefully constructive, things I have personally pulled out of the recent mails. Please feel free to add more or correct them. Main problem: '''current development model is not really optimal''' Ideas: 1) stable, not changing API * stable-x.y branches can be used for that ** should only get fixes, stability and performance improvements ** no new features ** no API changes ** have defined rules what is accepted and what isn't While developing it always will happen that an APIs change. To reflect that we should do better version numbering like other oss projects do. https://github.com/FreeRDP/FreeRDP/wiki/Release-Guide#versioning It would also make sense that big changes are discussed on the mailing list up front or that these kind of pull requests are at least reviewed and checked by two other developers. master would stay the bleeding edge where all of the new stuff goes in. 2) Stability of "subsystems" Development should also be more focused on the stability of single subsystems. When fixing bugs it is sometimes rather hard if you work on a "subsystem" (like channels, smartcard, serial, cache) because they are often really complex, and it takes time to get into them (especially the first time). I often find myself fixing a bug and not being 100% sure if this is really brings the desired result for all cases since I don't use the "subsystem" often or do not have the right use case for it. To solve/improve this I'd suggest that we choose a responsible person for a subsystem, similar like the linux kernel does with maintainers. The responsible person should have a good overview and know how it works and is used and also has some test setup in place. This might also improve communication and bug fixing since one knows who to ask and talk to. We should also adapt this approach for the stable branches and have one person responsible to take care. The subsystems/responsibilities could look like the following: * stable-1.0 * stable-1.1 * core * channels ** smart card ** serial ** sound ** clipboard ** drive ** tsmf ** usb ** printer ** parallel * clients ** x11 ** ios ** android ** mac ** windows * documentation * build system 3) Licensing Put together a clear and understandable licensing policy that explains why it is like it is and also what is possible and what is not. 4) Testing and QA This is probably the most important and most complex chunk. For hardware related functionality automated testing or unit tests are really time comsuming and sometimes almost impossible todo. Here we should really define (manual) test procedures that need to be done before we consider stable and working. This already got started: https://github.com/awakecoding/FreeRDP-Manuals/blob/master/Testing/FreeRDP-Testing-Manual.markdown Still really basic and limited. I've also some check list around that we do before releasing aFreeRDP or iFreeRDP which I would add. For the testing we also need proper use cases and test environments from people that use one feature. @Otavio if I'm not mistaken you do use serial a lot could you provide some information how one can properly test it's functionality or do you even have some test list in place? With all of this keep in mind that it's an open source project and therefore dependant on the community and volunteers. I'd really like to get your feedback and help on the above ideas that we can improve and implement them together. Thank you, Bernhard ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ Freerdp-devel mailing list Freerdp-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freerdp-devel