Some news regarding Pylint's release process
Hi folks, I want with this e-mail to bring a bit of insight into what is happening currently with Pylint, especially what are our plans regarding its releases, and whatnot, since I'm feeling that at least this aspect is a bit opaque to the outside world. The current version that we are working on is 2.0, which is scheduled for release somewhere at the beginning of July. The release date went back and forth for a couple of times, due to not having enough time to work on the planned features, but the approach that we will take after the new release would simplify the process of getting out faster a new version to the users. There are some interesting features already implemented for the next major release (implicit namespace package support, special object attributes understanding, lots of bug fixes and new checks), but the major improvement and also the reason why we are bumping the major number is represented by the new tiered analysis. Pylint is known for being a bit overwhelming by default, which is the reason we are planning to ease its default interaction. The plan can be found at the corresponding issue https://github.com/PyCQA/pylint/issues/746, but the main idea is that, with 2.0, a pylint interaction would like this: $ pylint myproject # core checkers enabled <...messages..> 10/10 - Congrats, you're clean on a core. You might try with "--pedantic" now. $ pylint myproject --pedantic # pedantic checkers enabled. <...messages..> 10/10 - Congrats, you're clean on pedantic. You might try with --refactoring now $ pylint myproject --refactoring # refactoring checkers enabled <...messages..> 10/10 - Congrats, you're clean on refactoring. Last up, try with --style now. $ pylint myproject --style <...messages..> 10/10 - Now you're pylint clean. or $ pylint myproject --everything <...messages..> Core: 10/10 Pedantic: 10/10 Refactoring: 10/10 Style: 10/10 AGGREGATE: 10/10 -- congrats, you're pylint clean. This feature is still in progress and you can see what is left for this milestone here: https://github.com/PyCQA/pylint/milestones/2.0 I mentioned earlier about a new approach for handling releases and the minor releases in particular. Since Pylint is a diverse beast, with various areas which can be worked on at a particular time (new features, fixing false positives, new checks, improving the inference engine and implementing major features, such as PEP 484 support and whatnot), the focus can be lost into one and another, leading to some areas to flourish in the detriment of another, which can also mean that users would have to wait even more for having a bug fix or a feature they are waiting for. The attemptive plan is to have a short release cycle, around 2 - 3 weeks for minor releases and around 4 - 5 months for major releases. Each minor release would have at most 10 issues that are assigned for it, although we might assign less than this number, just so that we could have time to introduce more urgent bug fixes into a following release. Between some minor releases, we will introduce gaps into the schedule for working on the next major release. You can see the current milestones plan here https://github.com/PyCQA/pylint/milestones, including the already mentioned gaps. If you feel like there is an issue that is worth adding into one milestone or another, please do not hesitate to ask. In the end, I want to mention that we are definitely in need for more contributors. If there is anyone who would like to do so, but does not know how to approach the codebase or anything like this, do not hesitate to ask, either on this mailing list or on IRC, I'm trying as much as I can to help anyone that is interested in doing so. All the best, Claudiu
participants (1)
-
Claudiu Popa