summaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py105
1 files changed, 105 insertions, 0 deletions
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..278e065
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python
+from __future__ import print_function
+from setuptools import setup, find_packages
+import io
+import re
+import os
+import platform
+import sys
+
+# There is an issue with building python packages in a shared vagrant directory because of how setuptools works
+# in python < 2.7.9. We solve this by deleting the filesystem hardlinking capability during build.
+# See: http://stackoverflow.com/a/22147112/381010
+try:
+ del os.link
+except:
+ pass # Not all OSes (e.g. windows) support os.link
+
+description = "Git commit message linter written in python, checks your commit messages for style."
+long_description = """
+Great for use as a commit-msg git hook or as part of your gating script in a CI pipeline (e.g. jenkins, gitlab).
+Many of the gitlint validations are based on `well-known`_ community_ `standards`_, others are based on checks that
+we've found useful throughout the years. Gitlint has sane defaults, but you can also easily customize it to your
+own liking.
+
+Demo and full documentation on `jorisroovers.github.io/gitlint`_.
+To see what's new in the latest release, visit the CHANGELOG_.
+
+Source code on `github.com/jorisroovers/gitlint`_.
+
+.. _well-known: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
+.. _community: http://addamhardy.com/blog/2013/06/05/good-commit-messages-and-enforcing-them-with-git-hooks/
+.. _standards: http://chris.beams.io/posts/git-commit/
+.. _jorisroovers.github.io/gitlint: https://jorisroovers.github.io/gitlint
+.. _CHANGELOG: https://github.com/jorisroovers/gitlint/blob/master/CHANGELOG.md
+.. _github.com/jorisroovers/gitlint: https://github.com/jorisroovers/gitlint
+"""
+
+
+# shamelessly stolen from mkdocs' setup.py: https://github.com/mkdocs/mkdocs/blob/master/setup.py
+def get_version(package):
+ """Return package version as listed in `__version__` in `init.py`."""
+ init_py = io.open(os.path.join(package, '__init__.py'), encoding="UTF-8").read()
+ return re.search("__version__ = ['\"]([^'\"]+)['\"]", init_py).group(1)
+
+
+setup(
+ name="gitlint",
+ version=get_version("gitlint"),
+ description=description,
+ long_description=long_description,
+ classifiers=[
+ "Development Status :: 5 - Production/Stable",
+ "Operating System :: OS Independent",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3.5",
+ "Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: Implementation :: CPython",
+ "Programming Language :: Python :: Implementation :: PyPy",
+ "Environment :: Console",
+ "Intended Audience :: Developers",
+ "Topic :: Software Development :: Quality Assurance",
+ "Topic :: Software Development :: Testing",
+ "License :: OSI Approved :: MIT License"
+ ],
+ install_requires=[
+ 'Click==7.0',
+ 'arrow==0.15.5',
+ ],
+ extras_require={
+ ':sys_platform != "win32"': [
+ 'sh==1.12.14',
+ ],
+ },
+ keywords='gitlint git lint',
+ author='Joris Roovers',
+ url='https://github.com/jorisroovers/gitlint',
+ license='MIT',
+ package_data={
+ 'gitlint': ['files/*']
+ },
+ packages=find_packages(exclude=["examples"]),
+ entry_points={
+ "console_scripts": [
+ "gitlint = gitlint.cli:cli",
+ ],
+ },
+)
+
+# Print a red deprecation warning for python 2.6 users
+if sys.version_info[0] == 2 and sys.version_info[1] <= 6:
+ msg = "\033[31mDEPRECATION: Python 2.6 or below are no longer supported by gitlint or the Python core team." + \
+ "Please upgrade your Python to a later version.\033[0m"
+ print(msg)
+
+# Print a red deprecation warning for python 2.6 users
+PLATFORM_IS_WINDOWS = "windows" in platform.system().lower()
+if PLATFORM_IS_WINDOWS:
+ msg = "\n\n\n\n\n****************\n" + \
+ "WARNING: Gitlint support for Windows is still experimental and there are some known issues: " + \
+ "https://github.com/jorisroovers/gitlint/issues?q=is%3Aissue+is%3Aopen+label%3Awindows " + \
+ "\n*******************"
+ print(msg)