Skip to content

Commit 5420f11

Browse files
authored
Merge pull request #1049 from Lumiwealth/version/4.5.26
v4.5.26 - Resume PyPI releases after storage cleanup
2 parents e35e2a3 + 155a2b4 commit 5420f11

4 files changed

Lines changed: 97 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
# Changelog
22

3+
## 4.5.26 - 2026-05-19
4+
5+
Deploy marker: 4.5.26 release commit (`deploy 4.5.26`)
6+
7+
### Operations
8+
- **PyPI project storage was cleaned up for wheel-only releases.** Historical source distributions that had matching wheels were removed from PyPI so new LumiBot releases can publish again under the project storage quota. The package release remains wheel-only.
9+
- **4.5.26 republishes the safe dotenv and lazy-startup release path after the 4.5.25 PyPI quota blocker.** This keeps the deployment path moving without force-moving the stale `v4.5.25` tag.
10+
- **Google ADK is pinned below 2.0 for release stability.** CI exposed a `google-adk` 2.0 function-declaration schema change that drops the expected `parameters` object for the built-in indicator tool. LumiBot keeps the previously passing 1.x range until the 2.x schema contract is reviewed deliberately.
11+
312
## 4.5.25 - 2026-05-15
413

514
Deploy marker: 4.5.25 release commit (`deploy 4.5.25`)
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# RELEASE 4.5.25 PYPI BLOCKER
2+
3+
> Release status for the 4.5.25 dotenv/lazy-import startup release and the remaining package-publish blocker.
4+
5+
**Last Updated:** 2026-05-19
6+
**Status:** Active
7+
**Audience:** Developers + AI Agents
8+
9+
---
10+
11+
## Summary
12+
13+
PR #1047 merged `version/4.5.25` into `dev` with green CI, including docs build, lint, unit shards, backtest shards, aggregate `LintAndTest`, and CodeRabbit.
14+
15+
The code is on `dev`, but the normal Lumibot package release is blocked before BotManager rollout because PyPI is rejecting new Lumibot uploads with the project storage quota error:
16+
17+
```text
18+
400 Project size too large. Limit for project 'lumibot' total size is 10 GB.
19+
```
20+
21+
Do not update BotManager to a new LumiBot version until a published, installable LumiBot artifact exists and `python3 -m pip install --no-deps "lumibot==X.Y.Z"` succeeds.
22+
23+
---
24+
25+
## Verified
26+
27+
- `version/4.5.25` PR: https://github.com/Lumiwealth/lumibot/pull/1047
28+
- `dev` merge commit: `e35e2a314e4258a445268cc58afdf48fffbb4c7c`
29+
- Deploy marker on version branch: `8ae3baece0ddea2971f292bfa25e1744101c3483`
30+
- CI on deploy marker: green
31+
- Existing remote tag `v4.5.25`: points to older merge commit `a29e3eba01ccad44aa04d56223210ae539ac350f`
32+
- Existing `v4.5.25` release workflow run: https://github.com/Lumiwealth/lumibot/actions/runs/25943116545
33+
- PyPI index on 2026-05-19 still listed latest Lumibot as `4.5.23`, not `4.5.25`.
34+
35+
The older `v4.5.25` release workflow validated, tested, and built successfully, then failed during `Publish to PyPI` because of the PyPI project size limit. No GitHub Release was created.
36+
37+
PyPI public JSON on 2026-05-19 showed Lumibot package files total approximately `10.71 GB` decimal. PyPI's documented default project limit is `10.0 GB`, so the project needs cleanup before another upload can succeed.
38+
39+
Official PyPI storage docs:
40+
- Project storage settings page: `https://pypi.org/manage/project/lumibot/settings/`
41+
- Release management page: `https://pypi.org/manage/project/lumibot/releases/`
42+
- Deleting or yanking are different: yanking does not free storage; deleting files does free storage but is permanent and can break downstream pinned installs.
43+
44+
---
45+
46+
## Risk Notes
47+
48+
- Do not silently move or reuse the existing `v4.5.25` tag without explicitly deciding how to handle the failed prior release run.
49+
- Do not point BotManager at `LumiBot dev`. BotManager's deployment docs say `LUMIBOT_VERSION` must select a published wheel.
50+
- BotManager currently has `LUMIBOT_VERSION` set to a GitHub archive URL, but its Docker templates still render `lumibot==LUMIBOT_VERSION_PLACEHOLDER`; that is not the documented package install path and should not be treated as a verified deploy path.
51+
52+
---
53+
54+
## Recommended PyPI Cleanup
55+
56+
Prefer deleting old source distributions only when the same version still has a universal wheel. Do not delete whole releases unless there is a separate deprecation decision.
57+
58+
First cleanup target:
59+
60+
- Delete individual `.tar.gz` source distribution files for `4.4.45` through `4.5.22`.
61+
- Keep the matching `py3-none-any.whl` files for those versions.
62+
- Expected reclaimed storage from this first target: about `1.47 GB` decimal across `39` source distribution files.
63+
- Expected result: enough headroom for the blocked wheel-only Lumibot release and several follow-up releases without breaking normal wheel installs for those pinned versions.
64+
65+
If more headroom is needed later, the broader cleanup target is all `.tar.gz` source distributions that have a matching wheel. Public JSON showed `581` such files totaling about `6.77 GB` decimal.
66+
67+
Chrome DevTools MCP was attempted on 2026-05-19 to drive the PyPI UI with Rob logging in, but `list_pages` timed out. Do not launch a separate browser or touch personal browser profiles as a workaround. If Chrome MCP is restored, the safe UI flow is:
68+
69+
1. Rob logs into PyPI and completes 2FA.
70+
2. Navigate to `https://pypi.org/manage/project/lumibot/releases/`.
71+
3. For each target release, use `Options` -> `Manage`.
72+
4. Delete only the target `lumibot-X.Y.Z.tar.gz` file.
73+
5. Confirm the matching `lumibot-X.Y.Z-py3-none-any.whl` remains.
74+
6. Re-check `https://pypi.org/manage/project/lumibot/settings/` for current project size.
75+
76+
Do not automate deletion unless the target file list is visible and confirmed. PyPI file deletion is permanent.
77+
78+
---
79+
80+
## Next Options
81+
82+
1. Resolve PyPI storage: delete old unnecessary release files or request a project size increase, then publish a new Lumibot version from the current `dev` merge.
83+
2. If choosing to preserve `4.5.25`, intentionally retarget `v4.5.25` to `e35e2a31` only after confirming no package or GitHub Release was published from the old tag.
84+
3. If avoiding tag movement, bump and release `4.5.26` instead once PyPI can accept uploads.
85+
4. Only after PyPI installability is confirmed, update BotManager `LUMIBOT_VERSION`, trigger dev/prod workflows, and run the required BotSpot backtest version smoke.

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ databento>=0.42.0
3535
holidays
3636
psutil
3737
openai
38-
google-adk>=1.19.0
38+
google-adk>=1.19.0,<2.0.0
3939
google-genai>=1.68.0
4040
anyio>=4.10.0
4141
mcp>=1.26.0

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def _maybe_copy_theta_terminal(self):
4343

4444
setuptools.setup(
4545
name="lumibot",
46-
version="4.5.25",
46+
version="4.5.26",
4747
author="Robert Grzesik",
4848
author_email="rob@botspot.trade",
4949
description="Python framework for algorithmic trading: backtesting and live deployment for stocks, options, crypto, futures, and forex. Same code for backtest and live trading.",
@@ -95,7 +95,7 @@ def _maybe_copy_theta_terminal(self):
9595
"holidays",
9696
"psutil",
9797
"openai",
98-
"google-adk>=1.19.0",
98+
"google-adk>=1.19.0,<2.0.0",
9999
"google-genai>=1.68.0",
100100
"litellm>=1.77.0",
101101
"anyio>=4.10.0",

0 commit comments

Comments
 (0)