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

added a maintenance document #6412

Merged
merged 1 commit into from
May 27, 2016
Merged

Conversation

fabpot
Copy link
Member

@fabpot fabpot commented Mar 30, 2016

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.

@fabpot
Copy link
Member Author

fabpot commented Mar 30, 2016

I've probably forgot some things, feel free to list them here. ping @symfony/mergers

@javiereguiluz
Copy link
Member

What about refactorings which don't provide significant performance improvements? Example: https://github.com/symfony/symfony/pull/18227/files

@javiereguiluz
Copy link
Member

Another use case: removal of legacy code which was left over by mistake. Example: https://github.com/symfony/symfony/pull/18299/files

@javiereguiluz
Copy link
Member

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?

@fabpot
Copy link
Member Author

fabpot commented Mar 30, 2016

@javiereguiluz

Refactorings: I would say no
Removal of legacy code: yes, that's a bug
Design fixes, yes, design changes, no

@javiereguiluz
Copy link
Member

Another one: adding tests for untested features present in old branches.

@javiereguiluz
Copy link
Member

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**;
Copy link
Contributor

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.

Copy link
Member

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 :) )

@javiereguiluz
Copy link
Member

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;
Copy link
Contributor

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.

Copy link
Member

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

@fabpot
Copy link
Member Author

fabpot commented Mar 30, 2016

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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"would not lead" ?

Copy link
Contributor

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

Copy link
Member

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

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed typo

@stof
Copy link
Member

stof commented Mar 30, 2016

A question: changing the visibility of properties/methods is considered a new feature? Example: adding a getter for one property

both are new features

@stof
Copy link
Member

stof commented Mar 30, 2016

Another one: adding tests for untested features present in old branches.

I would accept this in maintenance branches, as it helps preventing regressions

@HeahDude
Copy link
Contributor

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.

Copy link
Member

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.

Copy link
Member Author

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.

@xabbuh
Copy link
Member

xabbuh commented Mar 30, 2016

@fabpot We need to add a reference to the new file to /contributing/map.rst.inc too.

* **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;
Copy link
Contributor

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; ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

@nicolas-grekas
Copy link
Member

I propose also something like:

It is also designed to enable a continuous upgrade path that allows one to move forward with newest Symfony versions in the safest way. One should be able to move PHP versions, OS or Symfony versions almost independently. That's the reason why e.g. supporting latest PHP versions or OS features is considered as bug fixes.

published on a monthly basis. This document describes the boundaries of
acceptable changes.

**Bug fixes** are accepted under the following conditions:
Copy link
Contributor

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?

Copy link
Member

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".
Copy link
Member

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)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@wouterj
Copy link
Member

wouterj commented Apr 10, 2016

What about using a definition list instead of the unordered lists?

**Performance improvements**
    Performance improvements should [...]

@fabpot
Copy link
Member Author

fabpot commented Apr 10, 2016

@wouterj because this is really a list.

@fabpot fabpot force-pushed the patch-version-docs branch from 016a49d to 201de67 Compare April 10, 2016 17:23
@fabpot
Copy link
Member Author

fabpot commented Apr 10, 2016

I've taken into account all comments, should be better now.

@wouterj
Copy link
Member

wouterj commented May 21, 2016

@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.

@javiereguiluz
Copy link
Member

I've re-read it again and I'm 👍

@fabpot
Copy link
Member Author

fabpot commented May 23, 2016

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

@wouterj
Copy link
Member

wouterj commented May 27, 2016

Alright, let's merge this now then. Thanks for writing and updating this PR Fabien!

@wouterj wouterj merged commit 201de67 into symfony:2.3 May 27, 2016
wouterj added a commit that referenced this pull request May 27, 2016
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.