Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .copier-answers.resonant.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
_commit: v0.41.0
_src_path: gh:kitware-resonant/cookiecutter-resonant
core_app_name: core
include_example_code: false
project_name: GeoInsight
project_slug: geoinsight
python_package_name: geoinsight
site_domain: api.geoinsight.kitware.com
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
package-lock.json linguist-generated=true
uv.lock linguist-generated=true
65 changes: 34 additions & 31 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ on:
push:
branches:
- master

permissions:
contents: read
jobs:
lint-client:
runs-on: ubuntu-22.04
Expand All @@ -13,58 +14,60 @@ jobs:
- uses: actions/setup-node@v3
- run: cd web && npm i && npm run lint

tox:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
tox-env: [lint, test, check-migrations]
test-server:
runs-on: ubuntu-latest
services:
postgres:
image: postgis/postgis:14-3.3
image: postgis/postgis:18-3.6
env:
POSTGRES_DB: django
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd "pg_isready --username postgres"
--health-start-period 30s
--health-start-interval 2s
ports:
- 5432:5432
rabbitmq:
image: rabbitmq:management
image: rabbitmq:management-alpine
options: >-
--health-cmd "rabbitmq-diagnostics ping"
--health-start-period 30s
--health-start-interval 2s
ports:
- 5672:5672
minio:
# This image does not require any command arguments (which GitHub Actions don't support)
image: bitnamilegacy/minio:2025.4.22
env:
MINIO_ROOT_USER: minioAccessKey
MINIO_ROOT_PASSWORD: minioSecretKey
options: >-
--health-cmd "mc ready local"
--health-timeout 1s
--health-start-period 30s
--health-start-interval 2s
ports:
- 9000:9000
redis:
image: redis:latest
image: redis:alpine
options: >-
--health-cmd "redis-cli ping"
--health-start-period 30s
--health-start-interval 2s
ports:
- 6379:6379
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install tox
run: |
pip install --upgrade pip
pip install tox
- name: Install GDAL
run: |
sudo apt-add-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install gdal-bin libgdal-dev
pip install GDAL==`gdal-config --version`
- name: Checkout repository
uses: actions/checkout@v5
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Run tests
run: |
tox -e ${{ matrix.tox-env }}
uv run tox
env:
DJANGO_DATABASE_URL: postgres://postgres:postgres@localhost:5432/django
DJANGO_MINIO_STORAGE_ENDPOINT: localhost:9000
DJANGO_MINIO_STORAGE_ACCESS_KEY: minioAccessKey
DJANGO_MINIO_STORAGE_SECRET_KEY: minioSecretKey
DJANGO_HOMEPAGE_REDIRECT_URL: http://localhost:8080/
REDIS_URL: redis://localhost:6379
DJANGO_CELERY_BROKER_URL: amqp://localhost:5672/
DJANGO_MINIO_STORAGE_URL: http://minioAccessKey:minioSecretKey@localhost:9000/django-storage-testing
DJANGO_REDIS_URL: redis://localhost:6379
DJANGO_GEOINSIGHT_WEB_URL: http://localhost:8080/
59 changes: 0 additions & 59 deletions .github/workflows/nightly_ci.yml

This file was deleted.

124 changes: 101 additions & 23 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
.terraform/
postgres/*
minio/*
rabbitmq/*
.vscode/
staticfiles/
sample_data/downloads/*
jupyter/.ipynb_checkpoints
dev/.env.web

# osmnx data cache folder
cache
# Additional Celery Beat files
celerybeat-schedule.*

# Created by https://www.gitignore.io/api/django
# Edit at https://www.gitignore.io/?templates=django
# Created by https://www.toptal.com/developers/gitignore/api/django,terraform
# Edit at https://www.toptal.com/developers/gitignore?templates=django,terraform

### Django ###
*.log
Expand All @@ -24,9 +19,7 @@ db.sqlite3
db.sqlite3-journal
media

# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/
# in your Git repository. Update and uncomment the following line accordingly.
# <django-project-name>/staticfiles/
staticfiles/

### Django.Python Stack ###
# Byte-compiled / optimized / DLL files
Expand All @@ -50,7 +43,6 @@ parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
Expand All @@ -77,23 +69,41 @@ htmlcov/
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo

# Django stuff:

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
Expand All @@ -102,24 +112,47 @@ target/
# install all needed dependencies.
#Pipfile.lock

# celery beat schedule file
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# Mr Developer
.mr.developer.cfg
.project
.pydevproject

# mkdocs documentation
/site

Expand All @@ -131,8 +164,53 @@ dmypy.json
# Pyre type checker
.pyre/

# End of https://www.gitignore.io/api/django
# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

### Terraform ###
# Local .terraform directories
**/.terraform/*

# .tfstate files
*.tfstate
*.tfstate.*

# Crash log files
crash.log
crash.*.log

# Exclude all .tfvars files, which are likely to contain sensitive data, such as
# password, private keys, and other secrets. These should not be part of version
# control as they are data points which are potentially sensitive and subject
# to change depending on the environment.
*.tfvars
*.tfvars.json

# Ignore override files as they are usually used to override resources locally and so
# are not checked in
override.tf
override.tf.json
*_override.tf
*_override.tf.json

# Include override files you do wish to add to version control using negated pattern
# !example_override.tf

# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
# example: *tfplan*

# Ignore CLI configuration files
.terraformrc
terraform.rc

# Add direnv support
.envrc
# End of https://www.toptal.com/developers/gitignore/api/django,terraform
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.10
25 changes: 25 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -174,3 +174,28 @@
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Loading
Loading