-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
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
Style: Purge .compat.inc
files
#99517
Conversation
These files allow for clearer separation of compatibility code.
They are in the headers only because it's the only way. |
Ehh, not entirely. We've seen other headers use ...Shit, I might've talked myself into this |
Let me put a blocker here for now. This needs to be discussed with maintainers before doing more significant work there. This kind of change shouldn't be done on a whim for personal taste reasons. There's a reason why we designed a system with separate files for compat code. Edit: I dug up through the history for this which wasn't obvious to find. This was designed in #76577, you'll need to expand some of the resolved discussions to see it. I'm pretty sure there was more discussion spread across Rocket.chat and some issues, but yeah at this point tracking it down is a bit of investigative journalism work :P But in short:
See e.g. these examples from this PR:
Adding 123 lines of code to
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This goes against our agreed guidelines with no good objective reason.
You know what, that's entirely reasonable. I might not entirely agree, but their reason for existing being laid out makes a lot of things "click". Closing. |
I very, very strongly dislike the use of
.compat.inc
files. They exist as files dedicated to a handful of function implementations that aren't even wholly separated because they have to be initially declared in header files. From where I sit, it makes much more sense to handle these functions in their respective implementation file, as we're already doing in their headers. I don't have any concrete or objective resources to back this up, it's really as simple as me not liking them to the extent that I made a PR entirely out of spite