-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
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
added a maintenance document #6412
Conversation
I've probably forgot some things, feel free to list them here. ping @symfony/mergers |
What about refactorings which don't provide significant performance improvements? Example: https://github.com/symfony/symfony/pull/18227/files |
Another use case: removal of legacy code which was left over by mistake. Example: https://github.com/symfony/symfony/pull/18299/files |
Another use case: changes related to design. I'd like to redesign the exception page, the Symfony Requirements check webpage, etc. to match the new design of the toolbar, profiler, welcome page, etc. Would that be allowed? |
Refactorings: I would say no |
Another one: adding tests for untested features present in old branches. |
A question: changing the visibility of properties/methods is considered a new feature? Example: adding a getter for one property: https://github.com/symfony/symfony/pull/18143/files |
* **Exception messages**: Exception messages must not be changed as some | ||
automated systems might rely on them (even if this is not recommended); | ||
|
||
* **Adding new Composer dependencies**; |
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.
So the refactoring with polyfill would not be tolerated in maintainance anymore.
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.
Yes, and in fact we introduced most polyfills in 2.8. The ones added in 2.3/2.7 were for security fixes and bug fixes only (which doesn't mean we were right regarding this doc :) )
Another question: where does "Upgrading ICU data" fit? It was merged on 2.3: symfony/symfony#18019 |
it otherwise; | ||
|
||
* **Support for external platforms**: Adding support for new platforms (like | ||
Google App Engine) cannot be done in patch versions; |
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.
symfony/symfony#18271 would violate this as well in retrospect.
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.
which is precisely why we create this document
Keep in mind that I'm not documenting the current way as it is inconsistent at times. That's why I want to write some rules for the future (what we've done in the past is irrelevant but useful to draw the line in the sand). |
|
||
* **Coding standard**: Coding standard fixes are not recommended but can be | ||
accepted for consistency with the existing code base, if they are not too | ||
invasive, and if merging them on master would lead to complex branch merging. |
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.
"would not lead" ?
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.
I think this should also state unused variables: symfony/symfony#18293 which should be applied to the lowest possible maintained branch where applicable
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.
"removing unused variables" is a coding standard fix. I don't think it's needed to state it explicitly
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.
fixed typo
both are new features |
I would accept this in maintenance branches, as it helps preventing regressions |
Like symfony/symfony#12425 (comment) for example ? |
During the lifetime of a minor version, new releases (patch versions) are | ||
published on a monthly basis. This document describes the boundaries of | ||
acceptable changes. | ||
|
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.
I suggest adding a general statement like:
This policy has one main goal: allow Symfony to keep getting better over time while avoiding the risk of breaking an existing and working application.
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.
I don't think it adds much value. It also conveys the idea that as long as risk is low, new features could be added.
@fabpot We need to add a reference to the new file to |
* **Translations**: Translation updates and additions are accepted; | ||
|
||
* **Version updates for Composer dependencies**: Changing the minimal version | ||
of a dependency is possible, bumping to a major one is not; |
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.
bumping to a major one is not;
=> bumping to a major one or increasing php requirements is not;
?
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.
added
I propose also something like:
|
published on a monthly basis. This document describes the boundaries of | ||
acceptable changes. | ||
|
||
**Bug fixes** are accepted under the following conditions: |
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 may be unclear for a newbie. When someone add a PR, what makes it a bug fix? Does Bug fixes have a special meaning in the context of Symfony? Is it mandatory that a bug fix refer to an existing ticket?
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.
@alexislefebvre bug fixes can be merged in patch versions. This means that now 3.0.0 was released, the 3.0 branch can only have bug/security fixes. New features must only be merged in the unstable branch (master/3.1 at the moment).
|
||
* The change does not break valid unit tests; | ||
* New unit tests cover the bug fix; | ||
* The current buggy behavior is not widely used as a "feature". |
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.
lists should not be indented in reSt (it causes blockquotes)
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.
fixed
What about using a definition list instead of the unordered lists? **Performance improvements**
Performance improvements should [...] |
@wouterj because this is really a list. |
016a49d
to
201de67
Compare
I've taken into account all comments, should be better now. |
@symfony/mergers can you please make a decision on this PR? From a doc point of view, it's ready to be merged but I'm not sure if this is already accepted by the core team. |
I've re-read it again and I'm 👍 |
I would merge this as we can always tweak the rules easily if we think they need to be refined based on our experience. Looks good to me as version 1 |
Alright, let's merge this now then. Thanks for writing and updating this PR Fabien! |
This PR was merged into the 2.3 branch. Discussion ---------- added a maintenance document As the Symfony core team grows, more people merge PRs in old branches and I think we need to make it very clear what we can accept in versions under maintenance. This new reference document tries to list all possible cases. Commits ------- 201de67 added a maintenance document
As the Symfony core team grows, more people merge PRs in old branches and I think we need to make it very clear what we can accept in versions under maintenance. This new reference document tries to list all possible cases.