Skip to content
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

Planning for astroid 3.0 #1868

Closed
5 of 10 tasks
cdce8p opened this issue Nov 14, 2022 · 9 comments
Closed
5 of 10 tasks

Planning for astroid 3.0 #1868

cdce8p opened this issue Nov 14, 2022 · 9 comments
Labels
Maintenance Discussion or action around maintaining astroid or the dev workflow

Comments

@cdce8p
Copy link
Member

cdce8p commented Nov 14, 2022

With the breaking change for the new Try node we should probably start planning for version 3.0. We might as well use the major version bump to bundle other breaking changes as well.

How to update pylint

With the tight coupling between pylint and astroid, one of the main challenges will be how to keep the changes to pylint manageable. After each major change, we could

  • Release a new alpha version of astroid
  • Or pin a specific astroid commit in pylint directly.
astroid @ git+https://github.com/cdce8p/astroid.git@<commit>

Either way would help us keep the pylint changes reviewable.

Any bugfix release would only be merged in the pylint maintenance branch.

ToDo's

Maybe?

  • Better typing for Uninferable. Just an idea, with a breaking change we could change the class to UninferableType and Uninferable being an instance of it.
    Consider creating a UninferableType or _Uninferable class #1680
  • Make all arguments to __init__ and postinit for nodes keyword only args.
  • Remove explicit node exports from astroid.__init__.
  • Remove astroid.scoped_nodes module (not the package)

--
Those are just some things I had in mind. Happy to add additional things to it.
/CC: @Pierre-Sassoulas, @DanielNoord, @jacobtylerwalls

Open Questions

Until we're done with all changes, I don't think it make sense to release a new minor version. Should we release 2.13 before we start the process just to get the last features out there? Any bug fixes could be backported as usual. The breaking changes are mostly for downstream libraries, not astroid itself.

@cdce8p cdce8p added the Maintenance Discussion or action around maintaining astroid or the dev workflow label Nov 14, 2022
@cdce8p cdce8p added this to the 3.0 milestone Nov 14, 2022
@cdce8p cdce8p mentioned this issue Nov 14, 2022
@Pierre-Sassoulas
Copy link
Member

Pierre-Sassoulas commented Nov 14, 2022

Should we release 2.13 before we start the process just to get the last features out there? Any bug fixes could be backported as usual. The breaking changes are mostly for downstream libraries, not astroid itself.

Agree with that, the 2.12 maintenance was very long already. I think we waited for #1189 but it can be merged when it's ready. (Edit: #1189 seems to be ready for review, and already 2 persons approved, we should probably add this one in the TODO list.)

@DanielNoord
Copy link
Collaborator

TODO list seems good to me. I'd like to help work on stuff, but I think we should try and do some concentrated efforts as that avoid the risks of many PRs ending up in review limbo.

@cdce8p
Copy link
Member Author

cdce8p commented Nov 14, 2022

Should we release 2.13 before we start the process just to get the last features out there? Any bug fixes could be backported as usual. The breaking changes are mostly for downstream libraries, not astroid itself.

Agree with that, the 2.12 maintenance was very long already. I think we waited for #1189 but it can be merged when it's ready. (Edit: #1189 seems to be ready for review, and already 2 persons approved, we should probably add this one in the TODO list.)

I'll try to take a look at it soon ™️ If it's good, it could make sense to include it with 2.13 before we start with merging 3.0 PRs.

TODO list seems good to me. I'd like to help work on stuff, but I think we should try and do some concentrated efforts as that avoid the risks of many PRs ending up in review limbo.

Agreed, I opened the issue since I wanted to start the discussion early (and had the Try change ready). Ideally, we don't wait too long for the 3.0 release after we start merging breaking changes.

Fortunately, most of the changes are strait forward and easy to implement. The most challenging one left is probably the Import node rewrite. My idea was to prepare a PR beforehand, similarly to the one I already opened for Try before moving forward.

Since the overlap between the changes is minimal, that can be done for some of the other ones too, although not strictly necessary.

I'd like to help work on stuff

These ones only require some time

  • Removal of Ellipsis, Index, ExtSlice
  • Remove deprecated doc attributes
  • Remove explicit node exports from astroid.__init__ (if we want to do it)

There is also the separate docs page, i.e. some kind of upgrade guide. Laying the foundation for it would help (create a file, add link to it from the main page, etc.). After that, everyone can start contributing to it much more easily.

@DanielNoord
Copy link
Collaborator

There is also the separate docs page, i.e. some kind of upgrade guide. Laying the foundation for it would help (create a file, add link to it from the main page, etc.). After that, everyone can start contributing to it much more easily.

#1873 😄

Least I could do!

@Pierre-Sassoulas
Copy link
Member

I just released 2.12.13, I think it should be the last patch version based on 2.12. I'm wondering if we should release 2.13.0 without #1189. Marc reviewed and there's a lot of comments. We can always release 2.14.0 fast if the situation evolve.

@jacobtylerwalls
Copy link
Member

The downside is that it's blocking several pylint PRs, and the unresolved comments are almost entirely cosmetic/small.

@DanielNoord
Copy link
Collaborator

If @cdce8p is interested in this I would be happy to do some cooperation on that PR and implement his comments in a back-and-forth process to just merge this somewhere this week.

I have some free time in GMT+1 evening this week so if that would work for you I think we can help move that PR along.

@cdce8p
Copy link
Member Author

cdce8p commented Nov 20, 2022

If @cdce8p is interested in this I would be happy to do some cooperation on that PR and implement his comments in a back-and-forth process to just merge this somewhere this week.

I have some free time in GMT+1 evening this week so if that would work for you I think we can help move that PR along.

I will try to make some time, although I can't promise it.

--
As for the general timeframe for 3.0. There are still several big todos I would like to take a look at before moving forward. So I think probably at least a month, maybe around New Year.

@cdce8p cdce8p modified the milestones: 3.0.0a1, 3.0.0a2 Apr 25, 2023
@cdce8p cdce8p modified the milestones: 3.0.0a2, 3.0.0a3 Apr 25, 2023
@Pierre-Sassoulas Pierre-Sassoulas modified the milestones: 3.0.0a3, 3.0.0a4 May 14, 2023
@Pierre-Sassoulas Pierre-Sassoulas modified the milestones: 3.0.0a4, 3.0.0a5 Jun 6, 2023
@Pierre-Sassoulas Pierre-Sassoulas modified the milestones: 3.0.0a5, 3.0.0a6 Jun 13, 2023
@jacobtylerwalls jacobtylerwalls modified the milestones: 3.0.0a6, 3.0.0b0 Jul 4, 2023
@jacobtylerwalls
Copy link
Member

Duplicate of #2148, the two issues already linked.

@jacobtylerwalls jacobtylerwalls closed this as not planned Won't fix, can't repro, duplicate, stale Sep 23, 2023
@jacobtylerwalls jacobtylerwalls removed this from the 3.0.0b0 milestone Sep 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Maintenance Discussion or action around maintaining astroid or the dev workflow
Projects
None yet
Development

No branches or pull requests

4 participants