Skip to content

Practical steps towards Shapely 2.0 #962

@jorisvandenbossche

Description

@jorisvandenbossche

TODO before final release:

  • update list of contributors again

TODO items for the Shapely / PyGEOS merge:


Opening an issue to discuss the more practical aspects of the work on Shapely 2.0 (shapely/shapely-rfc#1). Changes needed in Shapely 1.8 (deprecations, etc) related to this are tracked in #932

The general route I am now trying out is to, iteratively, refactor the shapely code in-place. But @caspervdw mentioned at #782 also the option of starting "fresh" (for the code, not for the existing tests and things like that).

For both ways, the work can be done in a separate branch, and then using the normal PR workflow (with PRs targetting that branch). This branch has already been created: https://github.com/Toblerity/Shapely/tree/shapely-2.0 (but is already a bit behind master).
First question: how to keep this branch updated while master is still for 1.8? I would like to propose to initially rebase shapely-2.0 regularly on master. In an initial phase where there is still a lot of activity for 1.8 on master and only few people contribute to the shapely-2.0 branch, this seems easier / cleaner (there are eg also still some things to be merged in master on which we depend for shapely 2.0). Once the development focus shifts more to shapely-2.0, we can use the normal merging strategy already being used for the different branches right now. Does that sound good?
(I can volunteer to do the rebases / fix conflicts :-))

At some point we should probably move the source code of PyGEOS into Shapely (I would propose to do this in its entirety, and keeping its commit history (for proper attribution), and then clean-up / integrate in subsequent steps).
But initially, I am actually already testing some things (eg the Geometry subclasses) with using pygeos as an external package.

cc @sgillies @mwtoews @tomplex @caspervdw


Practical steps (to further fill in while we go, but to keep track of the items we already have/know):

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions