tuieval 0.1.7__tar.gz → 0.2.0.dev1__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 (73) hide show
  1. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/.gitignore +1 -0
  2. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/CHANGELOG.md +4 -0
  3. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/PKG-INFO +3 -1
  4. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/README.md +2 -0
  5. tuieval-0.2.0.dev1/RELEASING.md +31 -0
  6. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/pyproject.toml +11 -2
  7. tuieval-0.2.0.dev1/src/tuieval/__init__.py +5 -0
  8. tuieval-0.2.0.dev1/src/tuieval/_version.py +24 -0
  9. tuieval-0.1.7/RELEASING.md +0 -7
  10. tuieval-0.1.7/src/tuieval/__init__.py +0 -2
  11. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/LICENSE +0 -0
  12. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/README.md +0 -0
  13. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/favicon.ico +0 -0
  14. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/readme-header.png +0 -0
  15. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/social-preview.png +0 -0
  16. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-1024.png +0 -0
  17. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-128.png +0 -0
  18. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-16.png +0 -0
  19. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-16.svg +0 -0
  20. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-256.png +0 -0
  21. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-32.png +0 -0
  22. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-48.png +0 -0
  23. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-512.png +0 -0
  24. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-64.png +0 -0
  25. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon-animated.svg +0 -0
  26. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/brand/tuieval-icon.svg +0 -0
  27. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/images/tui-setup.png +0 -0
  28. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/models.md +0 -0
  29. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/docs/writing-packs.md +0 -0
  30. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/__main__.py +0 -0
  31. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/cli.py +0 -0
  32. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/client.py +0 -0
  33. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/compare.py +0 -0
  34. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/engine.py +0 -0
  35. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/export.py +0 -0
  36. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/graders/__init__.py +0 -0
  37. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/graders/answer.py +0 -0
  38. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/graders/code.py +0 -0
  39. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/graders/rag.py +0 -0
  40. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/graders/reply.py +0 -0
  41. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/graders/tool_call.py +0 -0
  42. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/machines.py +0 -0
  43. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/packs.py +0 -0
  44. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/profiles.py +0 -0
  45. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/remove.py +0 -0
  46. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/run_evals.py +0 -0
  47. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/scaffold.py +0 -0
  48. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/selftest.py +0 -0
  49. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/models.toml +0 -0
  50. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/answer/pack.toml +0 -0
  51. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/answer/system.txt +0 -0
  52. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/answer/tests.yaml +0 -0
  53. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/code/pack.toml +0 -0
  54. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/code/system.txt +0 -0
  55. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/code/tests.yaml +0 -0
  56. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/rag/pack.toml +0 -0
  57. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/rag/system.txt +0 -0
  58. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/rag/tests.yaml +0 -0
  59. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/reply/pack.toml +0 -0
  60. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/reply/system.txt +0 -0
  61. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/reply/tests.yaml +0 -0
  62. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/tool_call/pack.toml +0 -0
  63. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/tool_call/system.txt +0 -0
  64. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/tool_call/tests.yaml +0 -0
  65. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/templates/packs/tool_call/tools.yaml +0 -0
  66. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/tui.py +0 -0
  67. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/tune.py +0 -0
  68. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/verdict.py +0 -0
  69. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/watch_proxy.py +0 -0
  70. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/workspace.py +0 -0
  71. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/src/tuieval/yamlout.py +0 -0
  72. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/tests/mock_server.py +0 -0
  73. {tuieval-0.1.7 → tuieval-0.2.0.dev1}/tests/test_tuieval.py +0 -0
@@ -11,3 +11,4 @@ dist/
11
11
  /logs/
12
12
  /tuning/
13
13
  /packs/
14
+ src/tuieval/_version.py
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ - Versions come from git tags: a tag `vX.Y.Z` is that release, and every commit on `main` after it is published automatically as a dev build `X.(Y+1).0.devN` (N = commits since the release). `pip install tuieval` keeps installing releases only; `pip install --pre tuieval` gets the latest build.
6
+
3
7
  ## 0.1.7 (replaces 0.1.6, withdrawn)
4
8
 
5
9
  - `tuieval tune` starts warm for fine-tunes: when a model with the same architecture and tensor shapes is already tuned on this machine, its flags are the starting point and only speculative decoding and micro-batch are re-tried (~4-6 server starts instead of 8-15). It tunes in full if the inherited flags fail, change answers or are slower than the defaults. `--cold` (or `[tune] warm_start = false`) always tunes in full; `[tune] warm_retest` names the re-tried knobs.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: tuieval
3
- Version: 0.1.7
3
+ Version: 0.2.0.dev1
4
4
  Summary: Evaluate local and frontier LLMs on your own questions: accuracy, speed, tokens and PASS/FAIL verdicts, in the terminal.
5
5
  Project-URL: Homepage, https://github.com/ashe-wb/tuieval
6
6
  Project-URL: Issues, https://github.com/ashe-wb/tuieval/issues
@@ -43,6 +43,8 @@ tuieval add ~/models/Some-Model-Q4_K_M.gguf
43
43
  tuieval # open the TUI
44
44
  ```
45
45
 
46
+ `pip install tuieval` gets the latest release. Every change on `main` is also published as a dev build (`X.Y.0.devN`); get it with `pipx install --pip-args=--pre tuieval` or `pip install --pre tuieval`.
47
+
46
48
  Once you've added your own packs and models, the setup screen looks like this (packs on the left, models with a verdict code per use case on the right, the highlighted model's details below):
47
49
 
48
50
  ![tuieval's setup screen with five eval packs and a dozen local models](https://raw.githubusercontent.com/ashe-wb/tuieval/main/docs/images/tui-setup.png)
@@ -17,6 +17,8 @@ tuieval add ~/models/Some-Model-Q4_K_M.gguf
17
17
  tuieval # open the TUI
18
18
  ```
