Skip to content

Deprecation for ggproto classes #5962

Open
@teunbrand

Description

@teunbrand

This now has come up in #3798 and #5961 and the gist of it is that we have a procedure for managing lifecycles of functions, but we don't have an equivalent for ggproto classes.

We don't use GeomCol and maybe soon GeomErrorbarh anymore in ggplot2, but they are still in use by extensions. We can see for example that GeomCol is used in {ichimoku}, {entropart}, {ggiraph}, {ggside}. or that GeomErrorbarh is used in {errors} and {ggiraph}. Having a deprecation mechanism in place allows us to discourage the use of these classes while not breaking other packages.

Generally speaking, I think there are 3 ways in which ggproto classes are used in other packages::

  1. They may be subclassed in an extension class.
  2. They may be provided as arguments in e.g. layer(geom = GeomCol, ...).
  3. They're used for accessing fields, .e.g. GeomCol$default_aes.

The question of this issue is whether we can find a satisfactory way to deprecate these old classes. I think it would be relatively straightforward to throw deprecation messages in cases (1) and (2) via either ggproto() or check_subclass(). I'm not sure (3) can be caught in an easy fashion.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions