Installable package

Source file package

This is the sequence of step used to produce an installable package:

  1. Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz):

    $ make sdist
    
  2. Do a test install:

    $ cd /tmp
    $ virtualenv venv
    $ source venv/bin/activate
    $ pip install <path of the Git repository>/dist/mayan-edms-x.y.z.tar.gz
    $ mayan-edms.py initialsetup
    $ mayan-edms.py preparestatic
    $ mayan-edms.py runserver
    

Wheel package

  1. Install the development requirements:

    $ pip install -r requirements/development.txt
    
  2. Create wheel package using the makefile:

    $ make wheel
    
  3. Do a test install:

    $ cd /tmp
    $ virtualenv venv
    $ source venv/bin/activate
    $ pip install <path of the Git repository>/dist/mayan_edms-x.y.z-py2-none-any.whl
    $ mayan-edms.py initialsetup
    $ mayan-edms.py preparestatic
    $ mayan-edms.py runserver
    

Version numbering

Mayan EDMS uses the Semantic Versioning (http://semver.org/) method to choose version numbers along with Python’s PEP-0440 (https://www.python.org/dev/peps/pep-0440/) to format them.

X.YaN # Alpha release X.YbN # Beta release X.YrcN # Release Candidate X.Y # Final release

Release checklist

  1. Check for missing migrations:

    make check-missing-migrations
    
  2. Synchronize translations:

    make translations-pull
    
  3. Compile translations:

    make translations-compile
    
  4. Update changelog.

  5. Write release notes.

  6. Scan the code with flake8 for simple style warnings.

  7. Check README.rst format with:

    python setup.py check -r -s
    

    or with:

    make check-readme
    
  8. Bump version in mayan/__init__.py and docker/rootfs/version:

    make increase-version PART=<major, minor or micro>
    
  9. Update requirements version in setup.py using:

    make generate-setup
    
  10. Commit as version bump.

  11. Build source package and test:

    make test-sdist-via-docker-ubuntu
    
  12. Build wheel package and test:

    make test-wheel-via-docker-ubuntu
    
  13. Tag version:

    git tag -a vX.Y.Z -m "Version X.Y.Z"
    
  14. Generate set setup.py again to update the build number:

    make generate-setup
    
  15. Commit the new setup.py file as “Update build number”.

  16. Release the version using one of the two following methods: GitLab CI or manual

Release using GitLab CI using the makefile

  1. Use of the GitLab makefile targets: gitlab-release-all, gitlab-release-docker, gitlab-release-documentation, gitlab-release-python.

Release using GitLab CI manually

  1. Push the current brach:

    git push
    
  2. Push the new tags:

    git push --tags
    
  3. Delete the corresponding releases/ branch:

    git push origin :releases/<branch>
    
  4. Push the current branch to the corresponding origin releases/ branch:

    git push origin <local branch>:releases/<branch>
    

Manual release

  1. Build and upload a test release:

    make release-test-via-docker-ubuntu
    
  2. Build and upload a final release:

    make release-via-docker-ubuntu
    

Other steps

  1. Update the contrib/scripts/install/docker.sh values
  2. Upload contrib/scripts/install/docker.sh to https://get.mayan-edms.com