Skip to content

Commit

Permalink
Removed travis.yml in favor of GitHub Workflows
Browse files Browse the repository at this point in the history
Configuring GitHub Workflows
  • Loading branch information
theriverman committed Dec 12, 2020
1 parent 278ca5c commit c0397c1
Show file tree
Hide file tree
Showing 6 changed files with 139 additions and 40 deletions.
6 changes: 4 additions & 2 deletions .github/workflows/publish-to-test-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ jobs:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@master
- name: Set up Python 3.7
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.7
python-version: 3.8
- name: Install pypa/build
run: >-
python -m
Expand All @@ -23,6 +23,8 @@ jobs:
python
setup.py
bdist_wheel
sdist
--formats=gztar,zip
- name: Publish distribution 📦 to Test PyPI
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@master
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ wheels/
.installed.cfg
*.egg
MANIFEST
RELEASE-VERSION

# PyInstaller
# Usually these files are written by a python script from a template
Expand Down
31 changes: 0 additions & 31 deletions .travis.yml

This file was deleted.

2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
include LICENSE
include README.md
include RELEASE-VERSION
include version.py
# recursive-include docs *
recursive-include django_minio_backend/management *
13 changes: 6 additions & 7 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
import os
import datetime
from datetime import datetime
from setuptools import find_packages, setup

from version import get_git_version

with open("README.md", "r") as readme_file:
long_description = readme_file.read()

# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))

CURRENT_GIT_TAG = 'v2.5.0'
year = datetime.datetime.now().year

print(f'setup.py :: Using git tag {CURRENT_GIT_TAG}')

setup(
name='django-minio-backend',
version=CURRENT_GIT_TAG,
version=get_git_version(),
packages=find_packages(),
include_package_data=True,
license=f'MIT License | Copyright (c) {year} Kristof Daja',
license=f'MIT License | Copyright (c) {datetime.now().year} Kristof Daja',
description='The django-minio-backend provides a wrapper around the MinIO Python Library.',
long_description=long_description,
long_description_content_type="text/markdown",
Expand All @@ -36,6 +34,7 @@
'Framework :: Django :: 2.1',
'Framework :: Django :: 2.2',
'Framework :: Django :: 3.0',
'Framework :: Django :: 3.1',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
Expand Down
126 changes: 126 additions & 0 deletions version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# -*- coding: utf-8 -*-
# Author: Douglas Creager <[email protected]>
# Modifier: Kristof Daja <[email protected]>
# This file is placed into the public domain.

# Calculates the current version number. If possible, this is the
# output of “git describe”, modified to conform to the versioning
# scheme that setuptools uses. If “git describe” returns an error
# (most likely because we're in an unpacked copy of a release tarball,
# rather than in a git working copy), then we fall back on reading the
# contents of the RELEASE-VERSION file.
#
# To use this script, simply import it your setup.py file, and use the
# results of get_git_version() as your package version:
#
# from version import *
#
# setup(
# version=get_git_version(),
# .
# .
# .
# )
#
#
# This will automatically update the RELEASE-VERSION file, if
# necessary. Note that the RELEASE-VERSION file should *not* be
# checked into git; please add it to your top-level .gitignore file.
#
# You'll probably want to distribute the RELEASE-VERSION file in your
# sdist tarballs; to do this, just create a MANIFEST.in file that
# contains the following line:
#
# include RELEASE-VERSION
#
# Change History:
# 2020-12-12 - Updated for Python 3. Changed git describe --abbrev=7 to git describe --tags
#

__all__ = ["get_git_version"]

from subprocess import Popen, PIPE


def call_git_describe():
# noinspection PyBroadException
try:
p = Popen(['git', 'describe', '--tags'],
stdout=PIPE, stderr=PIPE)
p.stderr.close()
line = p.stdout.readlines()[0]
return line.strip().decode('utf-8')

except Exception:
return None


def is_dirty():
# noinspection PyBroadException
try:
p = Popen(["git", "diff-index", "--name-only", "HEAD"],
stdout=PIPE, stderr=PIPE)
p.stderr.close()
lines = p.stdout.readlines()
return len(lines) > 0
except Exception:
return False


def read_release_version():
# noinspection PyBroadException
try:
f = open("RELEASE-VERSION", "r")

try:
version = f.readlines()[0]
return version.strip()

finally:
f.close()

except Exception:
return None


def write_release_version(version):
f = open("RELEASE-VERSION", "w")
f.write("%s\n" % version)
f.close()


def get_git_version():
# Read in the version that's currently in RELEASE-VERSION.

release_version = read_release_version()

# First try to get the current version using “git describe”.

version = call_git_describe()
if is_dirty():
version += "-dirty"

# If that doesn't work, fall back on the value that's in
# RELEASE-VERSION.

if version is None:
version = release_version

# If we still don't have anything, that's an error.

if version is None:
raise ValueError("Cannot find the version number!")

# If the current version is different from what's in the
# RELEASE-VERSION file, update the file to be current.

if version != release_version:
write_release_version(version)

# Finally, return the current version.

return version


if __name__ == "__main__":
print(get_git_version())

0 comments on commit c0397c1

Please sign in to comment.