Skip to content

Commit 489a2d2

Browse files
Bump version to 2.13.0
1 parent 14ae937 commit 489a2d2

23 files changed

Lines changed: 5088 additions & 161 deletions

.dockerignore

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# Patterns aligned with .gitignore — reduces Docker build context size.
2+
# See .gitignore for original references and rationale.
3+
4+
# OS
5+
.DS_Store
6+
.AppleDouble
7+
.LSOverride
8+
._*
9+
.DocumentRevisions-V100
10+
.fseventsd
11+
.Spotlight-V100
12+
.TemporaryItems
13+
.Trashes
14+
.VolumeIcon.icns
15+
.AppleDB
16+
.AppleDesktop
17+
.apdisk
18+
19+
# IDE / editors
20+
*.iml
21+
.idea/
22+
*~
23+
/.project
24+
/.pydevproject
25+
/.vscode
26+
27+
# Virtualenv / local env
28+
.venv*/
29+
env/
30+
.envrc
31+
.python-version
32+
33+
# Python
34+
__pycache__/
35+
*.py[cod]
36+
*$py.class
37+
*.so
38+
.Python
39+
build/
40+
develop-eggs/
41+
dist/
42+
downloads/
43+
eggs/
44+
.eggs/
45+
lib/
46+
lib64/
47+
parts/
48+
sdist/
49+
var/
50+
*.egg-info/
51+
.installed.cfg
52+
*.egg
53+
54+
# Test / coverage
55+
htmlcov/
56+
.tox/
57+
.coverage
58+
.coverage.*
59+
.cache
60+
nosetests.xml
61+
coverage.xml
62+
*,cover
63+
.hypothesis/
64+
junit-*.xml
65+
.pytest_cache/
66+
67+
# Translations / logs
68+
*.mo
69+
*.pot
70+
*.log
71+
72+
# Docs build
73+
docs/_build/
74+
75+
# PyBuilder
76+
target/
77+
78+
# Pickles
79+
*.pk
80+
81+
# Rally-specific
82+
.rally_it/
83+
NOTICE.txt
84+
recipes/ccr/ccr-target-hosts.json
85+
tracks/

.pre-commit-config.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,15 @@ repos:
4949
"-j0",
5050
"--rcfile=.pylintrc",
5151
]
52-
exclude: ^(docs/|changelog.py)
52+
exclude: ^(docs/|scripts/release/changelog\.py)
5353
require_serial: true
54+
55+
# Shell scripts: release tooling and repo githooks. Widen to all *.sh once legacy
56+
# scripts under .buildkite/, recipes/, repo root, etc. pass shellcheck.
57+
- repo: https://github.com/shellcheck-py/shellcheck-py
58+
rev: v0.11.0.1
59+
hooks:
60+
- id: shellcheck
61+
name: shellcheck
62+
args: [-x]
63+
files: (^scripts/release/.*\.sh$)|(^scripts/githooks/(pre-commit|post-commit)$)

AUTHORS

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@ Aswin Murugesh
77
Atara Avidan
88
Brad Deam
99
Brian Lesperance
10+
Carlos Delgado
1011
Christian Dahlqvist
1112
Christopher Manning
13+
Copilot
1214
Dale McDiarmid
1315
Daniel Mitterdorfer
1416
Dave Pifke
17+
David Kyle
1518
David Turner
1619
Debanjan Choudhury
1720
Dennis Lawler
@@ -36,7 +39,10 @@ Jason Bryan
3639
Jason Tedor
3740
Jim Ferenczi
3841
Jiří Holuša
42+
Joe Gallo
3943
John Sobanski
44+
John Wagster
45+
Jordan Powers
4046
Joshua Rich
4147
Karan Kaushik
4248
Kazuma Arimura
@@ -52,16 +58,20 @@ Lyndon Swan
5258
Maciek Sufa
5359
Magnus Kessler
5460
Martijn van Groningen
61+
Mary Gouseti
5562
Matt Veitas
5663
Max Jakob
5764
Michael Basnight
5865
Michael McCandless
66+
Michail Romaios
5967
Mike Baamonde
6068
MoBoo
6169
Nhat Nguyen
6270
Nicholas Knize
6371
nicholaskuechler
72+
Nick Dris
6473
Nik Everett
74+
Oliver Hansen
6575
Paul Coghlan
6676
Peter Dyson
6777
Przemko Robakowski
@@ -72,6 +82,7 @@ Rohit Nair
7282
Salvatore Campagna
7383
sstults
7484
Thomas Decaux
85+
Thomas Holmes
7586
Tobias Suckow
7687
tomcallahan
7788
Ugo Sangiorgi

