Skip to content

Commit c8f407b

Browse files
author
Jon Duckworth
authored
Merge pull request #457 from stac-utils/main
v1.0.0-rc.1 -> release branch
2 parents 3f329e7 + c8ee7d6 commit c8f407b

File tree

130 files changed

+6344
-5561
lines changed

Some content is hidden

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

130 files changed

+6344
-5561
lines changed

.coveragerc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[report]
2-
fail_under = 89
2+
fail_under = 91
33

44
[run]
55
source = pystac

.github/dependabot.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: /
5+
schedule:
6+
interval: daily
7+
commit-message:
8+
prefix: build(deps)
9+
- package-ecosystem: pip
10+
directory: /
11+
schedule:
12+
interval: daily

.github/pull_request_template.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
**PR Checklist:**
88

9-
- [ ] Code is formatted (run `scripts/format`)
9+
- [ ] Code is formatted (run `pre-commit run --all-files`)
1010
- [ ] Tests pass (run `scripts/test`)
11+
- [ ] Documentation has been updated to reflect changes, if applicable
1112
- [ ] This PR maintains or improves overall codebase code coverage.
1213
- [ ] Changes are added to the [CHANGELOG](https://github.com/stac-utils/pystac/blob/develop/CHANGELOG.md). See [the docs](https://pystac.readthedocs.io/en/latest/contributing.html#changelog) for information about adding to the changelog.

.github/workflows/continuous-integration.yml

Lines changed: 113 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,23 @@ on:
77
pull_request:
88

99
jobs:
10-
build:
11-
name: build
10+
test:
11+
name: test
1212
runs-on: ${{ matrix.os }}
1313
strategy:
1414
# Allow other matrix jobs to complete if 1 fails
1515
fail-fast: false
1616
matrix:
17-
python-version: ["3.6", "3.7", "3.8"]
18-
os: [ubuntu-latest, windows-latest, macos-latest]
17+
python-version:
18+
- "3.6"
19+
- "3.7"
20+
- "3.8"
21+
- "3.9"
22+
os:
23+
- ubuntu-latest
24+
- windows-latest
25+
- macos-latest
26+
1927
steps:
2028
- uses: actions/checkout@v2
2129

@@ -24,32 +32,126 @@ jobs:
2432
with:
2533
python-version: ${{ matrix.python-version }}
2634

27-
- name: Cache dependencies
35+
- name: Cache dependencies (Linux)
36+
if: startsWith(runner.os, 'Linux')
2837
uses: actions/cache@v2
2938
with:
3039
path: ~/.cache/pip
3140
# Cache based on OS, Python version, and dependency hash
32-
key: pip-${{ runner.os }}-python${{ matrix.python-version }}-${{ hashFiles('requirements-dev.txt') }}
41+
key: pip-test-${{ runner.os }}-python${{ matrix.python-version }}-${{ hashFiles('requirements-test.txt') }}
42+
43+
- name: Cache dependencies (macOS)
44+
if: startsWith(runner.os, 'macOS')
45+
uses: actions/cache@v2
46+
with:
47+
path: ~/Library/Caches/pip
48+
# Cache based on OS, Python version, and dependency hash
49+
key: pip-test-${{ runner.os }}-python${{ matrix.python-version }}-${{ hashFiles('requirements-test.txt') }}
50+
51+
- name: Cache dependencies (Windows)
52+
if: startsWith(runner.os, 'Windows')
53+
uses: actions/cache@v2
54+
with:
55+
path: ~\AppData\Local\pip\Cache
56+
# Cache based on OS, Python version, and dependency hash
57+
key: pip-test-${{ runner.os }}-python${{ matrix.python-version }}-${{ hashFiles('requirements-test.txt') }}
3358

34-
- name: Execute linters and test suites
35-
run: ./scripts/cibuild
59+
- name: Install dependencies
60+
run: |
61+
pip install --upgrade pip
62+
pip install -r requirements-test.txt
63+
pip install -e ".[validation]"
64+
65+
- name: Execute test suite
66+
run: ./scripts/test
67+
shell: bash
68+
env:
69+
TMPDIR: "${{ matrix.os == 'windows-latest' && 'D:\\a\\_temp' || '' }}"
70+
71+
coverage:
72+
name: coverage
73+
runs-on: ubuntu-latest
74+
steps:
75+
- uses: actions/checkout@v2
76+
77+
- name: Set up Python 3.8
78+
uses: actions/setup-python@v2
79+
with:
80+
python-version: "3.8"
81+
82+
- name: Cache dependencies
83+
uses: actions/cache@v2
84+
with:
85+
path: ~/.cache/pip
86+
# Cache based on OS, Python version, and dependency hash
87+
key: pip-test-${{ runner.os }}-python3.8-${{ hashFiles('requirements-test.txt') }}
88+
89+
- name: Install dependencies
90+
run: |
91+
pip install --upgrade pip
92+
pip install -r requirements-test.txt
93+
pip install -e ".[validation]"
94+
95+
- name: Execute test suite
96+
# --fail-under=0 ensures we publish the coverage regardless of whether it meets
97+
# the minimum so we can use Codecov to evaluate gaps
98+
run: |
99+
coverage run --source=pystac/ -m unittest discover tests/
100+
coverage xml --fail-under=0
36101
37102
- name: Upload All coverage to Codecov
38103
uses: codecov/codecov-action@v1
39-
# Only upload this once...
40-
if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.8'}}
104+
if: ${{ env.GITHUB_REPOSITORY }} == 'stac-utils/pystac'
41105
with:
42106
token: ${{ secrets.CODECOV_TOKEN }}
43107
file: ./coverage.xml
44108
fail_ci_if_error: false
45-
vanilla:
109+
110+
lint:
46111
runs-on: ubuntu-latest
112+
strategy:
113+
# Allow other matrix jobs to complete if 1 fails
114+
fail-fast: false
115+
matrix:
116+
python-version:
117+
- "3.6"
118+
- "3.7"
119+
- "3.8"
120+
47121
steps:
48122
- uses: actions/checkout@v2
123+
124+
- name: Set up Python ${{ matrix.python-version }}
125+
uses: actions/setup-python@v2
126+
with:
127+
python-version: ${{ matrix.python-version }}
128+
129+
- name: Cache dependencies
130+
uses: actions/cache@v2
131+
with:
132+
path: ~/.cache/pip
133+
# Cache based on OS, Python version, and dependency hash
134+
key: lint-${{ runner.os }}-python${{ matrix.python-version }}-${{ hashFiles('requirements-test.txt') }}
135+
136+
- name: Install dependencies
137+
run: |
138+
pip install --upgrade pip
139+
pip install -r requirements-test.txt
140+
141+
- name: Execute linters & type checkers
142+
run: pre-commit run --all-files
143+
144+
vanilla:
145+
runs-on: ubuntu-latest
146+
steps:
147+
- uses: actions/checkout@v2
148+
49149
- uses: actions/setup-python@v2
50150
with:
51151
python-version: "3.8"
152+
52153
- name: Install without orjson
53154
run: pip install '.[validation]'
155+
54156
- name: Run unittests
55157
run: python -m unittest discover tests

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ jobs:
99
release:
1010
name: release
1111
runs-on: ubuntu-latest
12+
if: ${{ env.GITHUB_REPOSITORY }} == 'stac-utils/pystac'
1213
steps:
1314
- uses: actions/checkout@v2
1415

.gitignore

Lines changed: 143 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,159 @@
11
*.pyc
22
*.egg-info
3-
build/
4-
dist/
53
*.eggs
6-
MANIFEST
74
.DS_Store
8-
.coverage
9-
.cache
105
data
116
config.json
127
stdout*
138
/integration*
14-
.idea/
15-
docs/_build/
16-
coverage.xml
9+
.idea
10+
.vscode
1711

18-
# Sphinx documentation
19-
docs/_build/
2012

13+
# Sphinx documentation
2114
.ipynb_checkpoints/
2215

2316
docs/tutorials/pystac-example*
2417
docs/tutorials/spacenet-stac/
2518
docs/tutorials/spacenet-cog-stac/
2619
docs/tutorials/data/
27-
docs/quickstart_stac/
20+
docs/quickstart_stac/
21+
22+
# Byte-compiled / optimized / DLL files
23+
__pycache__/
24+
*.py[cod]
25+
*$py.class
26+
27+
# C extensions
28+
*.so
29+
30+
# Distribution / packaging
31+
.Python
32+
build/
33+
develop-eggs/
34+
dist/
35+
downloads/
36+
eggs/
37+
.eggs/
38+
lib/
39+
lib64/
40+
parts/
41+
sdist/
42+
var/
43+
wheels/
44+
share/python-wheels/
45+
*.egg-info/
46+
.installed.cfg
47+
*.egg
48+
MANIFEST
49+
50+
# PyInstaller
51+
# Usually these files are written by a python script from a template
52+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
53+
*.manifest
54+
*.spec
55+
56+
# Installer logs
57+
pip-log.txt
58+
pip-delete-this-directory.txt
59+
60+
# Unit test / coverage reports
61+
htmlcov/
62+
.tox/
63+
.nox/
64+
.coverage
65+
.coverage.*
66+
.cache
67+
nosetests.xml
68+
coverage.xml
69+
*.cover
70+
*.py,cover
71+
.hypothesis/
72+
.pytest_cache/
73+
cover/
74+
75+
# Translations
76+
*.mo
77+
*.pot
78+
79+
# Django stuff:
80+
*.log
81+
local_settings.py
82+
db.sqlite3
83+
db.sqlite3-journal
84+
85+
# Flask stuff:
86+
instance/
87+
.webassets-cache
88+
89+
# Scrapy stuff:
90+
.scrapy
91+
92+
# Sphinx documentation
93+
docs/_build/
94+
95+
# PyBuilder
96+
.pybuilder/
97+
target/
98+
99+
# Jupyter Notebook
100+
.ipynb_checkpoints
101+
102+
# IPython
103+
profile_default/
104+
ipython_config.py
105+
106+
# pyenv
107+
# For a library or package, you might want to ignore these files since the code is
108+
# intended to run in multiple environments; otherwise, check them in:
109+
# .python-version
110+
111+
# pipenv
112+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
113+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
114+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
115+
# install all needed dependencies.
116+
#Pipfile.lock
117+
118+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
119+
__pypackages__/
120+
121+
# Celery stuff
122+
celerybeat-schedule
123+
celerybeat.pid
124+
125+
# SageMath parsed files
126+
*.sage.py
127+
128+
# Environments
129+
.env
130+
.venv
131+
env/
132+
venv/
133+
ENV/
134+
env.bak/
135+
venv.bak/
136+
137+
# Spyder project settings
138+
.spyderproject
139+
.spyproject
140+
141+
# Rope project settings
142+
.ropeproject
143+
144+
# mkdocs documentation
145+
/site
146+
147+
# mypy
148+
.mypy_cache/
149+
.dmypy.json
150+
dmypy.json
151+
152+
# Pyre type checker
153+
.pyre/
154+
155+
# pytype static type analyzer
156+
.pytype/
157+
158+
# Cython debug symbols
159+
cython_debug/

0 commit comments

Comments
 (0)