@@ -15,7 +15,7 @@ install-toolkits: ## Install dependencies for all toolkits
1515 for dir in toolkits/* / ; do \
1616 if [ -d " $$ dir" ] && [ -f " $$ dir/pyproject.toml" ]; then \
1717 echo " 📦 Installing dependencies for $$ dir" ; \
18- if (cd $$ dir && uv sync --dev); then \
18+ if (cd $$ dir && uv sync --extra dev); then \
1919 successful=$$((successful + 1 ) ); \
2020 else \
2121 echo " ❌ Failed to install dependencies for $$ dir" ; \
@@ -43,15 +43,15 @@ check: ## Run code quality tools.
4343 @echo " 🚀 Linting code: Running pre-commit"
4444 @uv run pre-commit run -a
4545 @echo " 🚀 Static type checking: Running mypy on libs"
46- @for lib in libs/arcade- * / ; do \
46+ @for lib in libs/arcade* / ; do \
4747 echo " 🔍 Type checking $$ lib" ; \
4848 (cd $$ lib && uv run mypy . || true); \
4949 done
5050
5151.PHONY : check-libs
5252check-libs : # # Run code quality tools for each lib package
5353 @echo " 🚀 Running checks on each lib package"
54- @for lib in libs/arcade- * / ; do \
54+ @for lib in libs/arcade* / ; do \
5555 echo " 🛠️ Checking lib $$ lib" ; \
5656 (cd $$ lib && uv run pre-commit run -a || true); \
5757 (cd $$ lib && uv run mypy . || true); \
@@ -63,7 +63,7 @@ check-toolkits: ## Run code quality tools for each toolkit that has a Makefile
6363 @for dir in toolkits/* / ; do \
6464 if [ -f " $$ dir/Makefile" ]; then \
6565 echo " 🛠️ Checking toolkit $$ dir" ; \
66- (cd " $$ dir" && make check ); \
66+ (cd " $$ dir" && uv run --active pre-commit run -a && uv run --active mypy --config-file=pyproject.toml ); \
6767 else \
6868 echo " 🛠️ Skipping toolkit $$ dir (no Makefile found)" ; \
6969 fi ; \
@@ -72,12 +72,12 @@ check-toolkits: ## Run code quality tools for each toolkit that has a Makefile
7272.PHONY : test
7373test : # # Test the code with pytest
7474 @echo " 🚀 Testing libs: Running pytest"
75- @cd libs/tests && uv run pytest -W ignore -v --cov --cov-config=../../ pyproject.toml --cov-report=xml
75+ @uv run pytest -W ignore -v --cov=libs/tests --cov-config=pyproject.toml --cov-report=xml
7676
7777.PHONY : test-libs
7878test-libs : # # Test each lib package individually
7979 @echo " 🚀 Testing each lib package"
80- @for lib in libs/arcade- * / ; do \
80+ @for lib in libs/arcade* / ; do \
8181 echo " 🧪 Testing $$ lib" ; \
8282 (cd $$ lib && uv run pytest -W ignore -v || true); \
8383 done
@@ -86,36 +86,38 @@ test-libs: ## Test each lib package individually
8686test-toolkits : # # Iterate over all toolkits and run pytest on each one
8787 @echo " 🚀 Testing code in toolkits: Running pytest"
8888 @for dir in toolkits/* / ; do \
89- (cd $$ dir && uv run pytest -W ignore -v --cov --cov-config=../../pyproject.toml --cov-report=xml || exit 1); \
89+ toolkit_name=$$(basename "$$dir") ; \
90+ echo " 🧪 Testing $$ toolkit_name toolkit" ; \
91+ (cd $$ dir && uv run pytest -W ignore -v --cov=arcade_$$ toolkit_name --cov-report=xml || exit 1); \
9092 done
9193
9294.PHONY : coverage
9395coverage : # # Generate coverage report
9496 @echo " coverage report"
95- @cd libs/tests && uv run coverage report
97+ @uv run coverage report
9698 @echo " Generating coverage report"
97- @cd libs/tests && uv run coverage html
99+ @uv run coverage html
98100
99101.PHONY : set-version
100102set-version : # # Set the version in all lib pyproject.toml files
101103 @echo " 🚀 Setting version to $( VERSION) in all lib packages"
102- @for lib in libs/arcade- * / ; do \
104+ @for lib in libs/arcade* / ; do \
103105 echo " Setting version in $$ lib" ; \
104106 (cd $$ lib && sed -i.bak ' s/version = "[^"]*"/version = "$(VERSION)"/' pyproject.toml && rm pyproject.toml.bak); \
105107 done
106108
107109.PHONY : unset-version
108110unset-version : # # Reset version to 0.1.0 in all lib pyproject.toml files
109111 @echo " 🚀 Resetting version to 0.1.0 in all lib packages"
110- @for lib in libs/arcade- * / ; do \
112+ @for lib in libs/arcade* / ; do \
111113 echo " Resetting version in $$ lib" ; \
112114 (cd $$ lib && sed -i.bak ' s/version = "[^"]*"/version = "0.1.0"/' pyproject.toml && rm pyproject.toml.bak); \
113115 done
114116
115117.PHONY : build
116118build : clean-build # # Build wheel files using uv
117119 @echo " 🚀 Creating wheel files for all lib packages"
118- @for lib in libs/arcade- * / ; do \
120+ @for lib in libs/arcade* / ; do \
119121 echo " 🛠️ Building $$ lib" ; \
120122 (cd $$ lib && uv build); \
121123 done
@@ -155,14 +157,14 @@ build-toolkits: ## Build wheel files for all toolkits
155157.PHONY : clean-build
156158clean-build : # # clean build artifacts
157159 @echo " 🗑️ Cleaning build artifacts"
158- @for lib in libs/arcade- * / ; do \
160+ @for lib in libs/arcade* / ; do \
159161 (cd $$ lib && rm -rf dist); \
160162 done
161163
162164.PHONY : publish
163165publish : # # publish a release to pypi.
164166 @echo " 🚀 Publishing all lib packages to PyPI"
165- @for lib in libs/arcade- * / ; do \
167+ @for lib in libs/arcade* / ; do \
166168 echo " 📦 Publishing $$ lib" ; \
167169 (cd $$ lib && uv publish --token $( PYPI_TOKEN) || true); \
168170 done
@@ -211,7 +213,7 @@ full-dist: clean-dist ## Build all projects and copy wheels to ./dist
211213 @mkdir -p dist
212214
213215 # Build all lib packages in dependency order
214- @for lib in arcade-core arcade-tdk arcade-serve arcade-evals arcade-cli ; do \
216+ @for lib in arcade-core arcade-tdk arcade-serve arcade-evals arcadecli ; do \
215217 echo "🛠️ Building libs/$$lib wheel..."; \
216218 (cd libs/$$lib && uv build); \
217219 cp libs/$$lib/dist/*.whl dist/; \
@@ -235,7 +237,7 @@ clean-dist: ## Clean all built distributions
235237 @echo " 🗑️ Cleaning dist directory"
236238 @rm -rf dist
237239 @echo " 🗑️ Cleaning libs/*/dist directories"
238- @for lib in libs/arcade- * / ; do \
240+ @for lib in libs/arcade* / ; do \
239241 rm -rf " $$ lib" /dist; \
240242 done
241243 @echo " 🗑️ Cleaning toolkits/*/dist directory"
0 commit comments