Changes to payment models #32

Merged
valberg merged 35 commits from benjaoming/membersystem:payment-updates into main 2024-08-03 17:55:33 +00:00
5 changed files with 54 additions and 35 deletions
Showing only changes of commit 4c810efe6c - Show all commits

View file

@ -1,20 +1,31 @@
FROM python:3.12-slim-bullseye FROM python:3.12-slim-bookworm
# PYTHONFAULTHANDLER: Propagate tracebacks from all threads.
# PYTHONUNBUFFERED: Write terminal output straight to docker (to not confuse Docker Compose).
# PYTHONDONTWRITEBYTECODE: Dont write *pyc files at all, making it possible for a 100% read-only container.
# PIP_NO_CACHE_DIR: Disable PIP cache, we don't need pip's cache after building the image.
# PIP_DISABLE_PIP_VERSION_CHECK: Build the image with the available pip, do not check for updates (faster!)
# PIP_DEFAULT_TIMEOUT: Allow for longer timeouts.
ENV PYTHONFAULTHANDLER=1 \ ENV PYTHONFAULTHANDLER=1 \
PYTHONUNBUFFERED=1 \ PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \ PYTHONDONTWRITEBYTECODE=1 \
PYTHONHASHSEED=random \ PIP_NO_CACHE_DIR=1 \
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=on \ PIP_DISABLE_PIP_VERSION_CHECK=on \
PIP_DEFAULT_TIMEOUT=100 PIP_DEFAULT_TIMEOUT=100
ARG BUILD ARG BUILD
ENV BUILD ${BUILD} ENV BUILD=${BUILD}
ARG REQUIREMENTS_FILE=requirements.txt ARG REQUIREMENTS_FILE=requirements.txt
WORKDIR /app WORKDIR /app
RUN groupadd -g 1000 www && useradd -u 1000 -ms /bin/bash -g www www RUN groupadd -g 1000 www && useradd -u 1000 -ms /bin/bash -g www www
RUN apt-get update && \
# Only copy the requirements file first to leverage Docker cache
COPY $REQUIREMENTS_FILE .
RUN mkdir -p /app/src/static && \
chown www:www /app/src/static && \
apt-get update && \
apt-get install -y \ apt-get install -y \
binutils \ binutils \
libpq-dev \ libpq-dev \
@ -26,15 +37,13 @@ RUN apt-get update && \
libgdk-pixbuf2.0-0 \ libgdk-pixbuf2.0-0 \
libffi-dev \ libffi-dev \
shared-mime-info \ shared-mime-info \
gettext gettext && \
pip install --no-cache-dir -r $REQUIREMENTS_FILE
COPY --chown=www:www . . # Copy the rest of the application
COPY . .
RUN mkdir /app/src/static && \ RUN django-admin compilemessages
chown www:www /app/src/static
RUN pip install --no-cache-dir -r $REQUIREMENTS_FILE
RUN django-admin compilemessages
ENTRYPOINT ["./entrypoint.sh"] ENTRYPOINT ["./entrypoint.sh"]

View file

@ -98,3 +98,13 @@ hatch-pip-compile
# Update requirements/requirements-dev.txt: # Update requirements/requirements-dev.txt:
hatch-pip-compile dev hatch-pip-compile dev
``` ```
#### Updating requirements
If you want to update the requirements, you can run the following command:
```bash
hatch run requirements
```
This uses [hatch-pip-compile](https://juftin.com/hatch-pip-compile/) to update the requirements.

View file

@ -13,16 +13,16 @@ authors = [
] ]
dependencies = [ dependencies = [
"Django>=5.1b1,<5.2", "Django>=5.1b1,<5.2",
benjaoming marked this conversation as resolved
Review

It should be okay to use the new Django 5.1... then we can help out if we discover a bug :) it's rc1 now...

It should be okay to use the new Django 5.1... then we can help out if we discover a bug :) it's rc1 now...
"django-money==3.5.2", "django-money~=3.5",
"django-allauth==0.63.6", "django-allauth~=0.63",
"psycopg[binary]==3.2.1", "psycopg[binary]~=3.2",
"environs[django]==11.0.0", "environs[django]>=11,<12",
"uvicorn==0.30.1", "uvicorn~=0.30",
"whitenoise==6.7.0", "whitenoise~=6.7",
"django-zen-queries==2.1.0", "django-zen-queries~=2.1",
"django-registries==0.0.3", "django-registries==0.0.3",
"django-view-decorator==0.0.4", "django-view-decorator==0.0.4",
"django-oauth-toolkit==2.4.0", "django-oauth-toolkit~=2.4",
"django_stubs_ext~=5.0", "django_stubs_ext~=5.0",
benjaoming marked this conversation as resolved
Review

Noting that this got reintroduced... I don't use it... but is it used? Or did you remove it on purpose @valberg ?

Noting that this got reintroduced... I don't use it... but is it used? Or did you remove it on purpose @valberg ?
Review

I did not do it on purpose no 😊 my all means remove it if it is isn't being used

I did not do it on purpose no 😊 my all means remove it if it is isn't being used
Review

