@@ -7,7 +7,7 @@ COMPOSE_PROJECT_NAME ?= flagsmith
77
88DOTENV_OVERRIDE_FILE ?= .env
99
10- POETRY_VERSION ?= 2.2.1
10+ UV_VERSION ?= $( shell python -c 'import tomllib; print(tomllib.load(open("pyproject.toml","rb") )["tool"]["uv"]["required-version"].lstrip("="))')
1111
1212SAML_REVISION ?= v1.6.6
1313RBAC_REVISION ?= v0.13.0
@@ -21,32 +21,32 @@ OPENAPI_FORMAT_VERSION ?= 1.23.0
2121install-pip :
2222 python -m pip -q install --upgrade pip
2323
24- .PHONY : install-poetry
25- install-poetry :
26- python -m pip -q install poetry ==${POETRY_VERSION }
24+ .PHONY : install-uv
25+ install-uv :
26+ python -m pip -q install uv ==${UV_VERSION }
2727
2828.PHONY : install-packages
2929install-packages :
30- poetry install --no-root $(opts )
30+ uv sync --frozen $(opts )
3131
3232.PHONY : install-private-modules
3333install-private-modules :
34- $(eval SITE_PACKAGES_DIR := $(shell poetry run python -c 'import site; print(site.getsitepackages() [0]) ' ))
34+ $(eval SITE_PACKAGES_DIR := $(shell uv run python -c 'import site; print(site.getsitepackages() [0]) ' ))
3535 rm -rf $(SITE_PACKAGES_DIR ) /saml $(SITE_PACKAGES_DIR ) /rbac
3636 git clone https://github.com/flagsmith/flagsmith-saml --depth 1 --branch ${SAML_REVISION} && mv ./flagsmith-saml/saml $(SITE_PACKAGES_DIR )
3737 git clone https://github.com/flagsmith/flagsmith-rbac --depth 1 --branch ${RBAC_REVISION} && mv ./flagsmith-rbac/rbac $(SITE_PACKAGES_DIR )
3838 rm -rf ./flagsmith-saml ./flagsmith-rbac
3939
4040.PHONY : install
41- install : install-pip install-poetry install-packages
41+ install : install-pip install-uv install-packages
4242
4343.PHONY : lint
4444lint :
45- poetry run pre-commit run -a
45+ uv run pre-commit run -a
4646
4747.PHONY : typecheck
4848typecheck :
49- poetry run mypy .
49+ uv run mypy .
5050
5151.PHONY : docker-up
5252docker-up :
@@ -71,44 +71,44 @@ docker-build:
7171
7272.PHONY : wait-for-db
7373wait-for-db :
74- poetry run python manage.py waitfordb
75- poetry run python manage.py waitfordb --database analytics
74+ uv run python manage.py waitfordb
75+ uv run python manage.py waitfordb --database analytics
7676
7777.PHONY : test
7878test : docker-up wait-for-db
79- poetry run pytest $(opts )
79+ uv run pytest $(opts )
8080
8181.PHONY : django-make-migrations
8282django-make-migrations : docker-up wait-for-db
83- poetry run python manage.py waitfordb
84- poetry run python manage.py makemigrations $(opts )
83+ uv run python manage.py waitfordb
84+ uv run python manage.py makemigrations $(opts )
8585
8686.PHONY : django-squash-migrations
8787django-squash-migrations : docker-up wait-for-db
88- poetry run python manage.py waitfordb
89- poetry run python manage.py squashmigrations $(opts )
88+ uv run python manage.py waitfordb
89+ uv run python manage.py squashmigrations $(opts )
9090
9191.PHONY : django-migrate
9292django-migrate : docker-up wait-for-db
93- poetry run python manage.py waitfordb
94- poetry run python manage.py migrate
95- poetry run python manage.py createcachetable
93+ uv run python manage.py waitfordb
94+ uv run python manage.py migrate
95+ uv run python manage.py createcachetable
9696
9797.PHONY : django-shell
9898django-shell :
99- poetry run python manage.py shell_plus
99+ uv run python manage.py shell_plus
100100
101101.PHONY : django-collect-static
102102django-collect-static :
103- poetry run python manage.py collectstatic --noinput
103+ uv run python manage.py collectstatic --noinput
104104
105105.PHONY : serve
106106serve : docker-up wait-for-db
107- poetry run flagsmith start --reload api
107+ uv run flagsmith start --reload api
108108
109109.PHONY : run-task-processor
110110run-task-processor : docker-up wait-for-db
111- poetry run flagsmith start --reload --bind 0.0.0.0:8001 task-processor
111+ uv run flagsmith start --reload --bind 0.0.0.0:8001 task-processor
112112
113113.PHONY : serve-with-task-processor
114114serve-with-task-processor : TASK_RUN_METHOD=TASK_PROCESSOR
@@ -118,7 +118,7 @@ serve-with-task-processor:
118118.PHONY : generate-flagsmith-sdk-openapi
119119generate-flagsmith-sdk-openapi : OPENAPI_SERVERS=[{"url": "https://edge.api.flagsmith.com", "description": "Flagsmith Edge API"}]
120120generate-flagsmith-sdk-openapi :
121- poetry run python manage.py spectacular | \
121+ uv run python manage.py spectacular | \
122122 npx openapi-format@${OPENAPI_FORMAT_VERSION} /dev/fd/0 \
123123 --filterFile openapi-filter-flagsmith-sdk.yml \
124124 --output ../sdk/openapi.yaml
@@ -153,8 +153,8 @@ generate-grafana-client-types:
153153
154154.PHONY : integrate-private-tests
155155integrate-private-tests :
156- $(eval WORKFLOW_REVISION := $(shell grep -A 1 "\[ tool.poetry.group. workflows.dependencies\]" pyproject.toml | awk -F '"' '{printf $$4} ') )
157- $(eval AUTH_CONTROLLER_REVISION := $(shell grep -A 1 "\[ tool.poetry.group. auth-controller.dependencies\]" pyproject.toml | awk -F '"' '{printf $$4} ') )
156+ $(eval WORKFLOW_REVISION := $(shell uv run python -c 'import tomllib; d=tomllib.load(open("pyproject.toml","rb") ) ; s=d.get( " tool" ,{}).get( " uv " ,{}).get( " sources " ,{}).get( " workflows-logic " ,{}) ; print(s.get( " tag " ) or s.get( " rev " ) or " " ) ' ))
157+ $(eval AUTH_CONTROLLER_REVISION := $(shell uv run python -c 'import tomllib; d=tomllib.load(open("pyproject.toml","rb") ) ; s=d.get( " tool" ,{}).get( " uv " ,{}).get( " sources " ,{}).get( " auth-controller" ,{}) ; print(s.get( " tag " ) or s.get( " rev " ) or " " ) ' ))
158158
159159 git clone https://github.com/flagsmith/flagsmith-saml --depth 1 --branch ${SAML_REVISION} && mv ./flagsmith-saml/tests tests/saml_tests
160160 git clone https://github.com/flagsmith/flagsmith-rbac --depth 1 --branch ${RBAC_REVISION} && mv ./flagsmith-rbac/tests tests/rbac_tests
@@ -164,13 +164,13 @@ integrate-private-tests:
164164
165165.PHONY : generate-docs
166166generate-docs : generate-flagsmith-sdk-openapi
167- poetry run flagsmith docgen metrics > ../docs/docs/deployment-self-hosting/observability/_metrics-catalogue.md
168- poetry run flagsmith docgen events > ../docs/docs/deployment-self-hosting/observability/_events-catalogue.md
167+ uv run flagsmith docgen metrics > ../docs/docs/deployment-self-hosting/observability/_metrics-catalogue.md
168+ uv run flagsmith docgen events > ../docs/docs/deployment-self-hosting/observability/_events-catalogue.md
169169
170170.PHONY : add-known-sdk-version
171171add-known-sdk-version :
172- poetry run python scripts/add-known-sdk-version.py $(opts )
172+ uv run python scripts/add-known-sdk-version.py $(opts )
173173
174174.PHONY : generate-mcp-spec
175175generate-mcp-spec :
176- poetry run python manage.py spectacular --generator-class api.openapi.MCPSchemaGenerator --file mcp_openapi.yaml
176+ uv run python manage.py spectacular --generator-class api.openapi.MCPSchemaGenerator --file mcp_openapi.yaml
0 commit comments