Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## Unreleased
## 1.2.0 — 2026-11-08

### Added
- **Journeys: your users' real paths, saved in your repo.** A journey file
Expand All @@ -13,7 +13,8 @@
API key in a journey file is refused.
- Journeys that change data only run against local hosts or hosts you allow with
`--allow-writes`; journeys that send messages or delete data are never replayed.
- The example shop has a JSON API and two example journeys in `examples/journeys/`.
- The example shop has a JSON API and three example journeys in `examples/journeys/`
(browse, checkout behind a 25-connection pool, and a flash sale on one product).
- **`prescale run` replays journeys at load.** When `prescale/journeys/` has journeys, virtual
users walk whole journeys (with each step's think time and their own cookies) instead of hitting
single URLs. Each journey is ramped on its own; the report names the journey and the step that
Expand All @@ -36,9 +37,9 @@
app, not a stale file). Response bodies never reach the PR comment or uploads; locally,
`journeys verify` shows them with every secret the journeys read masked.
New Action inputs: `stale` and `allow-writes` (the action only passes them when set, so a
pinned older `prescale-version` keeps working). Until the dashboard compares journey runs only
with journey baselines, a journey run's PR comment shows no change instead of a possibly
misleading one, and never fails on it.
pinned older `prescale-version` keeps working). A journey run is only ever compared with a
journey baseline (and a URL run with a URL baseline); if the dashboard can't say it compared
like with like, the PR comment shows no change instead of a possibly misleading one.
- **How many at once, and one-at-a-time bottlenecks.** For the journey step that breaks first,
`investigate` now counts how many requests it serves at once (its most completions per second
times its 1-user time, once those completions stop rising while users keep rising) and says so:
Expand Down Expand Up @@ -69,6 +70,11 @@
- **`--expect N`** on `run` says whether you'd hold N users at peak. In a journey run, N is split
across journeys by weight: each must hold its share alone, and all together must hold N.

### Changed
- **With journey files, `run`, `investigate` and `ci` test journeys.** If `prescale/journeys/`
exists in the directory you run from, these commands replay its journeys instead of URLs. Add
`--urls` to test URLs as before. Without that directory nothing changes.

### Fixed
- **`prescale mcp` works on a fresh install again.** `pip install 'prescale[mcp]'` picked up the new
mcp 2.x, which renamed the server class PreScale uses, so the MCP server wouldn't start and told
Expand Down
2 changes: 1 addition & 1 deletion cli/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "prescale"
version = "1.1.3"
version = "1.2.0"
description = "Launch-readiness load testing for developers - find what breaks before your users do"
readme = "README.md"
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion cli/src/prescale_cli/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""PreScale - launch-readiness load testing for developers."""

__version__ = "1.1.3"
__version__ = "1.2.0"
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "prescale"
version = "1.1.3"
version = "1.2.0"
description = "Launch-readiness load testing for developers - find what breaks before your users do"
readme = "README.md"
license = {text = "Apache-2.0"}
Expand Down
Loading