-
-
Notifications
You must be signed in to change notification settings - Fork 138
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add GitHub Actions workflow. * Use setuptools_scm. * Add release workflow. * Fix import order. * Fix versions. * Write coverage file. * Remove Travis and other cruft. * Remove extra line.
- Loading branch information
Showing
10 changed files
with
141 additions
and
190 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: Release | ||
|
||
on: | ||
push: | ||
tags: | ||
- '*' | ||
|
||
jobs: | ||
build: | ||
if: github.repository == 'jazzband/django-formtools' | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.8 | ||
|
||
- name: Install dependencies | ||
run: | | ||
python -m pip install -U pip | ||
python -m pip install -U setuptools twine wheel | ||
- name: Build package | ||
run: | | ||
python setup.py --version | ||
python setup.py sdist --format=gztar bdist_wheel | ||
twine check dist/* | ||
- name: Upload packages to Jazzband | ||
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | ||
uses: pypa/gh-action-pypi-publish@master | ||
with: | ||
user: jazzband | ||
password: ${{ secrets.JAZZBAND_RELEASE_KEY }} | ||
repository_url: https://jazzband.co/projects/django-formtools/upload |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
name: Test | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
max-parallel: 5 | ||
matrix: | ||
python-version: ['3.5', '3.6', '3.7', '3.8', '3.9'] | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Get pip cache dir | ||
id: pip-cache | ||
run: | | ||
echo "::set-output name=dir::$(pip cache dir)" | ||
- name: Cache | ||
uses: actions/cache@v2 | ||
with: | ||
path: ${{ steps.pip-cache.outputs.dir }} | ||
key: | ||
${{ matrix.python-version }}-v1-${{ hashFiles('**/setup.py') }}-${{ hashFiles('**/tox.ini') }} | ||
restore-keys: | | ||
${{ matrix.python-version }}-v1- | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
python -m pip install --upgrade tox tox-gh-actions | ||
- name: Tox tests | ||
run: | | ||
tox -v | ||
- name: Upload coverage | ||
uses: codecov/codecov-action@v1 | ||
with: | ||
name: Python ${{ matrix.python-version }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,3 +8,4 @@ docs/_build | |
.tox/ | ||
*.egg/ | ||
.coverage | ||
coverage.xml |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,11 @@ | ||
import django | ||
from pkg_resources import DistributionNotFound, get_distribution | ||
|
||
__version__ = '2.2' | ||
try: | ||
__version__ = get_distribution("django-formtools").version | ||
except DistributionNotFound: | ||
# package is not installed | ||
__version__ = None | ||
|
||
if django.VERSION <= (3, 2): | ||
default_app_config = 'formtools.apps.FormToolsConfig' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,145 +1,47 @@ | ||
import codecs | ||
import os | ||
import re | ||
import sys | ||
from distutils.util import convert_path | ||
from fnmatch import fnmatchcase | ||
|
||
from setuptools import find_packages, setup | ||
|
||
|
||
def read(*parts): | ||
filename = os.path.join(os.path.dirname(__file__), *parts) | ||
with codecs.open(filename, encoding='utf-8') as fp: | ||
with open(filename, encoding="utf-8") as fp: | ||
return fp.read() | ||
|
||
|
||
def find_version(*file_paths): | ||
version_file = read(*file_paths) | ||
version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", | ||
version_file, re.M) | ||
if version_match: | ||
return version_match.group(1) | ||
raise RuntimeError("Unable to find version string.") | ||
|
||
|
||
# Provided as an attribute, so you can append to these instead | ||
# of replicating them: | ||
standard_exclude = ('*.py', '*.pyc', '*$py.class', '*~', '.*', '*.bak') | ||
standard_exclude_directories = ('.*', 'CVS', '_darcs', './build', | ||
'./dist', 'EGG-INFO', '*.egg-info') | ||
|
||
|
||
# (c) 2005 Ian Bicking and contributors; written for Paste (http://pythonpaste.org) | ||
# Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php | ||
# Note: you may want to copy this into your setup.py file verbatim, as | ||
# you can't import this from another package, when you don't know if | ||
# that package is installed yet. | ||
def find_package_data(where='.', package='', | ||
exclude=standard_exclude, | ||
exclude_directories=standard_exclude_directories, | ||
only_in_packages=True, | ||
show_ignored=False): | ||
""" | ||
Return a dictionary suitable for use in ``package_data`` | ||
in a distutils ``setup.py`` file. | ||
The dictionary looks like:: | ||
{'package': [files]} | ||
Where ``files`` is a list of all the files in that package that | ||
don't match anything in ``exclude``. | ||
If ``only_in_packages`` is true, then top-level directories that | ||
are not packages won't be included (but directories under packages | ||
will). | ||
Directories matching any pattern in ``exclude_directories`` will | ||
be ignored; by default directories with leading ``.``, ``CVS``, | ||
and ``_darcs`` will be ignored. | ||
If ``show_ignored`` is true, then all the files that aren't | ||
included in package data are shown on stderr (for debugging | ||
purposes). | ||
Note patterns use wildcards, or can be exact paths (including | ||
leading ``./``), and all searching is case-insensitive. | ||
""" | ||
|
||
out = {} | ||
stack = [(convert_path(where), '', package, only_in_packages)] | ||
while stack: | ||
where, prefix, package, only_in_packages = stack.pop(0) | ||
for name in os.listdir(where): | ||
fn = os.path.join(where, name) | ||
if os.path.isdir(fn): | ||
bad_name = False | ||
for pattern in exclude_directories: | ||
if (fnmatchcase(name, pattern) or fn.lower() == pattern.lower()): | ||
bad_name = True | ||
if show_ignored: | ||
print("Directory %s ignored by pattern %s" % (fn, pattern), | ||
file=sys.stderr) | ||
break | ||
if bad_name: | ||
continue | ||
if (os.path.isfile(os.path.join(fn, '__init__.py')) and not prefix): | ||
if not package: | ||
new_package = name | ||
else: | ||
new_package = package + '.' + name | ||
stack.append((fn, '', new_package, False)) | ||
else: | ||
stack.append((fn, prefix + name + '/', package, only_in_packages)) | ||
elif package or not only_in_packages: | ||
# is a file | ||
bad_name = False | ||
for pattern in exclude: | ||
if (fnmatchcase(name, pattern) or fn.lower() == pattern.lower()): | ||
bad_name = True | ||
if show_ignored: | ||
print("File %s ignored by pattern %s" % (fn, pattern), | ||
file=sys.stderr) | ||
break | ||
if bad_name: | ||
continue | ||
out.setdefault(package, []).append(prefix + name) | ||
return out | ||
|
||
|
||
setup( | ||
name="django-formtools", | ||
version=find_version("formtools", "__init__.py"), | ||
url='https://django-formtools.readthedocs.io/en/latest/', | ||
license='BSD', | ||
use_scm_version={"version_scheme": "post-release", "local_scheme": "dirty-tag"}, | ||
setup_requires=["setuptools_scm"], | ||
url="https://django-formtools.readthedocs.io/en/latest/", | ||
license="BSD", | ||
description="A set of high-level abstractions for Django forms", | ||
long_description=read('README.rst'), | ||
author='Django Software Foundation', | ||
author_email='[email protected]', | ||
packages=find_packages(exclude=['tests', 'tests.*']), | ||
package_data=find_package_data(), | ||
install_requires=['Django>=2.2'], | ||
long_description=read("README.rst"), | ||
long_description_content_type="text/x-rst", | ||
author="Django Software Foundation", | ||
author_email="[email protected]", | ||
packages=find_packages(exclude=["tests", "tests.*"]), | ||
include_package_data=True, | ||
install_requires=["Django>=2.2"], | ||
python_requires=">=3.5", | ||
classifiers=[ | ||
'Development Status :: 5 - Production/Stable', | ||
'Environment :: Web Environment', | ||
'Framework :: Django', | ||
'Framework :: Django :: 2.2', | ||
'Framework :: Django :: 3.0', | ||
'Framework :: Django :: 3.1', | ||
'Intended Audience :: Developers', | ||
'License :: OSI Approved :: BSD License', | ||
'Operating System :: OS Independent', | ||
'Programming Language :: Python', | ||
'Programming Language :: Python :: 3', | ||
'Programming Language :: Python :: 3 :: Only', | ||
'Programming Language :: Python :: 3.5', | ||
'Programming Language :: Python :: 3.6', | ||
'Programming Language :: Python :: 3.7', | ||
'Programming Language :: Python :: 3.8', | ||
'Programming Language :: Python :: 3.9', | ||
'Topic :: Internet :: WWW/HTTP', | ||
"Development Status :: 5 - Production/Stable", | ||
"Environment :: Web Environment", | ||
"Framework :: Django", | ||
"Framework :: Django :: 2.2", | ||
"Framework :: Django :: 3.0", | ||
"Framework :: Django :: 3.1", | ||
"Intended Audience :: Developers", | ||
"License :: OSI Approved :: BSD License", | ||
"Operating System :: OS Independent", | ||
"Programming Language :: Python", | ||
"Programming Language :: Python :: 3", | ||
"Programming Language :: Python :: 3 :: Only", | ||
"Programming Language :: Python :: 3.5", | ||
"Programming Language :: Python :: 3.6", | ||
"Programming Language :: Python :: 3.7", | ||
"Programming Language :: Python :: 3.8", | ||
"Programming Language :: Python :: 3.9", | ||
"Topic :: Internet :: WWW/HTTP", | ||
], | ||
zip_safe=False, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters