Skip to content

Commit 788ba9d

Browse files
committed
Preparing Release 2
1 parent 9375289 commit 788ba9d

File tree

9 files changed

+188
-57
lines changed

9 files changed

+188
-57
lines changed

apps/backend/CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.2.1] - 2025-08-08
11+
12+
### Added
13+
- Added support for filtering test sets related to runs.
14+
- Added the ability to upload documents via the `/documents/upload` endpoint.
15+
- Added optional `documents` argument to the `/generate/tests` endpoint, allowing test generation based on provided documents.
16+
- Added response model and improved documentation for the `/documents/upload` endpoint.
17+
- Added router support for test result statistics.
18+
- Added new schema definition for test results.
19+
- Added "last login" functionality to user login.
20+
21+
### Changed
22+
- Improved Document validation error messages.
23+
- Refactored the stats module to accommodate specifics of test results.
24+
- Refactored `test_results.py` to `test_result.py` for naming consistency and modularized the code.
25+
- Improved terminology consistency in document handling.
26+
- Updated contributing guides with PR update and creation functionalities, and macOS specificities.
27+
28+
### Fixed
29+
- Fixed an issue where `None` documents were not handled correctly in the `/generate/tests` endpoint.
30+
- Fixed missing imports and migrated Document validator to Pydantic v2.
31+
- Fixed a GUID import path issue in Alembic migrations.
32+
- Fixed an issue ensuring all authenticated users via Auth0 have their `auth0_id` field populated.
33+
- Fixed Unix socket path.
34+
35+
### Removed
36+
- Removed the standalone stats module.
37+
38+
1039
## [0.2.0] - 2025-07-25
1140

1241
### Added

apps/backend/pyproject.toml

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "rhesis-backend"
3-
version = "0.2.0"
3+
version = "0.2.1"
44
description = "Rhesis backend package"
55
readme = "README.md"
66
requires-python = ">=3.10"
@@ -50,28 +50,6 @@ dependencies = [
5050
"slowapi>=0.1.9",
5151
]
5252

53-
[build-system]
54-
requires = ["hatchling"]
55-
build-backend = "hatchling.build"
56-
57-
[tool.hatch.build.targets.wheel]
58-
packages = ["src/rhesis"]
59-
60-
[tool.hatch.metadata]
61-
allow-direct-references = true
62-
63-
[tool.ruff]
64-
line-length = 100
65-
66-
[tool.ruff.lint]
67-
select = ["I", "E", "F"] # I = isort, E = pycodestyle, F = pyflakes
68-
69-
[tool.ruff.format]
70-
quote-style = "double"
71-
indent-style = "space"
72-
skip-magic-trailing-comma = false
73-
line-ending = "auto"
74-
7553
[project.optional-dependencies]
7654
dev = [
7755
"hatch>=1.14.1",
@@ -92,19 +70,53 @@ format = "rhesis.scripts:format_code"
9270
lint = "rhesis.scripts:lint_code"
9371
lint-fix = "rhesis.scripts:lint_fix_code"
9472

73+
[build-system]
74+
requires = [
75+
"hatchling",
76+
]
77+
build-backend = "hatchling.build"
78+
79+
[tool.hatch.build.targets.wheel]
80+
packages = [
81+
"src/rhesis",
82+
]
83+
84+
[tool.hatch.metadata]
85+
allow-direct-references = true
86+
87+
[tool.ruff]
88+
line-length = 100
89+
90+
[tool.ruff.lint]
91+
select = [
92+
"I",
93+
"E",
94+
"F",
95+
]
96+
97+
[tool.ruff.format]
98+
quote-style = "double"
99+
indent-style = "space"
100+
skip-magic-trailing-comma = false
101+
line-ending = "auto"
102+
95103
[tool.pytest.ini_options]
96-
testpaths = ["../../tests/backend"]
97-
pythonpath = ["src"]
104+
testpaths = [
105+
"../../tests/backend",
106+
]
107+
pythonpath = [
108+
"src",
109+
]
98110
asyncio_default_fixture_loop_scope = "function"
99111
addopts = "-o asyncio_default_fixture_loop_scope=function"
100112
filterwarnings = [
101-
"ignore::pytest.PytestDeprecationWarning:pytest_asyncio.plugin"
113+
"ignore::pytest.PytestDeprecationWarning:pytest_asyncio.plugin",
102114
]
103115
markers = [
104116
"unit: fast tests with mocked dependencies",
105-
"integration: tests with real external services",
117+
"integration: tests with real external services",
106118
"slow: tests that take >5 seconds",
107119
"ai: tests involving AI model calls",
108120
"critical: core functionality tests",
109-
"security: security and vulnerability tests"
121+
"security: security and vulnerability tests",
110122
]

apps/frontend/CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [0.2.1] - 2025-08-08
10+
11+
### Added
12+
- Introduced Test Results functionality, allowing users to view and analyze test outcomes.
13+
- Added interfaces for handling test results statistics.
14+
15+
### Fixed
16+
- Resolved an issue causing infinite loading for test sets.
17+
18+
### Changed
19+
- Updated contributing guides to reflect new PR creation and update features.
20+
21+
922
## [0.2.0] - 2025-07-25
1023

1124
### Added

apps/frontend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rhesis-app",
3-
"version": "0.2.0",
3+
"version": "0.2.1",
44
"scripts": {
55
"dev": "next dev --turbo -H 0.0.0.0 -p 3000",
66
"build": "npm run clean && next build",

apps/frontend/src/app/(protected)/test-results/components/TestResultsFilters.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export default function TestResultsFilters({
198198
value={filters.test_run_ids?.[0] || ""}
199199
label="Test Run"
200200
onChange={(e) => handleTestRunChange(e.target.value)}
201-
disabled={isLoadingTestRuns || (filters.test_set_ids?.[0] && testRuns.length === 0)}
201+
disabled={isLoadingTestRuns || Boolean(filters.test_set_ids?.[0] && testRuns.length === 0)}
202202
>
203203
<MenuItem value="">All Test Runs</MenuItem>
204204
{testRuns.map((testRun) => (

apps/frontend/src/utils/api-client/test-sets-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export class TestSetsClient extends BaseApiClient {
163163

164164
// Handle authentication errors
165165
if (rawResponse.status === 401 || rawResponse.status === 403) {
166-
return await this.handleUnauthorizedError();
166+
throw new Error('Unauthorized');
167167
}
168168

169169
throw error;

apps/polyphemus/CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Polyphemus Changelog
2+
3+
All notable changes to the polyphemus component will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [0.1.0] - 2025-01-08
11+
12+
### Added
13+
- Initial release of the Polyphemus LLM inference and benchmarking service
14+
- FastAPI-based REST API for text generation with Dolphin 3.0 Llama 3.1 8B model
15+
- Support for streaming and non-streaming text generation endpoints
16+
- Modular benchmarking suite for model evaluation and selection
17+
- Abstract model interface with HuggingFace and mock model implementations
18+
- Test framework with test sets and scoring logic
19+
- Basic test sets and examples (e.g., `mock_test_set.json`)
20+
- OWASP-based security test sets for model harmfulness and integrity evaluation
21+
- Pre-built model configurations for various LLM models (Hermes3, Dolphin3, Vicuna, Kimi K2)
22+
- Health check endpoints with GPU status monitoring
23+
- AMD GPU support documentation and setup guide for ROCm (`AMD.md`)
24+
- Docker containerization with Cloud Build integration for deployment
25+
26+
### Changed
27+
- Updated structure: moved and renamed files to match SDK conventions
28+
- Added `pyproject.toml`; removed `requirements.txt`
29+
30+
### Note
31+
- After this initial release, Polyphemus will follow its own versioning lifecycle with polyphemus-vX.Y.Z tags
32+
33+
[Unreleased]: https://github.com/rhesis-ai/rhesis/compare/v0.1.0...HEAD
34+
[0.1.0]: https://github.com/rhesis-ai/rhesis/releases/tag/v0.1.0

sdk/CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313

1414
## [Unreleased]
1515

16+
## [0.2.1] - 2025-08-08
17+
18+
### Added
19+
- Added `get_field_names_from_schema` method to the `BaseEntity` class. This method retrieves field names from the OpenAPI schema, enabling dynamic access to entity properties.
20+
21+
### Changed
22+
- Updated the default base URL for the API endpoint.
23+
24+
### Fixed
25+
- Fixed an issue with the default base URL for API endpoint.
26+
27+
### Documentation
28+
- Improved the readability and logical flow of the contributing guide.
29+
- Enhanced the styling of the contributing guide for better user experience.
30+
31+
1632
## [0.2.0] - 2025-07-25
1733

1834
### Added

sdk/pyproject.toml

Lines changed: 53 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,28 @@
11
[project]
22
name = "rhesis-sdk"
3-
version = "0.2.0"
3+
version = "0.2.1"
44
description = "SDK for testing and validating LLM applications"
55
readme = "README.md"
66
requires-python = ">=3.10"
77
authors = [
88
{ name = "Engineering Team", email = "[email protected]" },
99
{ name = "Harry Cruz", email = "[email protected]" },
10-
{ name = "Nicolai Bohn", email = "[email protected]" }
10+
{ name = "Nicolai Bohn", email = "[email protected]" },
11+
]
12+
keywords = [
13+
"llm",
14+
"testing",
15+
"ai",
16+
"machine-learning",
1117
]
12-
license = { text = "MIT" }
13-
keywords = ["llm", "testing", "ai", "machine-learning"]
1418
classifiers = [
1519
"Development Status :: 4 - Beta",
1620
"Intended Audience :: Developers",
1721
"License :: OSI Approved :: MIT License",
1822
"Programming Language :: Python :: 3",
1923
"Programming Language :: Python :: 3.10",
2024
"Topic :: Software Development :: Testing",
21-
"Topic :: Software Development :: Libraries :: Python Modules"
25+
"Topic :: Software Development :: Libraries :: Python Modules",
2226
]
2327
dependencies = [
2428
"ipykernel>=6.29.5",
@@ -37,6 +41,9 @@ dependencies = [
3741
"tomli-w>=1.2.0",
3842
]
3943

44+
[project.license]
45+
text = "MIT"
46+
4047
[project.urls]
4148
Homepage = "https://rhesis.ai"
4249
Repository = "https://github.com/rhesis-ai/rhesis"
@@ -47,9 +54,8 @@ Documentation = "https://rhesis-sdk.readthedocs.io"
4754
examples = [
4855
"jupyter",
4956
"matplotlib",
50-
"pandas"
57+
"pandas",
5158
]
52-
5359
dev = [
5460
"hatch>=1.14.1",
5561
"pytest>=8.3.4",
@@ -62,19 +68,25 @@ dev = [
6268
"sphinx>=8.1.3",
6369
"sphinx-autodoc-typehints>=3.0.1",
6470
"sphinx-rtd-theme>=3.0.2",
65-
"myst-parser>=4.0.0"
71+
"myst-parser>=4.0.0",
6672
]
6773

6874
[project.scripts]
6975
rhesis = "rhesis.sdk.cli:main"
7076

7177
[build-system]
72-
requires = ["hatchling"]
78+
requires = [
79+
"hatchling",
80+
]
7381
build-backend = "hatchling.build"
7482

7583
[tool.hatch.build.targets.wheel]
76-
packages = ["src/rhesis"]
77-
include = ["src/rhesis/py.typed"]
84+
packages = [
85+
"src/rhesis",
86+
]
87+
include = [
88+
"src/rhesis/py.typed",
89+
]
7890

7991
[tool.hatch.metadata]
8092
allow-direct-references = true
@@ -83,21 +95,31 @@ allow-direct-references = true
8395
line-length = 100
8496

8597
[tool.ruff.lint]
86-
select = ["I", "E", "F"] # I = isort, E = pycodestyle, F = pyflakes
98+
select = [
99+
"I",
100+
"E",
101+
"F",
102+
]
103+
104+
[tool.ruff.lint.per-file-ignores]
105+
"__init__.py" = [
106+
"F401",
107+
]
108+
"tests/*" = [
109+
"S101",
110+
]
111+
112+
[tool.ruff.lint.isort]
113+
known-first-party = [
114+
"rhesis.sdk",
115+
]
87116

88117
[tool.ruff.format]
89118
quote-style = "double"
90119
indent-style = "space"
91120
skip-magic-trailing-comma = false
92121
line-ending = "auto"
93122

94-
[tool.ruff.lint.per-file-ignores]
95-
"__init__.py" = ["F401"]
96-
"tests/*" = ["S101"]
97-
98-
[tool.ruff.lint.isort]
99-
known-first-party = ["rhesis.sdk"]
100-
101123
[tool.mypy]
102124
python_version = "0.2.0"
103125
warn_return_any = true
@@ -111,12 +133,17 @@ warn_redundant_casts = true
111133
warn_unused_ignores = true
112134
warn_no_return = true
113135
warn_unreachable = true
114-
packages = ["rhesis.sdk"]
115-
116-
[[tool.mypy.overrides]]
117-
module = "pyarrow.*"
118-
ignore_missing_imports = true
136+
packages = [
137+
"rhesis.sdk",
138+
]
139+
overrides = [
140+
{ module = "pyarrow.*", ignore_missing_imports = true },
141+
]
119142

120143
[tool.pytest.ini_options]
121-
testpaths = ["../tests/sdk"]
122-
pythonpath = ["src"]
144+
testpaths = [
145+
"../tests/sdk",
146+
]
147+
pythonpath = [
148+
"src",
149+
]

0 commit comments

Comments
 (0)