make development compatible with main and other way around #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
so this will allow us to bring main back into development
and be compatible so we can easier make progress and move project per project over
checks
A few notes from the meeting to add on top of this, not replacing anything above.
On the old vs new question: this repo holds the previous, stable macros, the versions main already works with, not the latest fast moving ones. The name previous means the older known good set. The newer macros stay in hero_lib and hero_blueprint and keep evolving. Main pins this repo so it stops breaking when those change, and each repo migrates onto the new library one by one later. When the issue says use these new macros, new means the macros now living in this new repo, not a newer version.
Signed-by: mik-tf mik-tf@noreply.invalid
Summary of the task
The problem
Today the derive macros and their supporting code, including the OpenRPC clients, live in hero_lib and hero_blueprint. Those repos move fast and get big updates, and hero_blueprint in particular is too new for main. If we bring the current hero_lib and hero_blueprint into main, main stops building. So main and development have drifted apart and work gets stuck on one side.
The plan
The payoff
main builds and stays live again, which is what the sandbox needs to deploy from main. The two-way flow between main and development is restored, so newer work can reach the sandbox once each piece has moved over.
Checks
Signed-by: mik-tf mik-tf@noreply.invalid
Status report —
hero_macros_previousfreeze rolloutWhat this repo now provides
A frozen, self-contained snapshot of the macro/codegen toolchain so consumer repos stop tracking the still-moving
hero_lib/hero_blueprint. Two branches, mirroring hero_lib:main— oldhero_rpcstack re-cut from the pre-bridgehero_blueprint@d31c7b6(client macros emit::hero_rpc2::, herolib-free) + a frozen new-gen derivehero_derive(fromhero_lib@9657556a).development— same old stack +hero_derivecut fromhero_lib@d1383f58(for consumers that pinnedherolib_derive@development).Both branches build green and carry zero
git=hero_lib/hero_blueprintdependencies.Migration recipes (mechanical, no source changes)
herolib_derive = { package = "hero_derive", git = .../hero_macros_previous.git, branch = <same branch the repo pinned> }. All otherherolib_*left live — the frozen macro emits against the consumer's live runtime, so hero_lib keeps moving. Thepackage =rename avoids colliding with theherolib_derivethat liveherolib_corepulls transitively.hero_rpc_derive/hero_rpc_openrpc→hero_macros_previous, and addhero_rpc2(the pre-bridge client macro emits::hero_rpc2::, so it must be declared). Fully self-contained afterwards.Rollout result (branch
development_freezepushed per repo; only that branch pushed)✅ DONE — frozen + builds green,
development_freezepushed (8):hero_shrimp,hero_redis(=hero_db),hero_planner,hero_code,hero_codescalers,hero_gpu,hero_indexer,hero_slides⚠️ PARTIAL — integration freeze builds, but the repo's
developmentbranch is broken independent of this change (2):hero_browser,hero_proc(e.g. proc dev referencesherolib_core::logger::LogDeleteScope, missing at its pinned hero_lib). Frozen on integration locally; dev held until their dev baseline is fixed.⚪ NOOP — no
herolib_derive/hero_rpcgit dep, nothing to do (~19):whiteboard, skills, archipelagos, biz, code_indexer, forge, foundry, kimi, kimi_rust, ledger, mail, researcher, router, webbuilder, website_framework, + non-Rust repos (builder, compute_config, compute_registry, deployment_docker).
⏸ DEFERRED — Blocker B (11): these don't build at baseline on integration, because they transitively pull a broken
hero_rpc_derivefromhero_blueprint/hero_rpc(mid-teardown) via other hero SDKs, or their own source uses old transport types:agent,books,office,orchestrator,voice,proxy(transitive dual-source),editor(own source useshero_rpc_openrpc::OpenRpcError),lib_rhai(complex mixed),wallet,voice_provider,matrixchat(baseline-broken via transitive blueprint dep).⏸ TIER-3 — schema/server-macro adopters, deferred for team judgement (7):
compute,drive,logic,mycelium,os,osis,livekit(committed generated#[derive(OsisObject)]/ inline server code — can't go self-contained; need the frozenhero_derivesuperset + live runtime).Checklist status
hero_derivealias removes the direct moving-derive dependency on those. Remaining repos are Blocker-B (need their broken transitivehero_rpcSDK deps fixed first) or Tier-3.macros_previousrepo — in progress (8 pushed ondevelopment_freeze).Key finding / next step
The dominant blocker is not the macro swap itself — it's that many integration repos don't build at baseline because they transitively depend on broken
hero_blueprint/hero_rpccrates left mid-teardown. The freeze succeeds cleanly wherever the repo builds. Recommended next: fix that root cause (extend the freeze/[patch]to the leaf SDKs likehero_*_sdkthat still pullhero_rpc_derivefrom blueprint), which should unblock most of the deferred set, then take Tier-3 with the team.Nothing else pushed; all consumer changes are local on
development_freezebranches pending review.