From cd0505c2e2ae2c7d95ce841587255c0f2b60a311 Mon Sep 17 00:00:00 2001
From: fspreck <f.spreckelsen@indiscale.com>
Date: Tue, 11 Oct 2022 15:29:07 +0200
Subject: [PATCH] REL: Add release documentation files

---
 README.md             |  4 ++--
 RELEASE_GUIDELINES.md | 47 +++++++++++++++++++++++++++++++++++++++++++
 release.sh            |  4 ++++
 setup.cfg             |  2 +-
 4 files changed, 54 insertions(+), 3 deletions(-)
 create mode 100644 RELEASE_GUIDELINES.md
 create mode 100644 release.sh

diff --git a/README.md b/README.md
index 8576e5c9..b97fc877 100644
--- a/README.md
+++ b/README.md
@@ -38,9 +38,9 @@ The original authors of this package are:
 
 # License
 
-Copyright (C) 2021 Research Group Biomedical Physics, Max Planck Institute for
+Copyright (C) 2021-2022 Research Group Biomedical Physics, Max Planck Institute for
 Dynamics and Self-Organization Göttingen.
-Copyright (C) 2021 IndiScale GmbH
+Copyright (C) 2021-2022 IndiScale GmbH
 
 All files in this repository are licensed under a [GNU Affero General Public
 License](LICENCE) (version 3 or later).
diff --git a/RELEASE_GUIDELINES.md b/RELEASE_GUIDELINES.md
new file mode 100644
index 00000000..d6bc2c9a
--- /dev/null
+++ b/RELEASE_GUIDELINES.md
@@ -0,0 +1,47 @@
+# Release Guidelines for the CaosDB Python Client Library
+
+This document specifies release guidelines in addition to the general release
+guidelines of the CaosDB Project
+([RELEASE_GUIDELINES.md](https://gitlab.com/caosdb/caosdb/blob/dev/RELEASE_GUIDELINES.md))
+
+## General Prerequisites
+
+* All tests are passing.
+* FEATURES.md is up-to-date and a public API is being declared in that document.
+* CHANGELOG.md is up-to-date.
+* dependencies in `setup.cfg` are up-to-date.
+
+## Steps
+
+1. Create a release branch from the dev branch. This prevents further changes
+   to the code base and a never ending release process. Naming: `release-<VERSION>`
+
+2. Update CHANGELOG.md
+
+3. Check all general prerequisites.
+
+4. Update the version:
+   - `version` variables in `src/doc/conf.py`
+   - Version in [setup.cfg](./setup.cfg): Check the `MAJOR`, `MINOR`, `MICRO`, `PRE` variables and set
+     `ISRELEASED` to `True`. Use the possibility to issue pre-release versions for testing.
+
+5. Merge the release branch into the main branch.
+
+6. Tag the latest commit of the main branch with `v<VERSION>`.
+
+7. Delete the release branch.
+
+8. Remove possibly existing `./dist` directory with old release.
+
+9. Publish the release by executing `./release.sh` with uploads the caosdb
+   module to the Python Package Index [pypi.org](https://pypi.org).
+
+10. Merge the main branch back into the dev branch.
+
+11. After the merge of main to dev, start a new development version by
+    increasing at least the micro version in [setup.cfg](./setup.cfg) and
+    preparing CHANGELOG.md.
+
+12. Create releases on gitlab.com and gitlab.indiscale.com that contain (at
+    least) the most recent section of the CHANGELOG as the description and link
+    to the PyPi package.
diff --git a/release.sh b/release.sh
new file mode 100644
index 00000000..1af097f0
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+rm -rf dist/ build/ .eggs/
+python setup.py sdist bdist_wheel
+python -m twine upload -s dist/*
diff --git a/setup.cfg b/setup.cfg
index 7c3f0cbb..05e278a5 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = caoscrawler
-version = 0.1
+version = 0.1.0
 author = Alexander Schlemmer
 author_email = alexander.schlemmer@ds.mpg.de
 description = A new crawler for caosdb
-- 
GitLab