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
_______________________________________________
code-quality mailing list
code-quality@python.org
https://mail.python.org/mailman/listinfo/code-quality

Reply via email to