Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tickets/DM-42598: get PyPi releases going, and replace pip with UV #177

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
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
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
python-version: "3.12"

- name: Run pre-commit
uses: pre-commit/[email protected]
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ TESTS_DIR := tests

SHELL := bash
PYTHON := python
PIP := pip
PIP_COMPILE := pip-compile
PIP := uv pip
PIP_COMPILE := uv pip compile
PYTEST := pytest
DOCKER := docker
GIT := git
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Giftless - a Pluggable Git LFS Server
[![Maintainability](https://api.codeclimate.com/v1/badges/58f05c5b5842c8bbbdbb/maintainability)](https://codeclimate.com/github/datopian/giftless/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/58f05c5b5842c8bbbdbb/test_coverage)](https://codeclimate.com/github/datopian/giftless/test_coverage)

Giftless a Python implementation of a [Git LFS][1] Server. It is designed
Giftless is a Python implementation of a [Git LFS][1] Server. It is designed
with flexibility in mind, to allow pluggable storage backends, transfer
methods and authentication methods.

Expand Down Expand Up @@ -40,7 +40,7 @@ Documentation

License
-------
Copyright (C) 2020, Datopian / Viderum, Inc.
Copyright (C) 2020-2024, Datopian / Viderum, Inc.

Giftless is free / open source software and is distributed under the terms of
the MIT license. See [LICENSE](LICENSE) for details.
8 changes: 8 additions & 0 deletions changelog.d/20241213_112045_athornton_DM_42598.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!-- Delete the sections that don't apply -->

### New features

- Support Python 3.13

- Work through PyPi publication

3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ email="[email protected]"
name="Adam Thornton"
email="[email protected]"

[[project.authors]]
name="Vit Zikmund"

[project.urls]
Homepage = "https://giftless.datopian.com"
Source = "https://github.com/datopian/giftless"
Expand Down
4 changes: 4 additions & 0 deletions requirements/dev.in
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
-c main.txt

uv

pip-tools
tox
flake8
Expand Down Expand Up @@ -28,4 +30,6 @@ furo
sphinx
sphinx-autodoc-typehints

# Internal tooling
scriv

43 changes: 27 additions & 16 deletions requirements/dev.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile --no-emit-index-url --output-file=requirements/dev.txt requirements/dev.in
#
# This file was autogenerated by uv via the following command:
# uv pip compile --no-emit-index-url -o requirements/dev.txt requirements/dev.in
alabaster==0.7.16
# via sphinx
attrs==23.2.0
# via pytest-mypy
# via
# pytest-mypy
# scriv
babel==2.14.0
# via sphinx
beautifulsoup4==4.12.3
Expand Down Expand Up @@ -38,15 +36,17 @@ charset-normalizer==3.3.2
click==8.1.7
# via
# -c requirements/main.txt
# click-log
# pip-tools
# scriv
click-log==0.4.0
# via scriv
colorama==0.4.6
# via tox
commonmark==0.9.1
# via recommonmark
coverage[toml]==7.4.3
# via
# coverage
# pytest-cov
coverage==7.4.3
# via pytest-cov
distlib==0.3.8
# via virtualenv
docutils==0.20.1
Expand Down Expand Up @@ -86,13 +86,18 @@ isort==5.13.2
jinja2==3.1.3
# via
# -c requirements/main.txt
# scriv
# sphinx
markdown-it-py==3.0.0
# via scriv
markupsafe==2.1.5
# via
# -c requirements/main.txt
# jinja2
mccabe==0.7.0
# via flake8
mdurl==0.1.2
# via markdown-it-py
multidict==6.0.5
# via yarl
mypy==1.9.0
Expand All @@ -107,6 +112,8 @@ packaging==24.0
# pytest
# sphinx
# tox
pip==24.3.1
# via pip-tools
pip-tools==7.4.1
# via -r requirements/dev.in
platformdirs==4.2.0
Expand Down Expand Up @@ -171,13 +178,18 @@ requests==2.31.0
# via
# -c requirements/main.txt
# responses
# scriv
# sphinx
responses==0.25.0
# via -r requirements/dev.in
rsa==4.9
# via
# -c requirements/main.txt
# google-auth
scriv==1.5.1
# via -r requirements/dev.in
setuptools==75.6.0
# via pip-tools
snowballstemmer==2.2.0
# via sphinx
soupsieve==2.5
Expand Down Expand Up @@ -228,14 +240,17 @@ types-s3transfer==0.10.0
typing-extensions==4.10.0
# via
# -c requirements/main.txt
# boto3-stubs
# mypy
urllib3==2.0.7
# via
# -c requirements/main.txt
# requests
# responses
# types-requests
uv==0.5.8
# via
# -c requirements/main.txt
# -r requirements/dev.in
vcrpy==6.0.1
# via pytest-vcr
virtualenv==20.25.1
Expand All @@ -246,7 +261,3 @@ wrapt==1.16.0
# via vcrpy
yarl==1.9.4
# via vcrpy

# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools
3 changes: 3 additions & 0 deletions requirements/main.in
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,7 @@ boto3~=1.34
# GitHub AA Provider
cachetools~=5.3

# uv: fast pip replacement
uv

importlib-metadata; python_version < '3.13'
46 changes: 22 additions & 24 deletions requirements/main.txt
Original file line number Diff line number Diff line change
@@ -1,24 +1,20 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile --no-emit-index-url --output-file=requirements/main.txt requirements/main.in
#
# This file was autogenerated by uv via the following command:
# uv pip compile --no-emit-index-url -o requirements/main.txt requirements/main.in
azure-core==1.30.1
# via azure-storage-blob
azure-storage-blob==12.19.1
# via -r main.in
# via -r requirements/main.in
blinker==1.7.0
# via flask
boto3==1.34.59
# via -r main.in
# via -r requirements/main.in
botocore==1.34.59
# via
# boto3
# s3transfer
cachetools==5.3.3
# via
# -r main.in
# -r requirements/main.in
# google-auth
certifi==2024.2.2
# via requests
Expand All @@ -30,19 +26,19 @@ click==8.1.7
# via flask
cryptography==42.0.5
# via
# -r main.in
# -r requirements/main.in
# azure-storage-blob
figcan==0.0.4
# via -r main.in
# via -r requirements/main.in
flask==2.3.3
# via
# -r main.in
# -r requirements/main.in
# flask-classful
# flask-marshmallow
flask-classful==0.16.0
# via -r main.in
# via -r requirements/main.in
flask-marshmallow==0.15.0
# via -r main.in
# via -r requirements/main.in
google-api-core==2.17.1
# via
# google-cloud-core
Expand All @@ -55,7 +51,7 @@ google-auth==2.28.2
google-cloud-core==2.4.1
# via google-cloud-storage
google-cloud-storage==2.15.0
# via -r main.in
# via -r requirements/main.in
google-crc32c==1.5.0
# via
# google-cloud-storage
Expand All @@ -66,8 +62,8 @@ googleapis-common-protos==1.63.0
# via google-api-core
idna==3.6
# via requests
importlib-metadata==7.0.2 ; python_version < "3.13"
# via -r main.in
importlib-metadata==7.0.2
# via -r requirements/main.in
isodate==0.6.1
# via azure-storage-blob
itsdangerous==2.1.2
Expand Down Expand Up @@ -104,15 +100,15 @@ pyasn1-modules==0.3.0
pycparser==2.21
# via cffi
pyjwt==2.8.0
# via -r main.in
# via -r requirements/main.in
python-dateutil==2.9.0.post0
# via
# -r main.in
# -r requirements/main.in
# botocore
python-dotenv==1.0.1
# via -r main.in
# via -r requirements/main.in
pyyaml==6.0.1
# via -r main.in
# via -r requirements/main.in
requests==2.31.0
# via
# azure-core
Expand All @@ -129,18 +125,20 @@ six==1.16.0
# python-dateutil
typing-extensions==4.10.0
# via
# -r main.in
# -r requirements/main.in
# azure-core
# azure-storage-blob
urllib3==2.0.7
# via
# botocore
# requests
uv==0.5.8
# via -r requirements/main.in
webargs==8.4.0
# via -r main.in
# via -r requirements/main.in
werkzeug==3.0.3
# via
# -r main.in
# -r requirements/main.in
# flask
zipp==3.17.0
# via importlib-metadata
Loading