Oh god now I know what's going on... it's for the mypy django-stubs thing...

Yes, we need it for running mypy with Django. I think I spend 2 minutes to get it working. But I didn't actually fix any errors. I think we can keep it for now and then we should open an issue if we want to keep using it.

Or we can decide that we don't want to spend time on this because it doesn't find any real issues.

Oh god now I know what's going on... it's for the mypy django-stubs thing... Yes, we need it for running mypy with Django. I think I spend 2 minutes to get it working. But I didn't actually fix any errors. I think we can keep it for now and then we should open an issue if we want to keep using it. Or we can decide that we don't want to spend time on this because it doesn't find any real issues.
Review

#37

https://git.data.coop/data.coop/membersystem/issues/37
"stripe~=10.5", "stripe~=10.5",
] ]
@ -64,7 +64,7 @@ matrix.python.dependencies = [
{ value = "typing_extensions==4.5.0", if = ["3.10"]}, { value = "typing_extensions==4.5.0", if = ["3.10"]},
] ]
[tool.hatch.envs.dev.scripts] [tool.hatch.envs.default.scripts]
cov = "pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=src --cov=tests --cov=append {args}" cov = "pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=src --cov=tests --cov=append {args}"
no-cov = "cov --no-cov {args}" no-cov = "cov --no-cov {args}"
typecheck = "mypy --config-file=pyproject.toml ." typecheck = "mypy --config-file=pyproject.toml ."

View file

@ -16,7 +16,7 @@ charset-normalizer==3.3.2
# via requests # via requests
click==8.1.7 click==8.1.7
# via uvicorn # via uvicorn
cryptography==42.0.8 cryptography==43.0.0
# via jwcrypto # via jwcrypto
dj-database-url==2.2.0 dj-database-url==2.2.0
# via environs # via environs
@ -97,7 +97,7 @@ typing-extensions==4.12.2
# stripe # stripe
urllib3==2.2.2 urllib3==2.2.2
# via requests # via requests
uvicorn==0.30.1 uvicorn==0.30.4
# via membersystem (pyproject.toml) # via membersystem (pyproject.toml)
whitenoise==6.7.0 whitenoise==6.7.0
# via membersystem (pyproject.toml) # via membersystem (pyproject.toml)

View file

@ -11,19 +11,19 @@
# - django-debug-toolbar==4.2.0 # - django-debug-toolbar==4.2.0
# - django-browser-reload==1.7.0 # - django-browser-reload==1.7.0
# - model-bakery==1.17.0 # - model-bakery==1.17.0
# - django-allauth==0.63.6 # - django-allauth~=0.63
# - django-money==3.5.2 # - django-money~=3.5
# - django-oauth-toolkit==2.4.0 # - django-oauth-toolkit~=2.4
# - django-registries==0.0.3 # - django-registries==0.0.3
# - django-stubs-ext~=5.0 # - django-stubs-ext~=5.0
# - django-view-decorator==0.0.4 # - django-view-decorator==0.0.4
# - django-zen-queries==2.1.0 # - django-zen-queries~=2.1
# - django<5.2,>=5.1b1 # - django<5.2,>=5.1b1
# - environs[django]==11.0.0 # - environs[django]<12,>=11
# - psycopg[binary]==3.2.1 # - psycopg[binary]~=3.2
# - stripe~=10.5 # - stripe~=10.5
# - uvicorn==0.30.1 # - uvicorn~=0.30
# - whitenoise==6.7.0 # - whitenoise~=6.7
# #
asgiref==3.8.1 asgiref==3.8.1
@ -49,7 +49,7 @@ coverage==7.3.0
# hatch.envs.dev # hatch.envs.dev
# coverage # coverage
# pytest-cov # pytest-cov
cryptography==42.0.8 cryptography==43.0.0
# via jwcrypto # via jwcrypto
dj-database-url==2.2.0 dj-database-url==2.2.0
# via environs # via environs
@ -86,7 +86,7 @@ django-registries==0.0.3
# via hatch.envs.dev # via hatch.envs.dev
django-stubs==1.16.0 django-stubs==1.16.0
# via hatch.envs.dev # via hatch.envs.dev
django-stubs-ext==5.0.2 django-stubs-ext==5.0.4
# via # via
# hatch.envs.dev # hatch.envs.dev
# django-stubs # django-stubs
@ -166,7 +166,7 @@ tomli==2.0.1
# via django-stubs # via django-stubs
types-pytz==2024.1.0.20240417 types-pytz==2024.1.0.20240417
# via django-stubs # via django-stubs
types-pyyaml==6.0.12.20240311 types-pyyaml==6.0.12.20240724
# via django-stubs # via django-stubs
typing-extensions==4.12.2 typing-extensions==4.12.2
# via # via
@ -180,7 +180,7 @@ typing-extensions==4.12.2
# stripe # stripe
urllib3==2.2.2 urllib3==2.2.2
# via requests # via requests
uvicorn==0.30.1 uvicorn==0.30.3
# via hatch.envs.dev # via hatch.envs.dev
wheel==0.43.0 wheel==0.43.0
# via pip-tools # via pip-tools