-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What's left for 3.0? #7607
Comments
In the same vein there's:
Performance is important but it can be done in any releases imo.
Agree ! Everything else c/should be in 4.0 or later. But as @cdce8p said somewhere we should create the new JsonReporter in 2.x we only need to make it the default in 3.x. Regarding the timeframe we could create the 3.0 branch right after releasing 2.16, merge #7163 in it and see where we goes from here. It's better if we don't have to maintain 2.X long enough to have a lot of conflict when cherry-picking but there's going to be some overlap. Once IDE integration (vs-code / pycharm) and major plugin (prospector / pylint-django) use 3.0 we don't have a lot of reasons to keep maintaining 2.X imo. |
We probably need to maintain |
I think that when we release Users know that each pylint release means new messages so I don't think 3.0 will be that different. I think apart from the json reporter we don't have a lot of user breaking changes. Breaking change in 3.0 are aimed more toward lib depending on us. If we get maintenance request from that, imo it's going to be unexpected and hard to solve (i.e. should we revert in 3.0 or is there a solution to make 'external lib' compatible with pylint 3). I don't think we should maintain 2.x for a really long time and not solve the problem in 3.0 but let me know what you think. Also we had a long deprecation period at this point so maybe it will not be that painful. Also, I know a company that still use pylint 2.6.2 because it's the one downloaded by pypi when you're under python 3.5. We also had maintenance request for pylint 1.9 well into 2020 because some company did not switch to python 3. It doesn't mean we have to humor them on our free time and maintain python 3.5 / python 2.7 :) |
Ideally we would create some workflow for this. But agreed. We should do limited support for the maintenance branch.
I know that some companies also use other package managers which might be more hesitant with suggesting a major version. In my current job I know we're still on
Agreed!
😄 |
Hey! Do we have an optimistic schedule for 3.0 yet? Something along the lines of "1 month from now" or "6 months from now"? |
There's no planning, but I would say it's more likely 6 months from now or more, depending on the availability of maintainers and the intensity of merge request proposed by contributors that we'll also have to deal with in 2.x while preparing 3.0. |
I'd like to see us finish up and merge pylint-dev/astroid#1189 in the near future, and then the first set of pylint PRs that do smarter control-flow can be batched for 3.0
Tentatively raising a hand to look at this in 2023.
True, but if G1 requires a rewrite (as some abandoned attempts in the past remarked), then better to look into it before 3.0. |
This is also what I'm afraid of... |
I think that working on multiprocessing is above what I / we can do while still dealing the constant flow of issues and merge requests. Also multiprocessing is pretty hard to test correctly so I'm very afraid of touching it. If we go this path we might need to feature freeze and false negatives freeze until 3.0 is released to make it manageable. Now that I say it, it would only be like a minor release but we start maintaining the 2.X branch at the same time than the 2.16.x branch, and before we release 3.0. (the 2.X branch would in fact be the 2.16.x branch) |
The issue with multiprocessing being hard is also that we don't know how hard the fix will be 😅 The biggest issue I had so far is that I couldn't figure out the issue and only had hunches but no actual data (other than the issue I already fixed). The only thing I know right now is that there is a significant memory leak in |
@cdce8p @jacobtylerwalls @DanielNoord now that 2.16.0 is out, I was thinking of doing a very light/fast release for 2.17.0 then start a 3.0 branch and release more alphas then betas until we can actually release a proper 3.0. I feel like if we do an enormous 2.17 release (with as much features as 2.16) we're never going to actually start 3.0 😄 |
I'm fine with releasing Personally I'm more interested in cutting off the |
I don't see any issues with releasing 4.0 soon after, 3.0 was delayed a lot because planning and promises were made by contributors that are not very active anymore and we had to do a lot of things to discover and keep or break those promises. The deprecation cycle could become shorter (months instead of years) imo. |
There's only one PR left on the 3.0.0a7 milestone, which is almost ready to merge. But we've already bumped pylint to 3.0.0b1. It would be sort of nice to keep pylint and astroid in a similar release cadence. (Don't think it's a good idea to publish a stable pylint that depends on unstable astroid.) Would also be good to support python 3.12 in an astroid beta, if not the first one. Reason: I don't want to encourage a lot of testing until we're ready for 3.12. @Pierre-Sassoulas how do you think we should proceed? I may not have time to contribute anything else for 3.0 except reviews and supporting python 3.12. |
I bumped to beta in pylint prematurely I don't mind downgrading to be able to release before doing #3512. But since I made some changes that will requires annoying manual modifications in user conf I would like to do the automatic upgrade of conf before releasing a new pylint alpha. (Finding the time to implement it proved challenging though) |
@DanielNoord I started a discussion on Discord about releasing betas of pylint/astroid as soon as we can. Python 3.12 is almost out, and I'd like to see pylint accrue the "reputation points" from supporting it on time this year. If we're going to leave time for actually responding to beta issues, we need to start encouraging testing. 3.0 doesn't need to be huge, it has plenty of performance and usability enhancements to justify the breaking changes involved already. I think @Pierre-Sassoulas wants to wait a bit until we have the auto-config-upgrade feature, but I'm not sure we need to wait, since we can also use the beta period to revert any changes that users find too difficult/tedious to upgrade. I'm also not sure which PRs are the ones that we're considering blocking the beta over this. I read the 3.0 changelog in progress and only spotted the overgeneral-exceptions change; we could consider just reverting that instead. The new JSON reporter can be added in a 3.x and not removed until 4.x, so that's fine, also. WDYT? |
Completely agree! All meaningful API changes have been deprecated long enough and are available as alpha's as well. I'd really like to work on the auto-upgrade feature but it is just too much work for the little time I have left to work on OS at the moment. I think it is indeed also fine to release major versions more often. For 3.x I think there were just so many outstanding issues that we didn't know when to cutoff in a smart way, I agree with your assessment that it is seems like we're there now! Like I said elsewhere I'm on limited internet for a couple of more days so I won't be of much help but feel free to do the release. If necessary I should be able to respond to issues I'm tagged in within 48 hours. |
Happy autumnal equinox! ☀️ = 🌑
It seems @DanielNoord and I agree that we've been ready to release 3.0 for about two months now. I wanted to bump this thread to see if we can drive at some sort of compromise/plan.
(I find it a little unfortunate that we're going to miss this target.) @Pierre-Sassoulas, am I correct that you feel some degree of conviction about waiting for certain features you regard as blockers? I don't know that we ever had a full discussion about marking them as blockers, and even if Daniël was a part of such discussions, he sounds willing to revisit them now. I just don't think any of the issues labeled with "blocker" are important enough to block a release. In 3.0 as things currently stand, people might need to replace some calls to deleted extensions or update their If we polled users (and I guess we might need to if we can't get to an agreement), we could ask whether they'd rather have faster pylint and 3.12 compatibility now, or wait six months in case we can dev/test an auto-updater to (potentially) make two changes to their config file, my guess is that the first would be more popular, but I'll happily support whatever the community decides.
This is still an option. (And a good lesson for us, to do our best to avoid merging things we're not fully sure we can release or make promises about timelines.) Many thanks as always for the love you all show this project on a continual basis! ❤️ |
I also want to release at the start of October (for python 3.12 release). I don't like releasing something with known crashes. But those seems to happens in exceedingly rare occurrence and are already happening in 2.17.X and I don't see a flood of reactions or contribution on those issues, so I removed the blocker label on them. I think #3512 will need to go in 4.0 even if it pains me a little (there's much anticipation on this one). There's no way to reasonably / correctly do it in a week and it would really benefit from #5462. And once we're finally free from past promises or dare break them, we can release major as often as we want... #5462 is a "should have" and #5701 a "must have" imo. I'm working on #5701 that is surprisingly hard to implement atm, but I think it's reasonable to do it. I aimed to do #5462 in 6 days rather than in 6 months, but I might be surprised by the difficulty (especially if we must deal with pylint configuration / option parsing to do it), How about we reassess #5462 in 6 days ? Everything else can just be moved or the milestone removed. But I don't think we should block MRs from being merged if they are ready either. |
🙏 sounds like a plan. Thank you for volunteering, and I'll keep near to GitHub for reviewing and any other maintenance chores. |
I don't have much time for writing code, but I'm keeping any on notifications and available for reviews if required! |
I moved all the issue that were labelled "needs decisions" or "breaking changes" from the 3.0.0 milestone to the 4.0.0 milestone. I removed the milestone of everything that was not labelled "needs decisions" or "breaking changes" or something that need to be in 3.0.0 from the 3.0.0 milestone. I updated the descriptions of the milestones so that #3512 is now planned for 4.0.0b0, What I think must/should/could be done for the 3.0.0 release now:
|
Perfect! |
Python 3.12 is out and we're receiving issues like #9091 because 2.17.7 is used unless you use 🚀 : release 3.0.0 now |
Yeah, the config tool can ship anytime, it's a nice to have, not a breaking change. |
It's done: https://pypi.org/project/pylint/3.0.0/ ! On the same day than python 3.12. I remember the day where we were lagging behind 3.9 and it annoyed Marc to the point of deciding to fix it and join the contributor team 😄. It's also a major version, there's a huge work involved to get to this point, and it's been planned for almost 10 years. A big thank you to everyone who made that possible. |
Yes, many thanks for everyone's hard work! |
Nice work team! |
Just because I want to gather some thoughts before we can decide when to release
3.0
.For me the main blocker was always turning on
--strict
inmypy
as that would lead to many deprecations. If we (ever) fix the typing inastroid
we will likely see many more things we need to fix inpylint
as well but at least it somewhat works now. That means I personally have only four main "stretch goals" for3.0
that I can think of:G1) Take one last look at
multiprocessing
and see if it can be fixedG2) Create a new JSON reporter
G3) Overhaul the enable/disable vs. extend configuration
G4) Make a start with offering pylint configuration templates
I'm not sure if they should all be part of
3.0
but I think we should at least start a discussion about what our expectations are and align some of our goals. For me personally only G2 is a real blocker.It might even make more sense to postpone G3 and G4 to
4.0
but start working on it immediately. We probably have some fallout from the3.0
release as we deprecate a lot and can then make4.0
thepylint-config
and "Update-your-configuration-Update".G1 I think is also very important as it refers to our current users. Although configuration is a pain for a new user, I think a much larger "threat" is people turning off
pylint
because it is too slow. It's just that we clearly lack the expertise/time to fix this right now.So, what do others think? Are there any other features that should definitely go in
3.0
? And what do you think is the right timeframe to think about?The text was updated successfully, but these errors were encountered: