Use the fork & pull model to contribute to the Magento Functional Testing Framework (MFTF) code base. This contribution model has contributors maintaining their own copy of the forked code base (which can be easily synced with the main copy). The forked repository is then used to submit a request to the base repository to pull a set of changes (pull request).
Contributions can take the form of new components or features, changes to existing features, tests, documentation (such as developer guides, user guides, examples, or specifications), bug fixes, optimizations, or just good suggestions.
The MFTF development team reviews all issues and contributions submitted by the community of developers in a "first-in, first-out" basis. During the review we might require clarifications from the contributor. If there is no response from the contributor for two weeks, the issue is closed.
Often when the MFTF team works on reviewing the suggested changes, we will add a label to the issue to indicate to our internal team certain information, like status or who is working the issue. If you’re ever curious what the different labels mean, see the table below for an explanation of each one.
Refer to Magento Contributor Agreement for detailed information about the License Agreement. All contributors are required to submit a click-through form to agree to the terms.
PRs that include new logic or new features must be submitted along with:
For large features or changes, open an issue to discuss first. This may prevent duplicate or unnecessary effort, and it may gain you some additional contributors.
To report a bug, open an issue, and follow guidelines about bugfix issues.
All automated tests must pass successfully (all builds on Travis CI must be green).
To fork a repository on Github, do the following:
Learn more in the Fork a repo GitHub article.
As community and Magento writers’ changes are merged to the repository, your fork becomes outdated and pull requests might result in conflicts. To see if your fork is outdated, open the fork page in GitHub and if at the top displays the following message:
This branch is NUMBER commits behind magento:develop.
It means your fork must be updated.
There are two ways to update your fork. The typical way is discussed in the Syncing a fork GitHub article. Make sure to update from the correct branch!
The other way is to create a reverse pull request from the original repository. Though this method has the downside of inserting unnecessary information into fork commit history.
First, check the existing PRs and make sure you are not duplicating others’ work!
To create a pull request do the following:
Learn more in the Creating a pull request GitHub article.
After submitting your PR, you can head over to the repository’s Pull Requests panel to see your PR along with the others. Your PR undergoes automated testing, and if it passes, the core team considers it for inclusion in the Magento Functional Testing Framework codebase. If some tests fail, make the corresponding corrections in your code.
If you find a bug in Magento Functional Testing Framework code, you can report it by creating an issue in the Magento Functional Testing Framework repository.
Before creating an issue, do the following:
To add an issue:
Learn more in the Creating an issue GitHub article.
Refer to the tables with descriptions of each label below. The labels reflect the status, impact, or which team is working on it.
Label | Description |
---|---|
accept | The pull request has been accepted to be merged into mainline code. |
reject | The pull request has been rejected. The most common cases are when the issue has already been fixed in another code contribution, or there is an issue with the code contribution. |
needsUpdate | We need more information from the PR author to properly prioritize and process the pull request. |
Label | Description |
---|---|
acknowledged | We validated the issue and created an internal ticket. |
needsUpdate | We need more information from the PR author to properly prioritize and process the issue. |
cannot reproduce | We do not have enough details from the issue description to reproduce the issue. |
non-issue | We don't think that this is an issue according to the provided information. |
Label | Description |
---|---|
PROD | Affects the Product team (mostly feature requests or business logic change). |
DOC | Affects Documentation domain. |
TECH | Affects Architect Group (mostly to make decisions around technology changes). |
Label | Description |
---|---|
bugfix | The issue or pull request is about fixing a bug. |
enhancement | The issue or pull request that makes the MFTF even more awesome (for example new features, optimization, refactoring, etc). |