Skip to content

Commit b54be21

Browse files
authored
Merge pull request #177 from datopian/tickets/DM-42598
tickets/DM-42598: get PyPi releases going, and replace pip with UV
2 parents a87ea84 + 59484db commit b54be21

File tree

9 files changed

+80
-45
lines changed

9 files changed

+80
-45
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
- name: Set up Python
2727
uses: actions/setup-python@v5
2828
with:
29-
python-version: "3.11"
29+
python-version: "3.12"
3030

3131
- name: Run pre-commit
3232
uses: pre-commit/[email protected]

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
2+
<a id='changelog-v0.6.0'></a>
3+
## v0.6.0 (2024-12-16)
4+
5+
### New features
6+
7+
- Support Python 3.13
8+
9+
- Work through PyPi publication

Makefile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ TESTS_DIR := tests
55

66
SHELL := bash
77
PYTHON := python
8-
PIP := pip
9-
PIP_COMPILE := pip-compile
8+
PIP := uv pip
9+
PIP_COMPILE := uv pip compile
1010
PYTEST := pytest
1111
DOCKER := docker
1212
GIT := git
@@ -28,6 +28,9 @@ VERSION := $(shell $(PYTHON) -c "from importlib.metadata import version;print(ve
2828

2929
default: help
3030

31+
## Install uv (fast pip replacement)
32+
init: $(SENTINELS)/uv
33+
3134
## Regenerate requirements files
3235
requirements: requirements/dev.txt requirements/dev.in requirements/main.txt requirements/main.in
3336

@@ -90,6 +93,10 @@ $(SENTINELS)/dev-setup: init requirements/main.txt requirements/dev.txt | $(SENT
9093
$(PIP) install -r requirements/dev.txt
9194
@touch $@
9295

96+
$(SENTINELS)/uv: $(SENTINELS)
97+
pip install uv
98+
@touch $@
99+
93100
# Help related variables and targets
94101

95102
GREEN := $(shell tput -Txterm setaf 2)

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Giftless - a Pluggable Git LFS Server
55
[![Maintainability](https://api.codeclimate.com/v1/badges/58f05c5b5842c8bbbdbb/maintainability)](https://codeclimate.com/github/datopian/giftless/maintainability)
66
[![Test Coverage](https://api.codeclimate.com/v1/badges/58f05c5b5842c8bbbdbb/test_coverage)](https://codeclimate.com/github/datopian/giftless/test_coverage)
77

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

@@ -40,7 +40,7 @@ Documentation
4040

4141
License
4242
-------
43-
Copyright (C) 2020, Datopian / Viderum, Inc.
43+
Copyright (C) 2020-2024, Datopian / Viderum, Inc.
4444

4545
Giftless is free / open source software and is distributed under the terms of
4646
the MIT license. See [LICENSE](LICENSE) for details.

pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ email="[email protected]"
3838
name="Adam Thornton"
3939
4040

41+
[[project.authors]]
42+
name="Vit Zikmund"
43+
4144
[project.urls]
4245
Homepage = "https://giftless.datopian.com"
4346
Source = "https://github.com/datopian/giftless"

requirements/dev.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
-c main.txt
22

3+
uv
4+
35
pip-tools
46
tox
57
flake8
@@ -28,4 +30,6 @@ furo
2830
sphinx
2931
sphinx-autodoc-typehints
3032

33+
# Internal tooling
34+
scriv
3135

requirements/dev.txt

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
#
2-
# This file is autogenerated by pip-compile with Python 3.11
3-
# by the following command:
4-
#
5-
# pip-compile --no-emit-index-url --output-file=requirements/dev.txt requirements/dev.in
6-
#
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile --no-emit-index-url -o requirements/dev.txt requirements/dev.in
73
alabaster==0.7.16
84
# via sphinx
95
attrs==23.2.0
10-
# via pytest-mypy
6+
# via
7+
# pytest-mypy
8+
# scriv
119
babel==2.14.0
1210
# via sphinx
1311
beautifulsoup4==4.12.3
@@ -38,15 +36,17 @@ charset-normalizer==3.3.2
3836
click==8.1.7
3937
# via
4038
# -c requirements/main.txt
39+
# click-log
4140
# pip-tools
41+
# scriv
42+
click-log==0.4.0
43+
# via scriv
4244
colorama==0.4.6
4345
# via tox
4446
commonmark==0.9.1
4547
# via recommonmark
46-
coverage[toml]==7.4.3
47-
# via
48-
# coverage
49-
# pytest-cov
48+
coverage==7.4.3
49+
# via pytest-cov
5050
distlib==0.3.8
5151
# via virtualenv
5252
docutils==0.20.1
@@ -86,13 +86,18 @@ isort==5.13.2
8686
jinja2==3.1.3
8787
# via
8888
# -c requirements/main.txt
89+
# scriv
8990
# sphinx
91+
markdown-it-py==3.0.0
92+
# via scriv
9093
markupsafe==2.1.5
9194
# via
9295
# -c requirements/main.txt
9396
# jinja2
9497
mccabe==0.7.0
9598
# via flake8
99+
mdurl==0.1.2
100+
# via markdown-it-py
96101
multidict==6.0.5
97102
# via yarl
98103
mypy==1.9.0
@@ -107,6 +112,8 @@ packaging==24.0
107112
# pytest
108113
# sphinx
109114
# tox
115+
pip==24.3.1
116+
# via pip-tools
110117
pip-tools==7.4.1
111118
# via -r requirements/dev.in
112119
platformdirs==4.2.0
@@ -171,13 +178,18 @@ requests==2.31.0
171178
# via
172179
# -c requirements/main.txt
173180
# responses
181+
# scriv
174182
# sphinx
175183
responses==0.25.0
176184
# via -r requirements/dev.in
177185
rsa==4.9
178186
# via
179187
# -c requirements/main.txt
180188
# google-auth
189+
scriv==1.5.1
190+
# via -r requirements/dev.in
191+
setuptools==75.6.0
192+
# via pip-tools
181193
snowballstemmer==2.2.0
182194
# via sphinx
183195
soupsieve==2.5
@@ -228,14 +240,17 @@ types-s3transfer==0.10.0
228240
typing-extensions==4.10.0
229241
# via
230242
# -c requirements/main.txt
231-
# boto3-stubs
232243
# mypy
233244
urllib3==2.0.7
234245
# via
235246
# -c requirements/main.txt
236247
# requests
237248
# responses
238249
# types-requests
250+
uv==0.5.8
251+
# via
252+
# -c requirements/main.txt
253+
# -r requirements/dev.in
239254
vcrpy==6.0.1
240255
# via pytest-vcr
241256
virtualenv==20.25.1
@@ -246,7 +261,3 @@ wrapt==1.16.0
246261
# via vcrpy
247262
yarl==1.9.4
248263
# via vcrpy
249-
250-
# The following packages are considered to be unsafe in a requirements file:
251-
# pip
252-
# setuptools

requirements/main.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@ boto3~=1.34
2222
# GitHub AA Provider
2323
cachetools~=5.3
2424

25+
# uv: fast pip replacement
26+
uv
27+
2528
importlib-metadata; python_version < '3.13'

requirements/main.txt

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
1-
#
2-
# This file is autogenerated by pip-compile with Python 3.11
3-
# by the following command:
4-
#
5-
# pip-compile --no-emit-index-url --output-file=requirements/main.txt requirements/main.in
6-
#
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile --no-emit-index-url -o requirements/main.txt requirements/main.in
73
azure-core==1.30.1
84
# via azure-storage-blob
95
azure-storage-blob==12.19.1
10-
# via -r main.in
6+
# via -r requirements/main.in
117
blinker==1.7.0
128
# via flask
139
boto3==1.34.59
14-
# via -r main.in
10+
# via -r requirements/main.in
1511
botocore==1.34.59
1612
# via
1713
# boto3
1814
# s3transfer
1915
cachetools==5.3.3
2016
# via
21-
# -r main.in
17+
# -r requirements/main.in
2218
# google-auth
2319
certifi==2024.2.2
2420
# via requests
@@ -30,19 +26,19 @@ click==8.1.7
3026
# via flask
3127
cryptography==42.0.5
3228
# via
33-
# -r main.in
29+
# -r requirements/main.in
3430
# azure-storage-blob
3531
figcan==0.0.4
36-
# via -r main.in
32+
# via -r requirements/main.in
3733
flask==2.3.3
3834
# via
39-
# -r main.in
35+
# -r requirements/main.in
4036
# flask-classful
4137
# flask-marshmallow
4238
flask-classful==0.16.0
43-
# via -r main.in
39+
# via -r requirements/main.in
4440
flask-marshmallow==0.15.0
45-
# via -r main.in
41+
# via -r requirements/main.in
4642
google-api-core==2.17.1
4743
# via
4844
# google-cloud-core
@@ -55,7 +51,7 @@ google-auth==2.28.2
5551
google-cloud-core==2.4.1
5652
# via google-cloud-storage
5753
google-cloud-storage==2.15.0
58-
# via -r main.in
54+
# via -r requirements/main.in
5955
google-crc32c==1.5.0
6056
# via
6157
# google-cloud-storage
@@ -66,8 +62,8 @@ googleapis-common-protos==1.63.0
6662
# via google-api-core
6763
idna==3.6
6864
# via requests
69-
importlib-metadata==7.0.2 ; python_version < "3.13"
70-
# via -r main.in
65+
importlib-metadata==7.0.2
66+
# via -r requirements/main.in
7167
isodate==0.6.1
7268
# via azure-storage-blob
7369
itsdangerous==2.1.2
@@ -104,15 +100,15 @@ pyasn1-modules==0.3.0
104100
pycparser==2.21
105101
# via cffi
106102
pyjwt==2.8.0
107-
# via -r main.in
103+
# via -r requirements/main.in
108104
python-dateutil==2.9.0.post0
109105
# via
110-
# -r main.in
106+
# -r requirements/main.in
111107
# botocore
112108
python-dotenv==1.0.1
113-
# via -r main.in
109+
# via -r requirements/main.in
114110
pyyaml==6.0.1
115-
# via -r main.in
111+
# via -r requirements/main.in
116112
requests==2.31.0
117113
# via
118114
# azure-core
@@ -129,18 +125,20 @@ six==1.16.0
129125
# python-dateutil
130126
typing-extensions==4.10.0
131127
# via
132-
# -r main.in
128+
# -r requirements/main.in
133129
# azure-core
134130
# azure-storage-blob
135131
urllib3==2.0.7
136132
# via
137133
# botocore
138134
# requests
135+
uv==0.5.8
136+
# via -r requirements/main.in
139137
webargs==8.4.0
140-
# via -r main.in
138+
# via -r requirements/main.in
141139
werkzeug==3.0.3
142140
# via
143-
# -r main.in
141+
# -r requirements/main.in
144142
# flask
145143
zipp==3.17.0
146144
# via importlib-metadata

0 commit comments

Comments
 (0)