Installable package
Source file package
This is the sequence of step used to produce an installable package:
Generate the packaged version (will produce dist/mayan-edms-x.y.z.tar.gz):
$ make sdist
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 common_initial_setup $ mayan-edms.py runserver
Wheel package
Install the development requirements:
$ pip install -r requirements/development.txt
Create wheel package using the makefile:
$ make wheel
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 common_initial_setup $ 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
Check for missing
__init__.py
modules:make check-missing-inits
Update the
config.env
file valuesDJANGO_SERIES
,DOCKER_IMAGE_MAYAN_TAG
.Copy the
config.env
values:make copy-config-env
Update and commit the Docker Compose file:
make docker-docker-compose-update
Run the system checks:
./manage.py check
Update and commit the distribution
.gitlab-ci.yml
file:make gitlab-ci-update
Scan the code with flake8 for simple style warnings:
flake8
Run all tests:
make test-all
Check for missing migrations:
make check-missing-migrations
Update changelog.
Write release notes.
Check README.rst format with:
python setup.py check -r -s
or with:
make check-readme
Synchronize translations:
make translations-all
Bump version in
mayan/__init__.py
anddocker/rootfs/version
:make increase-version PART=<major, minor or micro>
Commit as version bump.
git commit -s -m "Bump version to ..."
Tag version:
git tag -a vX.Y.Z -m "Version X.Y.Z"
Generate set
setup.py
again to update the build number:make generate-setup
Commit the new
setup.py
file as “Update build number”.Release the version using one of the two following methods: GitLab CI or manual
Release using GitLab CI using the makefile
Use of the GitLab makefile targets:
gitlab-ci-release-all
,gitlab-ci-release-all-minor
,gitlab-ci-release-docker-minor
,gitlab-ci-release-python-minor
,gitlab-ci-release-docker
,gitlab-ci-release-documentation
,gitlab-ci-release-python
.
Release using GitLab CI manually
Push the current branch:
git push
Push the new tags:
git push --tags
Delete the corresponding
releases/
branch:git push origin :releases/<branch>
Push the current branch to the corresponding origin
releases/
branch:git push origin <local branch>:releases/<branch>
Manual release
Build and upload a test release:
make release-test-via-docker-ubuntu
Build and upload a final release:
make release-via-docker-ubuntu
Other steps
Update the contrib/scripts/install/docker.sh values
Upload contrib/scripts/install/docker.sh to https://get.mayan-edms.com