unity-devkit 0.1.11__tar.gz → 0.1.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/.github/workflows/release.yml +1 -1
  2. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/AGENTS.md +1 -1
  3. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/PKG-INFO +1 -1
  4. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/publish-config.json +1 -0
  5. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/pyproject.toml +1 -1
  6. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/unity.py +6 -2
  7. unity_devkit-0.1.13/tests/test_prepare.py +36 -0
  8. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/.gitattributes +0 -0
  9. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/.github/workflows/ci.yml +0 -0
  10. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/.github/workflows/unity-build.yml +0 -0
  11. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/.gitignore +0 -0
  12. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/CLAUDE.md +0 -0
  13. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/LICENSE +0 -0
  14. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/NOTICE +0 -0
  15. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/README.md +0 -0
  16. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/ruff.base.toml +0 -0
  17. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/ruff.toml +0 -0
  18. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/__init__.py +0 -0
  19. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/build_unity.py +0 -0
  20. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/compile_unity.py +0 -0
  21. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/install.py +0 -0
  22. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/license.py +0 -0
  23. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/license_restore.py +0 -0
  24. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/lock_unity.py +0 -0
  25. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/matrix.py +0 -0
  26. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/projects.py +0 -0
  27. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/py.typed +0 -0
  28. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/src/unity_devkit/test_unity.py +0 -0
  29. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/tests/test_projects.py +0 -0
  30. {unity_devkit-0.1.11 → unity_devkit-0.1.13}/uv.lock +0 -0
@@ -28,4 +28,4 @@ jobs:
28
28
  - uses: astral-sh/setup-uv@v7
29
29
 
30
30
  - name: Publish
31
- run: uvx --from release-devkit==0.1.3 publish-packages --config publish-config.json
31
+ run: uvx --from release-devkit==0.1.10 publish-stable --config publish-config.json
@@ -8,7 +8,7 @@ The repo and package renamed from `unity-buildkit` to `unity-devkit` (2026-09-21
8
8
 
9
9
  ## Release flow
10
10
 
11
- Publishing rides `release.yml`, triggered by a successful CI run on a `main` push: the machinery — release-devkit's `publish-packages` (an inlined, version-pinned `uvx` step in the publish job, keeping OIDC identity local), never a project dependency (unity-devkit sits inside its own dependency graph; a project-level release-devkit edge is a resolver cycle) — computes the plan from the tag ledger and path-diff, patches the version ephemerally, and publishes to PyPI under OIDC trusted publishing (publisher bound to `release.yml`, no environment). The committed `pyproject.toml` version is permanently the `0.0.0.dev0` sentinel; the `unity-devkit-v*` tags are the version ledger (first release `0.1.0`, patch-auto thereafter). API-breaking changes ship with a manually bumped version — patch-auto assumes additive changes.
11
+ Publishing rides `release.yml`, triggered by a successful CI run on a `main` push: the machinery — release-devkit's `publish-stable` (an inlined, version-pinned `uvx` step in the publish job, keeping OIDC identity local), never a project dependency (unity-devkit sits inside its own dependency graph; a project-level release-devkit edge is a resolver cycle) — computes the plan from the tag ledger and path-diff, patches the version ephemerally, and publishes to PyPI under OIDC trusted publishing (publisher bound to `release.yml`, no environment). The committed `pyproject.toml` version is permanently the `0.0.0.dev0` sentinel; the `unity-devkit-v*` tags are the version ledger (declared `major_minor` line in `publish-config.json`, patch-auto within the line). API-breaking changes ship with a manually bumped `major_minor` — patch-auto assumes additive changes.
12
12
 
13
13
  ## Shape
14
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: unity-devkit
3
- Version: 0.1.11
3
+ Version: 0.1.13
4
4
  Summary: Unity project discovery, build, license, and CI tooling
5
5
  License-File: LICENSE
6
6
  License-File: NOTICE
@@ -3,6 +3,7 @@
3
3
  {
4
4
  "name": "unity-devkit",
5
5
  "path": ".",
6
+ "major_minor": "0.1",
6
7
  "feeds": { "pypi": "unity-devkit" }
7
8
  }
8
9
  ],
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unity-devkit"
3
- version = "0.1.11"
3
+ version = "0.1.13"
4
4
  description = "Unity project discovery, build, license, and CI tooling"
5
5
  requires-python = ">=3.13"
6
6
  dependencies = [
@@ -165,5 +165,9 @@ def prepare_unity_project(project_path: Path) -> None:
165
165
  if stale_lockfile.exists():
166
166
  stale_lockfile.unlink()
167
167
 
168
- bash("dotnet tool restore")
169
- bash(f"dotnet nugetforunity restore {project_path}")
168
+ # NuGetForUnity restore applies only to NuGet consumers (Assets/packages.config is
169
+ # their manifest); elsewhere it would demand the dotnet SDK + tool manifest and
170
+ # litter Assets/ with NuGet.config/packages.config/Packages.meta scaffolding.
171
+ if (project_path / "Assets" / "packages.config").exists():
172
+ bash("dotnet tool restore")
173
+ bash(f"dotnet nugetforunity restore {project_path}")
@@ -0,0 +1,36 @@
1
+ from pathlib import Path
2
+
3
+ import pytest
4
+
5
+ from unity_devkit import unity
6
+
7
+
8
+ def test_prepare_skips_nuget_restore_without_packages_config(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
9
+ calls: list[str] = []
10
+ monkeypatch.setattr(unity, "bash", calls.append)
11
+ (tmp_path / "Assets").mkdir()
12
+
13
+ unity.prepare_unity_project(tmp_path)
14
+
15
+ assert calls == []
16
+
17
+
18
+ def test_prepare_runs_nuget_restore_for_nuget_consumer(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
19
+ calls: list[str] = []
20
+ monkeypatch.setattr(unity, "bash", calls.append)
21
+ (tmp_path / "Assets").mkdir()
22
+ (tmp_path / "Assets" / "packages.config").write_text('<?xml version="1.0"?>\n')
23
+
24
+ unity.prepare_unity_project(tmp_path)
25
+
26
+ assert calls == ["dotnet tool restore", f"dotnet nugetforunity restore {tmp_path}"]
27
+
28
+
29
+ def test_prepare_clears_stale_unity_lockfile(tmp_path: Path) -> None:
30
+ lockfile = tmp_path / "Temp" / "UnityLockfile"
31
+ lockfile.parent.mkdir()
32
+ lockfile.write_text("")
33
+
34
+ unity.prepare_unity_project(tmp_path)
35
+
36
+ assert not lockfile.exists()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes