Skip to content

Commit 13ff147

Browse files
authored
Merge pull request #3790 from samsonasik/add-bc-break-policy
Add BC Break Policy
2 parents 92dc962 + 4e840d2 commit 13ff147

1 file changed

Lines changed: 24 additions & 15 deletions

File tree

CONTRIBUTING.md

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
## Contributions
55

6-
We expect all contributions to conform to our [style guide](https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/styleguide.rst), be commented (inside the PHP source files),
7-
be documented (in the [user guide](https://codeigniter4.github.io/userguide/)), and unit tested (in the [test folder](https://github.com/codeigniter4/CodeIgniter4/tree/develop/tests)).
6+
We expect all contributions to conform to our [style guide](https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/styleguide.rst), be commented (inside the PHP source files),
7+
be documented (in the [user guide](https://codeigniter4.github.io/userguide/)), and unit tested (in the [test folder](https://github.com/codeigniter4/CodeIgniter4/tree/develop/tests)).
88
There is a [Contributing to CodeIgniter](./contributing/README.rst) section in the repository which describes the contribution process; this page is an overview.
99

10-
Note, we expect all code changes or bug-fixes to be accompanied by one or more tests added to our test suite to prove the code works. If pull requests are not accompanied by relevant tests, they will likely be closed. Since we are a team of volunteers, we don't have any more time to work on the framework than you do. Please make it as painless for your contributions to be included as possible. If you need help with getting tests running on your local machines, ask for help on the forums. We would be happy to help out.
10+
Note, we expect all code changes or bug-fixes to be accompanied by one or more tests added to our test suite to prove the code works. If pull requests are not accompanied by relevant tests, they will likely be closed. Since we are a team of volunteers, we don't have any more time to work on the framework than you do. Please make it as painless for your contributions to be included as possible. If you need help with getting tests running on your local machines, ask for help on the forums. We would be happy to help out.
1111

1212
The [Open Source Guide](https://opensource.guide/) is a good first read for those new to contributing to open source!
1313
## Issues
@@ -42,18 +42,18 @@ CodeIgniter4 requires [PHP 7.2](https://php.net/releases/7_2_0.php).
4242

4343
### Branching
4444

45-
CodeIgniter4 uses the [Git-Flow](http://nvie.com/posts/a-successful-git-branching-model/) branching model which requires all
46-
Pull Requests to be sent to the "develop" branch; this is where the next planned version will be developed.
47-
The "master" branch will always contain the latest stable version and is kept clean so a "hotfix" (e.g. an
48-
emergency security patch) can be applied to the "master" branch to create a new version, without worrying
49-
about other features holding it up. For this reason, all commits need to be made to the "develop" branch,
50-
and any sent to the "master" branch will be closed automatically. If you have multiple changes to submit,
45+
CodeIgniter4 uses the [Git-Flow](http://nvie.com/posts/a-successful-git-branching-model/) branching model which requires all
46+
Pull Requests to be sent to the "develop" branch; this is where the next planned version will be developed.
47+
The "master" branch will always contain the latest stable version and is kept clean so a "hotfix" (e.g. an
48+
emergency security patch) can be applied to the "master" branch to create a new version, without worrying
49+
about other features holding it up. For this reason, all commits need to be made to the "develop" branch,
50+
and any sent to the "master" branch will be closed automatically. If you have multiple changes to submit,
5151
please place all changes into their own branch on your fork.
5252

53-
**One thing at a time:** A pull request should only contain one change. That does not mean only one commit,
54-
but one change - however many commits it took. The reason for this is that if you change X and Y,
55-
but send a pull request for both at the same time, we might really want X but disagree with Y,
56-
meaning we cannot merge the request. Using the Git-Flow branching model you can create new
53+
**One thing at a time:** A pull request should only contain one change. That does not mean only one commit,
54+
but one change - however many commits it took. The reason for this is that if you change X and Y,
55+
but send a pull request for both at the same time, we might really want X but disagree with Y,
56+
meaning we cannot merge the request. Using the Git-Flow branching model you can create new
5757
branches for both of these features and send two requests.
5858

5959
A reminder: **please use separate branches for each of your PRs** - it will make it easier for you to keep changes separate from
@@ -63,6 +63,15 @@ each other and from whatever else you are doing with your repository!
6363

6464
You must [GPG-sign](./contributing/signing.rst) your work, certifying that you either wrote the work or otherwise have the right to pass it on to an open-source project. This is *not* just a "signed-off-by" commit, but instead, a digitally signed one.
6565

66+
### Breaking Changes
67+
68+
In general, any change that would disrupt existing uses of the framework is considered a "breaking change" and will not be favorably considered. A few specific examples to pay attention to:
69+
70+
1. New classes/properties/constants in `system` are acceptable, but anything in the `app` directory that will be used in `system` should be backwards-compatible.
71+
2. Any changes to non-private methods must be backwards-compatible with the original definition.
72+
3. Deleting non-private properties or methods without prior deprecation notices is frowned upon and will likely be closed.
73+
4. Deleting or renaming public classes and interfaces, as well as those not marked as `@internal`, without prior deprecation notices or not providing fallback solutions will also not be favorably considered.
74+
6675
## How-to Guide
6776

6877
The best way to contribute is to fork the CodeIgniter4 repository, and "clone" that to your development area. That sounds like some jargon, but "forking" on GitHub means "making a copy of that repo to your account" and "cloning" means "copying that code to your environment so you can work on it".
@@ -96,7 +105,7 @@ Your fork is now up to date. This should be done regularly and, at the least, be
96105
## Translations Installation
97106

98107
If you wish to contribute to the system message translations,
99-
then fork and clone the [translations repository](https://github.com/codeigniter4/translations)
100-
separately from the codebase.
108+
then fork and clone the [translations repository](https://github.com/codeigniter4/translations)
109+
separately from the codebase.
101110

102111
These are two independent repositories!

0 commit comments

Comments
 (0)