Skip to content

Commit 8ca4138

Browse files
authored
Merge branch 'develop' into support-nullable-configurations
2 parents a51b905 + c0f5ffc commit 8ca4138

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2984
-2032
lines changed

.coveragerc

Lines changed: 0 additions & 3 deletions
This file was deleted.

.github/FUNDING.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# These are supported funding model platforms
2+
3+
github: joke2k
4+
patreon: # Replace with a single Patreon username
5+
open_collective: joke2k
6+
ko_fi: # Replace with a single Ko-fi username
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
otechie: # Replace with a single Otechie username
12+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/dependabot.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
version: 2
2+
3+
updates:
4+
5+
- package-ecosystem: pip
6+
# setup.py stored in repository root.
7+
directory: '/'
8+
schedule:
9+
interval: daily
10+
assignees:
11+
- sergeyklay
12+
13+
- package-ecosystem: github-actions
14+
# Workflow files stored in the
15+
# default location of `.github/workflows`
16+
directory: '/'
17+
schedule:
18+
interval: daily
19+
assignees:
20+
- sergeyklay

.github/workflows/build.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
- main
8+
- 'feature/**'
9+
- 'release/**'
10+
- 'fix/**'
11+
tags:
12+
- 'v[0-9]+.[0-9]+.[0-9]+'
13+
14+
pull_request:
15+
branches:
16+
- develop
17+
- main
18+
19+
jobs:
20+
build:
21+
name: Build and test package distribution
22+
runs-on: ${{ matrix.os }}
23+
24+
strategy:
25+
matrix:
26+
os: [ ubuntu-latest, macos-latest, windows-latest ]
27+
28+
steps:
29+
- name: Checkout code
30+
uses: actions/checkout@v2.3.4
31+
32+
- name: Set up Python 3.9
33+
uses: actions/setup-python@v2.2.2
34+
with:
35+
python-version: '3.9'
36+
37+
- name: Install dependencies
38+
run: |
39+
python -m pip install --upgrade pip
40+
pip --use-feature=in-tree-build install tox tox-gh-actions
41+
42+
- name: Check MANIFEST.in for completeness
43+
run: tox -e manifest
44+
45+
- name: Build and test package
46+
run: tox -e build
47+
48+
- name: Archive build artifacts
49+
if: success()
50+
uses: actions/upload-artifact@v2
51+
with:
52+
# To ensure that jobs don't overwrite existing artifacts,
53+
# use a different name per job.
54+
name: build-${{ matrix.os }}
55+
path: .tox/build/tmp/build
56+
# Artifacts are retained for 90 days by default.
57+
# In fact, we don't need such long period.
58+
retention-days: 60
59+
60+
install-dev:
61+
name: Verify dev environment
62+
runs-on: ${{ matrix.os }}
63+
64+
strategy:
65+
matrix:
66+
os: [ ubuntu-latest, macos-latest, windows-latest ]
67+
68+
steps:
69+
- name: Checkout code
70+
uses: actions/checkout@v2.3.4
71+
72+
- name: Set up Python 3.9
73+
uses: actions/setup-python@v2.2.2
74+
with:
75+
python-version: '3.9'
76+
77+
- name: Install in dev mode
78+
run: python -m pip install -e .
79+
80+
- name: Import package
81+
run: python -c 'import environ; print(environ.__version__)'

.github/workflows/ci.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
- main
8+
- 'feature/**'
9+
- 'release/**'
10+
- 'fix/**'
11+
12+
pull_request:
13+
branches:
14+
- develop
15+
- main
16+
17+
schedule:
18+
- cron: '0 11 * * *'
19+
# | | | | |
20+
# | | | | |____ day of the week (0 - 6 or SUN-SAT)
21+
# | | | |____ month (1 - 12 or JAN-DEC)
22+
# | | |____ day of the month (1 - 31)
23+
# | |____ hour (0 - 23)
24+
# |____ minute (0 - 59)
25+
26+
env:
27+
PYTHONUNBUFFERED: '1'
28+
29+
defaults:
30+
run:
31+
shell: bash
32+
33+
jobs:
34+
test:
35+
name: Python ${{ matrix.python }} on ${{ matrix.os }}
36+
runs-on: ${{ matrix.os }}
37+
38+
# The maximum number of minutes to let a workflow run
39+
# before GitHub automatically cancels it. Default: 360
40+
timeout-minutes: 30
41+
42+
strategy:
43+
# When set to true, GitHub cancels
44+
# all in-progress jobs if any matrix job fails.
45+
fail-fast: false
46+
47+
matrix:
48+
python:
49+
- '3.5'
50+
- '3.6'
51+
- '3.7'
52+
- '3.8'
53+
- '3.9'
54+
- '3.10.0-beta - 3.10'
55+
- 'pypy-3.7'
56+
os: [ ubuntu-latest, macos-latest, windows-latest ]
57+
58+
steps:
59+
- name: Checkout code
60+
uses: actions/checkout@v2.3.4
61+
with:
62+
fetch-depth: 5
63+
64+
- name: Set up Python ${{ matrix.python }}
65+
uses: actions/setup-python@v2.2.2
66+
with:
67+
python-version: ${{ matrix.python }}
68+
69+
- name: Install dependencies
70+
run: |
71+
python -m pip install --upgrade pip
72+
python -m pip install tox tox-gh-actions
73+
74+
- name: Setuptools self-test
75+
run: |
76+
python setup.py --fullname
77+
python setup.py --long-description
78+
python setup.py --classifiers
79+
80+
- name: Run unit tests with coverage
81+
run: tox
82+
83+
- name: Combine coverage reports
84+
run: tox -e coverage-report
85+
86+
- name: Upload coverage report
87+
if: success()
88+
env:
89+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90+
COVERALLS_SERVICE_NAME: github
91+
run: |
92+
python -m pip install coveralls
93+
# Do not fail job if coveralls.io is down
94+
coveralls || true
95+
96+
- name: Success Reporting
97+
if: success()
98+
run: git log --format=fuller -5