CHANGELOG.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,101 @@
1+
### 2.13.0
2+
3+
#### Highlights
4+
5+
* [#1981](https://github.com/elastic/rally/pull/1981) (Breaking): Drop Python 3.9 support; add Python 3.13 support; replace nox with uv.
6+
* [#2056](https://github.com/elastic/rally/pull/2056): Add ``render-track`` command to render a track's Jinja2 templates to JSON
7+
* [#2047](https://github.com/elastic/rally/pull/2047) / [#2058](https://github.com/elastic/rally/pull/2058): Add ``esql-profile`` operation for ES|QL queries with profiling and operator timing metrics
8+
* [#2037](https://github.com/elastic/rally/pull/2037): Account for the number of clients in the ingest-doc-count option
9+
* [#2033](https://github.com/elastic/rally/pull/2033): Add ingest-doc-count option to index an exact number of documents
10+
* [#1992](https://github.com/elastic/rally/pull/1992): Add run-until runner
11+
* [#1991](https://github.com/elastic/rally/pull/1991): Create CLI for Rally storage manager.
12+
* [#1971](https://github.com/elastic/rally/pull/1971): Support API key authentication for reporting
13+
14+
#### Enhancements
15+
16+
* [#2046](https://github.com/elastic/rally/pull/2046): Add detailed results support for ES|QL queries
17+
* [#2039](https://github.com/elastic/rally/pull/2039): Log warning on BadRequestError
18+
* [#1868](https://github.com/elastic/rally/pull/1868): Bulk http status & 429 retries
19+
* [#2041](https://github.com/elastic/rally/pull/2041): Track certain headers if present in error responses
20+
* [#2034](https://github.com/elastic/rally/pull/2034): Disk usage stats timeout
21+
* [#2028](https://github.com/elastic/rally/pull/2028): Set the pbzip2 -m flag to the highest supported limit of 2000MB
22+
* [#2020](https://github.com/elastic/rally/pull/2020): Parse sampling value in DownsampleParamSource
23+
* [#2016](https://github.com/elastic/rally/pull/2016): Use wait_for_completion:False instead of relying on timeouts in ForceMerge
24+
* [#2019](https://github.com/elastic/rally/pull/2019): Always show mirror failures when present.
25+
* [#2015](https://github.com/elastic/rally/pull/2015): Modify storage CLI to produce multiple objects for transference stats and mirror failures when using --filebeat option
26+
* [#2013](https://github.com/elastic/rally/pull/2013): Read transfer URL from `.status` file instead of its relative path.
27+
* [#2008](https://github.com/elastic/rally/pull/2008): Add `esrally-storage prune` subcommand.
28+
* [#1959](https://github.com/elastic/rally/pull/1959): Capture statistics during data download so that we can profile mirrors configuration in CI.
29+
* [#2005](https://github.com/elastic/rally/pull/2005): Adjust default IT folder
30+
* [#2004](https://github.com/elastic/rally/pull/2004): Add sampling method parameter to downsampling
31+
* [#2000](https://github.com/elastic/rally/pull/2000): Add Google Cloud Storage adapter.
32+
* [#2001](https://github.com/elastic/rally/pull/2001): Sort files to make deterministic
33+
* [#1995](https://github.com/elastic/rally/pull/1995): Initialize all loggers in rally daemon
34+
* [#1996](https://github.com/elastic/rally/pull/1996): Speedup default s3 corpus downloader
35+
* [#1965](https://github.com/elastic/rally/pull/1965): Enable new multipart transfer manager in track downloader.
36+
* [#1986](https://github.com/elastic/rally/pull/1986): Enable a release build of an Elasticsearch revision from sources (source.build.release)
37+
* [#1984](https://github.com/elastic/rally/pull/1984): Add ability to continue on network issues
38+
* [#1975](https://github.com/elastic/rally/pull/1975): Allow configuring the process startup method to be used for creating thespian actors.
39+
* [#1964](https://github.com/elastic/rally/pull/1964): Add `TransferManager` and `S3Adapter` classes.
40+
* [#1972](https://github.com/elastic/rally/pull/1972): Add --user-tags to list races
41+
* [#1962](https://github.com/elastic/rally/pull/1962): feat: Enable uv for venv management.
42+
* [#1960](https://github.com/elastic/rally/pull/1960): Update storage tools with last changes from `storage` branch.
43+
* [#1967](https://github.com/elastic/rally/pull/1967): Remove negative duration constraint (may be needed when comparing race results)
44+
* [#1957](https://github.com/elastic/rally/pull/1957): Add skip-telemetry parameter
45+
* [#1952](https://github.com/elastic/rally/pull/1952): Create module to implement multipart downloading using threads and previously submitted client.
46+
* [#1955](https://github.com/elastic/rally/pull/1955): Update `esrally.utils` package: convert, pretty and threads.
47+
* [#1953](https://github.com/elastic/rally/pull/1953): Reapply "Add a variable in the provisioner for the seed node count (#1647)" (#1680)
48+
* [#1951](https://github.com/elastic/rally/pull/1951): Add missing JSON logs
49+
* [#1949](https://github.com/elastic/rally/pull/1949): Create storage client that redirects downloads to mirror servers
50+
* [#1945](https://github.com/elastic/rally/pull/1945): Add HTTP adapter for the storage client.
51+
* [#1943](https://github.com/elastic/rally/pull/1943): Add some threading synchronization tools.
52+
* [#1942](https://github.com/elastic/rally/pull/1942): Add tool to handle file parts.
53+
54+
#### Bug Fixes
55+
56+
* [#2053](https://github.com/elastic/rally/pull/2053): Fix including the chunk of the partition to calculate the amount of data to handle per partition
57+
* [#2050](https://github.com/elastic/rally/pull/2050): Fix syntax
58+
* [#2038](https://github.com/elastic/rally/pull/2038): Fix Docker build revisited
59+
* [#2035](https://github.com/elastic/rally/pull/2035): Fix Docker build
60+
* [#2023](https://github.com/elastic/rally/pull/2023): Fix `esrally-storage` put command target file names when multiple files are copied.
61+
* [#2017](https://github.com/elastic/rally/pull/2017): Pin requirement: google-crc32c==1.7.1
62+
* [#2014](https://github.com/elastic/rally/pull/2014): Fix optional version branch regex
63+
* [#2012](https://github.com/elastic/rally/pull/2012): Fix cli_test
64+
* [#2009](https://github.com/elastic/rally/pull/2009): Fix best_match versions algorithm in case of no major version
65+
* [#2006](https://github.com/elastic/rally/pull/2006): Fix serverless ITs
66+
* [#1999](https://github.com/elastic/rally/pull/1999): Fix parallel corpora files download.
67+
* [#1997](https://github.com/elastic/rally/pull/1997): Address pytest deprecations
68+
* [#1998](https://github.com/elastic/rally/pull/1998): Fix transfer finished condition when worker is stuck downloading.
69+
* [#1994](https://github.com/elastic/rally/pull/1994): Fix: Respect --offline flag for all track operations
70+
* [#1988](https://github.com/elastic/rally/pull/1988): Recover all loggers left orphan after thespian logging setup on actors startup.
71+
* [#1989](https://github.com/elastic/rally/pull/1989): Fix Makefile
72+
* [#1987](https://github.com/elastic/rally/pull/1987): Recover old silenced loggers instantiated before actor start is complete.
73+
* [#1977](https://github.com/elastic/rally/pull/1977): Fix ITs after pytest-rally plugin modification
74+
* [#1973](https://github.com/elastic/rally/pull/1973): Increase Docker image creation resilience
75+
* [#1966](https://github.com/elastic/rally/pull/1966): Esrally/stop params/fix #1957
76+
* [#1956](https://github.com/elastic/rally/pull/1956): Pin aiosignal
77+
* [#1946](https://github.com/elastic/rally/pull/1946): Fix two typos.
78+
* [#1869](https://github.com/elastic/rally/pull/1869): Use url_prefix from host dictionary in Elastic client
79+
* [#1937](https://github.com/elastic/rally/pull/1937): Fix snapshot restore
80+
* [#1938](https://github.com/elastic/rally/pull/1938): Stop opening for writes in MmapSource
81+
82+
#### Miscellaneous Changes
83+
84+
* [#2049](https://github.com/elastic/rally/pull/2049): Add shorter timeouts for dev docker builds
85+
* [#2062](https://github.com/elastic/rally/pull/2062): Apply ``persist-credentials: false`` to GitHub Actions workflows
86+
* Add optional Docker workflow for maintainers to run ``scripts/release/prepare.sh`` (``scripts/release/prepare-docker.sh``, ``scripts/release/Dockerfile``)
87+
* [#2027](https://github.com/elastic/rally/pull/2027): Bump wheel from 0.45.1 to 0.46.2
88+
* [#2025](https://github.com/elastic/rally/pull/2025): Bump pyasn1 from 0.6.1 to 0.6.2
89+
* [#2021](https://github.com/elastic/rally/pull/2021): Bump aiohttp from 3.10.11 to 3.13.3
90+
* [#1985](https://github.com/elastic/rally/pull/1985): Update GH macOS hosted runner image
91+
* [#1983](https://github.com/elastic/rally/pull/1983): Remove pip caching from GH workflow
92+
* [#1979](https://github.com/elastic/rally/pull/1979): Remove duplicate venv-destroy target in Makefile
93+
* [#1970](https://github.com/elastic/rally/pull/1970): Remove pytest-rally dependency
94+
* [#1961](https://github.com/elastic/rally/pull/1961): Update yappi to latest
95+
* [#1963](https://github.com/elastic/rally/pull/1963): Clarify supported Python versions
96+
* [#1947](https://github.com/elastic/rally/pull/1947): style: sort output in list tracks
97+
* [#1926](https://github.com/elastic/rally/pull/1926): Bump jinja2 from 3.1.5 to 3.1.6
98+
199
### 2.12.0
2100

3101
#### Highlights

CONTRIBUTING.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ If you want to get started in the project, a good idea is to check issues labele
3838
You will need to fork the Rally repository and clone it to your local machine. See
3939
the [Github help page](https://help.github.com/articles/fork-a-repo) for help.
4040

41+
Optional: use this repository’s hooks under `scripts/githooks` (instead of `.git/hooks`):
42+
43+
```bash
44+
git config core.hooksPath scripts/githooks
45+
```
46+
47+
* **`pre-commit`** — runs `uv run -- pre-commit run` (same as `make pre-commit`) on staged files before the commit is created. Requires [uv](https://docs.astral.sh/uv/) and a dev environment (`make install` or `make venv`). You do not need `make install-pre-commit` when using this path.
48+
* **`post-commit`** — strips `Co-authored-by` / `Made-with: Cursor` trailers Cursor may add; it runs `git commit --amend` when the message changes, so the latest commit’s hash can change.
49+
50+
To stop using these hooks in this clone, run `git config --unset core.hooksPath`. The post-commit hook sets `GIT_CURSOR_HOOK_AMENDING` internally to avoid re-running while amending; you normally do not need to set that variable yourself.
51+
4152
### Importing the project into IntelliJ IDEA
4253

4354
Rally builds using virtualenv. When importing into IntelliJ you will need to define an appropriate Python SDK, which is provided by virtualenv.
@@ -60,7 +71,7 @@ Once your changes and tests are ready to submit for review:
6071

6172
Ensure that all tests pass by running `make check-all`. This runs sequentially lint checks, unit tests and integration tests. These can be executed in isolation using `make lint`, `make test` and `make it` respectively, in case you need to iterate over a subset of tests.
6273

63-
Note: Integration tests are much slower than unit tests and require `docker-compose`.
74+
Note: Integration tests are much slower than unit tests and require `docker-compose`. They also require **Java 17 or 21**; set `JAVA_HOME` (or `JAVA21_HOME`) to match.
6475

6576
3. Sign the Contributor License Agreement
6677

@@ -79,6 +90,10 @@ Then sit back and wait. There will probably be discussion about the pull request
7990

8091
Note: Contributors belonging to the "Elastic" organization on Github can merge PRs themselves after getting a "LGTM" (Looks good to me); this workflow is similar to the established one in the Elasticsearch project.
8192

93+
## Release process (maintainers)
94+
95+
Version bumps and changelog updates are automated with `scripts/release/prepare.sh` (often via `make release RELEASE_VERSION=X.Y.Z`, which uses Docker). Put the GitHub token at `~/.github/rally_release_changelog.token`, or set `RALLY_CHANGELOG_TOKEN` to that file's path so `changelog.py`, `make release-checks`, and `prepare-docker.sh` use the same location on the host. See the **Preparing a release** section in the [development documentation](https://esrally.readthedocs.io/en/latest/developing.html#preparing-a-release) for milestones, tokens, the release container, and how that differs from the published `elastic/rally` benchmark image.
96+
8297
# Contributing to the Rally codebase
8398

8499
**Repository:** [https://github.com/elastic/rally](https://github.com/elastic/rally)

Makefile

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,11 +217,15 @@ benchmark: venv
217217
# --- Release goals ---
218218

219219
release-checks: venv
220-
$(VENV_ACTIVATE); ./release-checks.sh $(release_version) $(next_version)
220+
@if [ -z "$(RELEASE_VERSION)" ]; then echo "error: set RELEASE_VERSION (e.g. make release-checks RELEASE_VERSION=2.13.0)" >&2; exit 1; fi
221+
$(VENV_ACTIVATE); ./scripts/release/checks.sh $(RELEASE_VERSION)
221222

222-
# usage: e.g. make release release_version=0.9.2 next_version=0.9.3
223-
release: venv release-checks clean docs lint test it
224-
$(VENV_ACTIVATE); ./release.sh $(release_version) $(next_version)
223+
# usage: e.g. make release RELEASE_VERSION=2.13.0
224+
release:
225+
@if [ -z "$(RELEASE_VERSION)" ]; then echo "error: set RELEASE_VERSION (e.g. make release RELEASE_VERSION=2.13.0)" >&2; exit 1; fi
226+
./scripts/release/prepare-docker.sh $(RELEASE_VERSION)
227+
228+
# --- Other goals ---
225229

226230
# This is a shortcut for creating a shell running inside the project virtual environment.
227231
sh:

0 commit comments

Comments
 (0)