19
19
 
20
+ `pip install tuieval` gets the latest release. Every change on `main` is also published as a dev build (`X.Y.0.devN`); get it with `pipx install --pip-args=--pre tuieval` or `pip install --pre tuieval`.
21
+
20
22
  Once you've added your own packs and models, the setup screen looks like this (packs on the left, models with a verdict code per use case on the right, the highlighted model's details below):
21
23
 
22
24
  ![tuieval's setup screen with five eval packs and a dozen local models](https://raw.githubusercontent.com/ashe-wb/tuieval/main/docs/images/tui-setup.png)
@@ -0,0 +1,31 @@
1
+ # Releasing
2
+
3
+ Versions come from git (hatch-vcs). Nobody edits a version number by hand.
4
+
5
+ | What | Version | Who gets it |
6
+ |---|---|---|
7
+ | A tag `vX.Y.Z` | `X.Y.Z` | `pip install tuieval` |
8
+ | Every other commit on `main` | `X.(Y+1).0.devN`, N = commits since the last tag | `pip install --pre tuieval` |
9
+
10
+ CI (`.github/workflows/test.yml`) runs the tests on every push. When they pass, the `publish` job builds the package, checks it with `twine check`, and uploads it to PyPI with trusted publishing (no token is stored anywhere): every push to `main` as a dev build, every `v*` tag as a release.
11
+
12
+ ## Day to day
13
+
14
+ 1. Commit and push to `main`. Add a line under `## Unreleased` in `CHANGELOG.md` for anything users would notice.
15
+ 2. CI publishes the dev build. Check it: `pipx install --force --pip-args=--pre tuieval && tuieval --version`.
16
+
17
+ ## A release
18
+
19
+ Cut one when there's something worth announcing, not for every change. Semantic versioning: PATCH for fixes, MINOR for features (and anything that changes behaviour while the major version is 0), MAJOR for breaking changes after 1.0.
20
+
21
+ 1. In `CHANGELOG.md`, rename `## Unreleased` to `## X.Y.Z` and add a new empty `## Unreleased` above it. Commit and push.
22
+ 2. Tag that commit and push the tag: `git tag -a vX.Y.Z -m "X.Y.Z" && git push origin vX.Y.Z`.
23
+ 3. CI publishes `X.Y.Z`. Check a fresh install: `pipx install --force tuieval==X.Y.Z && tuieval --version`.
24
+
25
+ ## One-time setup (done once per PyPI project)
26
+
27
+ On PyPI, under the project's Publishing settings, add a trusted publisher: owner `ashe-wb`, repository `tuieval`, workflow `test.yml`, environment `pypi`.
28
+
29
+ ## Building by hand
30
+
31
+ `python -m pip install build twine && python -m build && twine check dist/*`. A build needs the git history and tags (a full clone), or it can't tell its version.
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["hatchling>=1.24"]
2
+ requires = ["hatchling>=1.24", "hatch-vcs>=0.4"]
3
3
  build-backend = "hatchling.build"
4
4
 
5
5
  [project]
@@ -37,8 +37,17 @@ tuieval = "tuieval.cli:main"
37
37
  Homepage = "https://github.com/ashe-wb/tuieval"
38
38
  Issues = "https://github.com/ashe-wb/tuieval/issues"
39
39
 
40
+ # The version comes from git: a tag vX.Y.Z is that release; every commit after it on main is
41
+ # X.(Y+1).0.devN, N = commits since the tag (see RELEASING.md).
40
42
  [tool.hatch.version]
41
- path = "src/tuieval/__init__.py"
43
+ source = "vcs"
44
+
45
+ [tool.hatch.version.raw-options]
46
+ version_scheme = "release-branch-semver"
47
+ local_scheme = "no-local-version"
48
+
49
+ [tool.hatch.build.hooks.vcs]
50
+ version-file = "src/tuieval/_version.py"
42
51
 
43
52
  [tool.hatch.build.targets.wheel]
44
53
  packages = ["src/tuieval"]
@@ -0,0 +1,5 @@
1
+ """tuieval: evaluate local and frontier models on your own eval packs, in the terminal."""
2
+ try:
3
+ from ._version import __version__ # written by the build from the git tag (RELEASING.md)
4
+ except ImportError: # a source tree that was never built or installed
5
+ __version__ = "0+unknown"
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '0.2.0.dev1'
22
+ __version_tuple__ = version_tuple = (0, 2, 0, 'dev1')
23
+
24
+ __commit_id__ = commit_id = None
@@ -1,7 +0,0 @@
1
- # Releasing
2
-
3
- 1. Bump `__version__` in `src/tuieval/__init__.py` and add a `CHANGELOG.md` entry.
4
- 2. Commit, push, and wait for CI to pass.
5
- 3. Build from a clean checkout and check: `python -m pip install build twine && python -m build && twine check dist/*`
6
- 4. Publish to PyPI: `twine upload dist/*` (username `__token__`, password: a PyPI API token).
7
- 5. Check a fresh install: `pipx install --force tuieval==<version> && tuieval --version`
@@ -1,2 +0,0 @@
1
- """tuieval: evaluate local and frontier models on your own eval packs, in the terminal."""
2
- __version__ = "0.1.7"
File without changes
File without changes
File without changes
File without changes