-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Simplify dependencies wrt chia.server
#19895
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify dependencies wrt chia.server
#19895
Conversation
chia.server
be1f5dc
to
9c7ea51
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR simplifies dependencies related to chia.server
by removing cyclic dependencies that include chia.server
and multiple modules (farmer, simulator, full_node, harvester, introducer, wallet, apis, seeder, timelord, data_layer). The changes move service definitions from a centralized chia.server.aliases
file to individual module-specific files and update entry points to reference the new locations.
- Removes cyclic dependencies between
chia.server
and various service modules - Relocates service type definitions from centralized aliases to module-specific files
- Updates entry points in pyproject.toml to point to service-specific modules
Reviewed Changes
Copilot reviewed 40 out of 40 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
tach.toml | Removes deprecated dependencies from chia.server and adds new dependencies to specific modules |
pyproject.toml | Updates entry points to use module-specific start scripts instead of centralized server scripts |
chia/server/aliases.py | Completely removes the centralized service aliases file |
Multiple service modules | Creates new service definition files (e.g., wallet_service.py, timelord_service.py) with type aliases |
Multiple start modules | Updates imports to use local service definitions instead of centralized aliases |
Test files | Updates imports to reference new service locations |
build_scripts/pyinstaller.spec | Updates binary paths to use module-specific start scripts |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just a note along the way here, the start_*.py
files are all very similar and ought to be deduped at some point. the only relevance here is that they are being moved further away from each other which makes it easier to forget and have them diverge. no action requested on this point.
9c7ea51
to
368ba40
Compare
I agree. I looked at this a few year ago and was very frustrated by the subtle divergences and didn't have the courage at the time to try to resolve it. |
9764aef
to
4d0c90c
Compare
4d0c90c
to
7a5f969
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good. and I also want to remind everyone that we don't treat chia-blockchain
as a "library" with a stable API, and this is an example of that.
As part of the project with
tach
to remove cyclic dependencies, this PR removes many cyclic dependencies that includechia.server
:chia.XX
where XX is one offarmer
,simulator
,full_node
,harvester
,introducer
,wallet
,apis
,seeder
,timelord
,data_layer
. So it's a lot, but it's mostly just one trick repeated multiple times.It also requires adding some dependencies, and yes, introducing a new cycle with
chia.apis
. But this one we can now target with a laser focus since it's so small (one file with just one entry:ApiProtocolRegistry
.