Changes between Version 4 and Version 5 of DRM4G/Development


Ignore:
Timestamp:
Dec 7, 2016 2:37:13 PM (5 years ago)
Author:
minondoa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DRM4G/Development

    v4 v5  
    105105In this section you'll find the guidelines of how we tackle the development process.
    106106
    107 As mentioned above, to us, our ''central'' repository will be a private one hosted by '''''!GitBucket''''', but in addition we have a second public one hosted in ''!GitHub'' to make the DRM4G accessible to anyone that might want to contribute to the project.
     107As mentioned above, to us, our ''central'' repository will be a private one hosted by '''''!GitBucket''''', but in addition we have a second public one hosted in '''''!GitHub''''' to make the DRM4G accessible to anyone that might want to contribute to the project.
    108108
    109109Both this two repositories have at least two branches, the '''master''' and the '''develop''' branches, that must be synchronized at all times.
     110* Commits in the '''master''' branch represent all the stable versions of the DRM4G. This means that merges to this branch are only done when ready to publish a release.
    110111
    111 Commits in the '''master''' branch represent all the stable versions of the DRM4G. This means that merges to this branch are only done when ready to publish a release.
     112* The '''develop''' branch reflects the whole evolution of the project. It shows all of the new features and bug fixes that have been included. This is the main branch where all of the work will be done.
    112113
    113 The '''develop''' branch reflects the whole evolution of the project. It shows all of the new features and bug fixes that have been included. This is the main branch where all of the work will be done.
    114114
     115=== Adding new features ===
     116
     117Each time some big change or a new feature is going to be implemented, a new branch has to be created from the '''develop''' branch
    115118
    116119
     
    120123Once all the new changes for the next release have been added to the '''develop''' branch and it is at a stable point, it's time to publish a new release.
    121124
    122 From this point on, all the following changes done on this branch will be for the following release. So, to avoid halting the development of the project a new branch is created indicating the new release number.
    123 * The nomenclature will be a string followed by the new version in numbers in the form of '''__DRM4G-MAJOR.MINOR.PATCH__''' and will have its number increment following this guidelines:
    124  *   '''MAJOR''' version when you add some new functionality or you make incompatible API changes,
     125From this point on, all the following changes done on the '''develop''' branch will be for the following release. So, to avoid halting the development of the project a new '''__release branch__''' is created indicating the new release number.
     126* The nomenclature for all '''release branches''' will be a string followed by the new version in numbers in the form of '''__DRM4G-MAJOR.MINOR.PATCH__''' and they will have their numbers increase following these guidelines:
     127 *   '''MAJOR''' version when you add some new functionality or you make incompatible API changes
    125128 *   '''MINOR''' version when you improve some part of the DRM4G's functionality in a backwards-compatible manner
    126129 *   '''PATCH''' version when you make backwards-compatible bug fixes.
     
    158161
    159162
     163=== Hotfixes ===
     164
     165As an exception to the normal flow of the development, in the cases when an important error is discovered only after the release has been published, a branch can be created from the '''master''' to fix it.
     166 * This is done like this as to not disrupt the teams working on the '''develop''' branch.
     167 * The nomenclature followed would be '''__hotfix-MAJOR.MINOR.PATCH__'''
     168  * The version number would only have to bump up by one the '''PATCH''' version.
     169  * All of the files would have to have their version numbers modified.
     170
     171After the problem was solved, you'd have to follow the instructions [wiki:DRM4G/Development#Gettingreadyforarelease to publish a new release], except considering the '''hotfix branch''' to be the '''release branch'''.
     172* That means that a new release branch shouldn't be created. But this branch would have to be merged back into the '''master''' and the '''develop''' branch following the instructions set in the previous section.
     173
     174If it turns out to be a __critical error__ and not something fixable in a few hours, __the release would have to be retracted__ until the issue got resolved.
     175
     176
    160177
    161178[[br]]
     
    170187 * Run the command `python setup.py sdist upload` [[br]] ''or''
    171188 * Run the command `python setup.py sdist` and then upload the package though PyPI's user interface.
     189
     190At the end, the last step is to update the [wiki:DRM4G/ChangeLog realese wiki page] and the references in the section "[wiki:DRM4G#Newreleases New releases]" of the DRM4G's main wiki page.