From c311c26889e68c1bc8b426a6e94e4ac14e91d933 Mon Sep 17 00:00:00 2001
From: Brion Mario
Date: Sat, 6 Jul 2019 04:54:44 +0530
Subject: [PATCH 1/8] chore(vcs): ignore redis db :see_no_evil:
---
.gitignore | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.gitignore b/.gitignore
index 9cc9f05..60b75e4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,9 @@
# Ignoring shape predictor
app/data/classifiers/*.dat
+# redis dump db
+dump.rdb
+
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
From 1a56a4f1837491d14cf78c3b09abd70d630225b9 Mon Sep 17 00:00:00 2001
From: Brion Mario
Date: Sat, 6 Jul 2019 04:54:59 +0530
Subject: [PATCH 2/8] docs: update README :memo:
---
README.md | 31 ++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index cacf173..d965a0d 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,35 @@
-
+
-
RESTful API for the CSSI Platform
+ RESTful API for the CSSI Platform
-
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
# Getting Started
From 21f770aee5467102e12ab586943136058006c6ed Mon Sep 17 00:00:00 2001
From: Brion Mario
Date: Sat, 6 Jul 2019 05:20:09 +0530
Subject: [PATCH 3/8] chore(scripts): add release shell scripts
---
VERSION.txt | 1 +
scripts/release.sh | 37 ++++++++++++++
version.py | 124 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 162 insertions(+)
create mode 100644 VERSION.txt
create mode 100644 scripts/release.sh
create mode 100644 version.py
diff --git a/VERSION.txt b/VERSION.txt
new file mode 100644
index 0000000..9a4043a
--- /dev/null
+++ b/VERSION.txt
@@ -0,0 +1 @@
+0,1,0,alpha,1,0,0
\ No newline at end of file
diff --git a/scripts/release.sh b/scripts/release.sh
new file mode 100644
index 0000000..be64f57
--- /dev/null
+++ b/scripts/release.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+set -u -e -o pipefail
+
+# Used for production releases.
+# Args: release_type: ["major", "minor", "patch", "premajor", "preminor", "prepatch", "prenext", "dev", "post"]
+# release_level: ["alpha", "beta", "candidate", "final"]
+
+RELEASE_TYPE=$1
+RELEASE_LEVEL=$2
+
+echo "======================================================"
+echo " Releasing CSSI API for Production\n"
+echo " Release Type: $RELEASE_TYPE"
+echo " Release Level: $RELEASE_LEVEL"
+echo "======================================================"
+
+# Construct the new version by executing the `construct_release_version()` function
+# in `version.py` script inside the `cssi` package.
+NEW_VERSION=$(python -c "from version import construct_release_version; print(construct_release_version('$RELEASE_TYPE', '$RELEASE_LEVEL'))")
+
+# Tag the release
+git tag -a ${NEW_VERSION} -m "release: cut the v$NEW_VERSION release"
+git push origin ${NEW_VERSION}
+
+# Generate the changelog
+# Format -o = output file
+# -s = commit style {angular,atom,basic}
+# -t = template {angular, keepachangelog}
+# REPOSITORY = directory that contains the .git folder
+git-changelog -o CHANGELOG.md -s angular -t angular .
+
+# Stage and create a release commit with CHANGELOG.md and VERSION.txt files
+git add CHANGELOG.md cssi/VERSION.txt
+git commit -m "release: cut the $NEW_VERSION release :tada:"
+
+echo "Successfully released a new version of CSSI: v$NEW_VERSION"
diff --git a/version.py b/version.py
new file mode 100644
index 0000000..b6df04b
--- /dev/null
+++ b/version.py
@@ -0,0 +1,124 @@
+# PEP0440 compatible formatted version, see:
+# https://www.python.org/dev/peps/pep-0440/
+#
+# Final Releases:
+# X(.Y)*
+# Ex: 0.9
+# 0.9.1
+# 0.9.2
+# Pre-releases
+# X.YaN # Alpha release
+# X.YbN # Beta release
+# X.YrcN # Release Candidate
+# X.Y.Z # For bug-fix releases
+#
+# Post-releases:
+# X.YaN.postM # Post-release of an alpha release
+# X.YbN.postM # Post-release of a beta release
+# X.YrcN.postM # Post-release of a release candidate
+#
+# Developmental releases
+# X.YaN.devM # Developmental release of an alpha release
+# X.YbN.devM # Developmental release of a beta release
+# X.YrcN.devM # Developmental release of a release candidate
+# X.Y.postN.devM # Developmental release of a post-release
+
+import os
+
+VERSION_FILE_NAME = "VERSION.txt"
+VERSION_FILE_PATH = os.path.join(os.path.split(__file__)[0], VERSION_FILE_NAME)
+
+# Read the VERSION.txt file and extract the version number
+# Version number is saved in the following format
+# (major, minor, patch, level, pre_identifier, dev_identifier, post_identifier)
+try:
+ with open(VERSION_FILE_PATH) as vf:
+ _version = tuple(
+ vf.read().strip().split(","))
+ VERSION = (int(_version[0]), int(_version[1]), int(_version[2]), _version[3], int(
+ _version[4]), int(_version[5]), int(_version[6]))
+except IOError:
+ raise RuntimeError(
+ "Unable to read version file on path : {0}".format(VERSION_FILE_PATH))
+
+
+def _construct_version(major, minor, patch, level, pre_identifier, dev_identifier, post_identifier):
+ """Construct a PEP0440 compatible version number to be set to __version__"""
+ assert level in ["alpha", "beta", "candidate", "final"]
+
+ version = "{0}.{1}".format(major, minor)
+ if patch:
+ version += ".{0}".format(patch)
+
+ if level == "final":
+ if post_identifier:
+ version += ".{0}{1}".format("post", post_identifier)
+ if dev_identifier:
+ version += ".{0}{1}".format("dev", dev_identifier)
+ else:
+ level_short = {"alpha": "a", "beta": "b", "candidate": "rc"}[level]
+ version += "{0}{1}".format(level_short, pre_identifier)
+ if post_identifier:
+ version += ".{0}{1}".format("post", post_identifier)
+ if dev_identifier:
+ version += ".{0}{1}".format("dev", dev_identifier)
+ return version
+
+
+def construct_release_version(release_type, release_level="final"):
+ """Constructs the version number based on the release type and level."""
+ assert release_type in ["major", "minor", "patch", "premajor",
+ "preminor", "prepatch", "prenext", "dev", "post"]
+ assert release_level in ["alpha", "beta", "candidate", "final"]
+
+ # Extract the version sub parts from VERSION
+ major, minor, patch, level, pre_identifier, dev_identifier, post_identifier = VERSION
+
+ version = "{0}.{1}".format(major, minor)
+ if release_type == "major":
+ major += 1
+ version = (major, 0, 0, release_level, 0, 0, 0)
+ elif release_type == "minor":
+ minor += 1
+ version = (major, minor, 0, release_level, 0, 0, 0)
+ elif release_type == "patch":
+ patch += 1
+ version = (major, minor, patch, release_level, 0, 0, 0)
+ elif release_type == "premajor":
+ major += 1
+ version = (major, 0, 0, release_level, 1, 0, 0)
+ elif release_type == "preminor":
+ minor += 1
+ version = (major, minor, 0, release_level, 1, 0, 0)
+ elif release_type == "prepatch":
+ patch += 1
+ version = (major, minor, patch, release_level, 1, 0, 0)
+ elif release_type == "prenext":
+ pre_identifier += 1
+ version = (major, minor, patch, release_level, pre_identifier, 0, 0)
+ elif release_type == "dev":
+ dev_identifier += 1
+ version = (major, minor, patch, release_level,
+ pre_identifier, dev_identifier, post_identifier)
+ elif release_type == "post":
+ post_identifier += 1
+ version = (major, minor, patch, release_level,
+ pre_identifier, dev_identifier, post_identifier)
+
+ # Update the version file
+ update_version_file(version)
+
+ return _construct_version(*version)
+
+
+def update_version_file(version):
+ """Updates the version number in VERSION.txt file."""
+ try:
+ with open(VERSION_FILE_PATH, "w") as f:
+ f.write(','.join(str(v) for v in version))
+ except IOError:
+ raise RuntimeError(
+ "Unable to write to version file on path : {0}".format(VERSION_FILE_PATH))
+
+
+__version__ = _construct_version(*VERSION)
From 39c717c92309924c56602085d48e5439c2996aef Mon Sep 17 00:00:00 2001
From: Brion Mario
Date: Sat, 6 Jul 2019 05:25:07 +0530
Subject: [PATCH 4/8] refactor(docs): move image resources :truck:
---
docs/{logos => logo}/cssi-logo square-pixel.png | Bin
docs/{logos => logo}/cssi-logo-black.svg | 0
docs/{logos => logo}/cssi-logo-core.png | Bin
.../cssi-logo-dashboard-text-only-white.svg | 0
docs/{logos => logo}/cssi-logo-dashboard.png | Bin
docs/{logos => logo}/cssi-logo-dashboard.svg | 0
docs/{logos => logo}/cssi-logo-outline.svg | 0
docs/{logos => logo}/cssi-logo-rest-api.png | Bin
docs/{logos => logo}/cssi-logo-rest-api.svg | 0
docs/{logos => logo}/cssi-logo-square.png | Bin
docs/{logos => logo}/cssi-logo-square.svg | 0
docs/{logos => logo}/cssi-logo-text-only.png | Bin
docs/{logos => logo}/cssi-logo-white.svg | 0
docs/{logos => logo}/cssi-logo.png | Bin
docs/{logos => logo}/cssi-logo.svg | 0
docs/{ => readme-resources}/technologies/celery.png | Bin
.../technologies/flask-socketio.png | Bin
.../technologies/flask-sqlalchemy.png | Bin
docs/{ => readme-resources}/technologies/flask.svg | 0
.../technologies/marshmallow.png | Bin
docs/{ => readme-resources}/technologies/mysql.svg | 0
docs/{ => readme-resources}/technologies/python.svg | 0
docs/{ => readme-resources}/technologies/redis.png | Bin
23 files changed, 0 insertions(+), 0 deletions(-)
rename docs/{logos => logo}/cssi-logo square-pixel.png (100%)
rename docs/{logos => logo}/cssi-logo-black.svg (100%)
rename docs/{logos => logo}/cssi-logo-core.png (100%)
rename docs/{logos => logo}/cssi-logo-dashboard-text-only-white.svg (100%)
rename docs/{logos => logo}/cssi-logo-dashboard.png (100%)
rename docs/{logos => logo}/cssi-logo-dashboard.svg (100%)
rename docs/{logos => logo}/cssi-logo-outline.svg (100%)
rename docs/{logos => logo}/cssi-logo-rest-api.png (100%)
rename docs/{logos => logo}/cssi-logo-rest-api.svg (100%)
rename docs/{logos => logo}/cssi-logo-square.png (100%)
rename docs/{logos => logo}/cssi-logo-square.svg (100%)
rename docs/{logos => logo}/cssi-logo-text-only.png (100%)
rename docs/{logos => logo}/cssi-logo-white.svg (100%)
rename docs/{logos => logo}/cssi-logo.png (100%)
rename docs/{logos => logo}/cssi-logo.svg (100%)
rename docs/{ => readme-resources}/technologies/celery.png (100%)
rename docs/{ => readme-resources}/technologies/flask-socketio.png (100%)
rename docs/{ => readme-resources}/technologies/flask-sqlalchemy.png (100%)
rename docs/{ => readme-resources}/technologies/flask.svg (100%)
rename docs/{ => readme-resources}/technologies/marshmallow.png (100%)
rename docs/{ => readme-resources}/technologies/mysql.svg (100%)
rename docs/{ => readme-resources}/technologies/python.svg (100%)
rename docs/{ => readme-resources}/technologies/redis.png (100%)
diff --git a/docs/logos/cssi-logo square-pixel.png b/docs/logo/cssi-logo square-pixel.png
similarity index 100%
rename from docs/logos/cssi-logo square-pixel.png
rename to docs/logo/cssi-logo square-pixel.png
diff --git a/docs/logos/cssi-logo-black.svg b/docs/logo/cssi-logo-black.svg
similarity index 100%
rename from docs/logos/cssi-logo-black.svg
rename to docs/logo/cssi-logo-black.svg
diff --git a/docs/logos/cssi-logo-core.png b/docs/logo/cssi-logo-core.png
similarity index 100%
rename from docs/logos/cssi-logo-core.png
rename to docs/logo/cssi-logo-core.png
diff --git a/docs/logos/cssi-logo-dashboard-text-only-white.svg b/docs/logo/cssi-logo-dashboard-text-only-white.svg
similarity index 100%
rename from docs/logos/cssi-logo-dashboard-text-only-white.svg
rename to docs/logo/cssi-logo-dashboard-text-only-white.svg
diff --git a/docs/logos/cssi-logo-dashboard.png b/docs/logo/cssi-logo-dashboard.png
similarity index 100%
rename from docs/logos/cssi-logo-dashboard.png
rename to docs/logo/cssi-logo-dashboard.png
diff --git a/docs/logos/cssi-logo-dashboard.svg b/docs/logo/cssi-logo-dashboard.svg
similarity index 100%
rename from docs/logos/cssi-logo-dashboard.svg
rename to docs/logo/cssi-logo-dashboard.svg
diff --git a/docs/logos/cssi-logo-outline.svg b/docs/logo/cssi-logo-outline.svg
similarity index 100%
rename from docs/logos/cssi-logo-outline.svg
rename to docs/logo/cssi-logo-outline.svg
diff --git a/docs/logos/cssi-logo-rest-api.png b/docs/logo/cssi-logo-rest-api.png
similarity index 100%
rename from docs/logos/cssi-logo-rest-api.png
rename to docs/logo/cssi-logo-rest-api.png
diff --git a/docs/logos/cssi-logo-rest-api.svg b/docs/logo/cssi-logo-rest-api.svg
similarity index 100%
rename from docs/logos/cssi-logo-rest-api.svg
rename to docs/logo/cssi-logo-rest-api.svg
diff --git a/docs/logos/cssi-logo-square.png b/docs/logo/cssi-logo-square.png
similarity index 100%
rename from docs/logos/cssi-logo-square.png
rename to docs/logo/cssi-logo-square.png
diff --git a/docs/logos/cssi-logo-square.svg b/docs/logo/cssi-logo-square.svg
similarity index 100%
rename from docs/logos/cssi-logo-square.svg
rename to docs/logo/cssi-logo-square.svg
diff --git a/docs/logos/cssi-logo-text-only.png b/docs/logo/cssi-logo-text-only.png
similarity index 100%
rename from docs/logos/cssi-logo-text-only.png
rename to docs/logo/cssi-logo-text-only.png
diff --git a/docs/logos/cssi-logo-white.svg b/docs/logo/cssi-logo-white.svg
similarity index 100%
rename from docs/logos/cssi-logo-white.svg
rename to docs/logo/cssi-logo-white.svg
diff --git a/docs/logos/cssi-logo.png b/docs/logo/cssi-logo.png
similarity index 100%
rename from docs/logos/cssi-logo.png
rename to docs/logo/cssi-logo.png
diff --git a/docs/logos/cssi-logo.svg b/docs/logo/cssi-logo.svg
similarity index 100%
rename from docs/logos/cssi-logo.svg
rename to docs/logo/cssi-logo.svg
diff --git a/docs/technologies/celery.png b/docs/readme-resources/technologies/celery.png
similarity index 100%
rename from docs/technologies/celery.png
rename to docs/readme-resources/technologies/celery.png
diff --git a/docs/technologies/flask-socketio.png b/docs/readme-resources/technologies/flask-socketio.png
similarity index 100%
rename from docs/technologies/flask-socketio.png
rename to docs/readme-resources/technologies/flask-socketio.png
diff --git a/docs/technologies/flask-sqlalchemy.png b/docs/readme-resources/technologies/flask-sqlalchemy.png
similarity index 100%
rename from docs/technologies/flask-sqlalchemy.png
rename to docs/readme-resources/technologies/flask-sqlalchemy.png
diff --git a/docs/technologies/flask.svg b/docs/readme-resources/technologies/flask.svg
similarity index 100%
rename from docs/technologies/flask.svg
rename to docs/readme-resources/technologies/flask.svg
diff --git a/docs/technologies/marshmallow.png b/docs/readme-resources/technologies/marshmallow.png
similarity index 100%
rename from docs/technologies/marshmallow.png
rename to docs/readme-resources/technologies/marshmallow.png
diff --git a/docs/technologies/mysql.svg b/docs/readme-resources/technologies/mysql.svg
similarity index 100%
rename from docs/technologies/mysql.svg
rename to docs/readme-resources/technologies/mysql.svg
diff --git a/docs/technologies/python.svg b/docs/readme-resources/technologies/python.svg
similarity index 100%
rename from docs/technologies/python.svg
rename to docs/readme-resources/technologies/python.svg
diff --git a/docs/technologies/redis.png b/docs/readme-resources/technologies/redis.png
similarity index 100%
rename from docs/technologies/redis.png
rename to docs/readme-resources/technologies/redis.png
From 412a3e21ea210891a21cf610718e2a557d42ebf4 Mon Sep 17 00:00:00 2001
From: Brion Mario
Date: Sat, 6 Jul 2019 05:25:30 +0530
Subject: [PATCH 5/8] chore(deps): add pytest dependency
---
requirements.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 83b48ad..6985d6a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -13,4 +13,5 @@ flask-socketio==3.3.2
PyMySQL==0.9.3
redis==3.2.1
Pillow
-numpy>=1.16.2
\ No newline at end of file
+numpy>=1.16.2
+pytest==4.5.0
From 500e1647ee2bd72708385119157521204c8d85cc Mon Sep 17 00:00:00 2001
From: Brion Mario
Date: Sat, 6 Jul 2019 05:26:51 +0530
Subject: [PATCH 6/8] ci(travis): add travis config :construction_worker:
---
.travis.yml | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..2f70fca
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,13 @@
+dist: xenial
+language: python
+
+cache: pip
+python:
+ - '3.7'
+
+install:
+ - pip install -r requirements.txt
+ - pip freeze
+
+script:
+ - pytest
From c25be78d3b7af3b9793b4c4dc66df811daf69c74 Mon Sep 17 00:00:00 2001
From: Brion Mario
Date: Sat, 6 Jul 2019 05:54:01 +0530
Subject: [PATCH 7/8] docs: update documents :memo:
---
CONTRIBUTING.md | 138 ++++++++++++++++++++++++++++++++++++++++++---
README.md | 22 +++++---
docs/RELEASES.md | 82 +++++++++++++++++++++++++++
docs/VERSIONING.md | 33 +++++++++++
4 files changed, 259 insertions(+), 16 deletions(-)
create mode 100644 docs/RELEASES.md
create mode 100644 docs/VERSIONING.md
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9b1724d..4e3b61e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,10 +1,68 @@
# Contributing to CSSI REST API
-We would love for you to contribute to CSSI API and help make it even better than it is
-today!
+We would love for you to contribute to CSSI REST API and help make
+it even better than it is today!. As a contributor, here are the
+guidelines for you to follow:
-### Type
+ - [Commit Message Guidelines](#commit)
+ - [Branch Naming Conventions](#branch-naming)
+
+## Commit Message Guidelines
+
+We have used `semantic git commits` through out the application and would like to keep them consistent. Please follow the following specified rules when committing your code.
+
+### Commit Message Format
+Each commit message consists of a **header**, a **body** and a **footer**. The header has a special
+format that includes a **type**, a **scope** and a **subject**:
+
+```
+():
+
+
+
+