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

Adopting S7 OOP #6352

Open
teunbrand opened this issue Mar 4, 2025 · 1 comment
Open

Adopting S7 OOP #6352

teunbrand opened this issue Mar 4, 2025 · 1 comment
Labels
API change 😈 breaking change ☠️ API change likely to affect existing code internals 🔎

Comments

@teunbrand
Copy link
Collaborator

teunbrand commented Mar 4, 2025

This issue is to put to writing an idea that Thomas and I have discussed off-GitHub.

There are some issues with the S3 OOP system that cannot be resolved in a satisfying way, notably #3986, #5536 and some additional plans that'd require double dispatch. The solution I'd like to propose is to use S7 OOP instead. This has been attempted before in #5537, which we put on hold until S7 was more mature. I think that might be the case.

We can expect some reverse dependency failures when we adopt S7 and it may make sense to bump the major version due to this. Possibly, we can mitigate a series of failures by implementing $-methods that are list-like.

@teunbrand teunbrand added internals 🔎 API change 😈 breaking change ☠️ API change likely to affect existing code labels Mar 4, 2025
@teunbrand
Copy link
Collaborator Author

Listing what systems/classes might adopt S7:

  • The ggplot class
  • The theme class
  • The element classes
  • The uneval class (from aes())
  • The labels class (from labs())

Please feel free to comment more that I might've forgotten.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API change 😈 breaking change ☠️ API change likely to affect existing code internals 🔎
Projects
None yet
Development

No branches or pull requests

1 participant