CrefoPay Payment Plugin for Magento 2
Development Process Description
This Plugin is under current development. To reach a permanently high quality standard we defined a development, testing and release cycle based on the git flow pattern. Here you can get further information to get a deeper understanding of git flow and it's idea.
The development tasks under git flow are separated into different types:
The master branch always represents the latest stable version of the plugin.
The develop branch always holds a functional version with the newest features but might have some undetected bugs, because of it's might not be testet by the CrefoPay QA.
This is an internal branch that should not be used by any merchant. The branch maps the crefopay communication URLs to the CrefoPay QA automated testsystems:
Bugs are categorized in different stages based on his priority:
- Blocker - Checkout affected: This kind of bugs will be fixed as soon as possible and will lead into a hotfix
- Critical - Main funtionality affected: This kind of bug will be fixed as soon as possible but might not directly lead into a hotfix
- Regular - Minor functionality and/or special szenario: This kind of bug will also be fixed as soon as possible but might stand behind other fixes with a higher priority.
A hotfix will appear everytime a critical bug has been reported.
A feature is a new or expanded functionality of the plugin. The ability to create a capture over the CrefoPay API based on the invoice creation in Magento2 is a feature if the plugin.
Features will normally not being pushed to the current version as a stand alone, but at least one feature together with one or more other features and (optional) together with some hotfixes will be called release. Every release will get his own version and can be identified based on this versioning.
The versioning for any CrefoPay plugin or module in general is structured in three different grades:
The major release will only be increased when some main functionality has been changed. When you find a major version update, we strongly recommend to get in touch with the CrefoPay customer service team before you start updating your module.
A minor release normally contains some new features.
A sub version normally comes up with a hotfix or with some very minor changes; for example some error handling within the code that makes an existing functionality more stable.
The normal release cycle is one release per month. The Release date should always be the first half of the first week of a month. If there is a hotfix or feature release depends on the issues and the tasks of the current cycle.
Every release and it's features will be documented within the plugins CHANGENLOG.md and it will be generated a tag for every version that has been pushed to master.
Every release has to pass a predefined set of stages to keep and guarantee the high quality of the plugin. This stages are:
Develop -> Acceptance -> Master
Every completed feature can be pushed directly into the develop branch by follow the git flow guidelines. A feature is complete when it's own functionality has been implemented and tested. When a release and it's features are closed and it should be released into master, it will be pushed acceptance. In this context closed means that every single feature or hotfix has been pushed to develop branch.
After merging the develop into acceptance branch, the CrefoPay QA department will be informed and they will start their automated and some manual testing.
When QA have finished testing and haven't found any issues, the acceptance/develop branch will be pushed to master. If not already updated at this point, the CHANGELOG.md will be updated and a new tag will announce the new version.