Hi all, I've been very slowly reading the Gnus code base, and looking at how to go about doing some refactoring, cleanups, and a few new features. I wrote a roadmap which I'm attaching here -- it's not so much an actual roadmap as a collection of possible changes, as a starting point for argument. It's also not meant to be a mini bug tracker in Org -- my idea was that if any of the ideas looked like they were going to be acceptable, the todo items would turn into real bug reports on debbugs. In general, I've been working from a few principles: 1. Replace Gnus' homemade mechanisms with equivalent mechanisms that have since appeared in core (in many cases Gnus had them first). 2. Add docstrings and comments to minimize bug-hunter bewilderment. 3. Look at unpicking functions so that there's a clearer demarcation between code that does server logic (marks and whatnot) and code that does UX/presentation stuff. 4. #3 would ideally allow more of the code to be testable. 5. Reduce number of dynamic variables, to cut back on "spooky action at a distance". To be honest I don't even know where to start here. The roadmap is also not meant to address all of Gnus -- for the most part I'm sticking to groups, servers, and marks. I don't feel comfortable or competent to mess with other areas like MIME/threading/washing/network/definitely not security. Some of those areas already have "shepherds", anyway. I'd like to make this document publicly accessible and editable (a branch? Emacswiki?), and see if anyone has anything to contribute, or otherwise wants to jump in. I think there's a lot of love for Gnus out there, and my hope is that the roadmap might spur people to pop up and share their ideas, and maybe offer to pitch in. Where could I put it? Eric PS: No, I don't have any code yet. The one patch I do have touches nothing but docstrings, code comments, and "Commentary" sections -- stuff I've added over the course of reading the code.