.github/workflows/cs.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: CS
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
- main
8+
- 'feature/**'
9+
- 'release/**'
10+
- 'fix/**'
11+
12+
pull_request:
13+
branches:
14+
- develop
15+
- main
16+
17+
jobs:
18+
lint:
19+
runs-on: ubuntu-latest
20+
name: Code linting
21+
22+
steps:
23+
- name: Checkout code
24+
uses: actions/checkout@v2.3.4
25+
26+
- name: Set up Python 3.9
27+
uses: actions/setup-python@v2.2.2
28+
with:
29+
python-version: '3.9'
30+
31+
- name: Install dependencies
32+
run: |
33+
python -m pip install --upgrade pip
34+
pip install tox tox-gh-actions
35+
36+
- name: Lint with tox
37+
run: tox -e lint

.github/workflows/docs.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Docs
2+
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
- main
8+
- 'feature/**'
9+
- 'release/**'
10+
- 'fix/**'
11+
12+
pull_request:
13+
branches:
14+
- develop
15+
- main
16+
17+
jobs:
18+
docs:
19+
runs-on: ubuntu-latest
20+
name: Build and test package documentation
21+
22+
steps:
23+
- name: Checkout code
24+
uses: actions/checkout@v2.3.4
25+
26+
- name: Set up Python 3.8
27+
uses: actions/setup-python@v2.2.2
28+
with:
29+
python-version: '3.8'
30+
31+
- name: Install dependencies
32+
run: |
33+
python -m pip install --upgrade pip
34+
pip install tox tox-gh-actions
35+
36+
- name: Build and test package documentation
37+
run: tox -e docs

.gitignore

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,31 @@
1-
*.py[cod]
2-
3-
# C extensions
4-
*.so
5-
6-
# Packages
7-
*.egg
8-
*.egg-info
9-
dist
10-
build
11-
docs/_build
12-
eggs
13-
parts
14-
var
15-
sdist
16-
develop-eggs
17-
.installed.cfg
18-
lib
19-
lib64
1+
# This file is part of the django-environ.
2+
#
3+
# Copyright (c) 2021, Serghei Iakovlev <egrep@protonmail.ch>
4+
# Copyright (c) 2013-2021, Daniele Faraglia <daniele.faraglia@gmail.com>
5+
#
6+
# For the full copyright and license information, please view
7+
# the LICENSE.txt file that was distributed with this source code.
208

21-
# Installer logs
22-
pip-log.txt
9+
# Please do not use this ignore file to define platform specific files.
10+
#
11+
# For these purposes create a global .gitignore file, which is a list of rules
12+
# for ignoring files in every Git repository on your computer.
13+
#
14+
# https://help.github.com/articles/ignoring-files/#create-a-global-gitignore
2315

24-
# Unit test / coverage reports
25-
.coverage
26-
.tox
27-
nosetests.xml
16+
# Directories to ignore (do not add trailing '/'s, they skip symlinks).
17+
/.pytest_cache
18+
/.tox
19+
/build
20+
/dist
21+
/*.egg-info
22+
/htmlcov
23+
/docs/_build
2824

29-
# Translations
30-
*.mo
31-
32-
# Mr Developer
33-
.mr.developer.cfg
34-
.project
35-
.pydevproject
36-
.idea
37-
.projectile
38-
.ropeproject
25+
# Python cache.
26+
*.py[cod]
27+
__pycache__
3928

40-
# pyenv/pyenv-virtualenv
41-
.python-version
29+
# Ignore codecoverage stuff.
30+
.coverage*
31+
coverage.xml

.readthedocs.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# This file is part of the django-environ.
2+
#
3+
# Copyright (c) 2021, Serghei Iakovlev <egrep@protonmail.ch>
4+
# Copyright (c) 2013-2021, Daniele Faraglia <daniele.faraglia@gmail.com>
5+
#
6+
# For the full copyright and license information, please view
7+
# the LICENSE.txt file that was distributed with this source code.
8+
9+
---
10+
version: 2
11+
python:
12+
# Keep version in sync with tox.ini (testenv:docs) and
13+
# docs.yml (GitHub Action Workflow).
14+
version: '3.8'
15+
16+
install:
17+
- method: pip
18+
path: .
19+
extra_requirements:
20+
- docs

0 commit comments

Comments
 (0)