Closed arvidn closed 1 month ago
I also don't really see the point of this step except to add pre-commit & CI overhead when the path forward is uncertain.
It's this: "The main point of the tool is of course to prevent people not working on refactoring from undo-ing the refactor-ers' progress"
It's this: "The main point of the tool is of course to prevent people not working on refactoring from undo-ing the refactor-ers' progress"
Yes, except the method with which to refactor has not been established and therefore progress cannot be made to potentially undo.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Changes Missing Coverage | Covered Lines | Changed/Added Lines | % | ||
---|---|---|---|---|---|
chia/util/virtual_project_analysis.py | 268 | 273 | 98.17% | ||
<!-- | Total: | 493 | 498 | 99.0% | --> |
Files with Coverage Reduction | New Missed Lines | % | ||
---|---|---|---|---|
chia/full_node/full_node_api.py | 1 | 82.28% | ||
chia/wallet/wallet_node.py | 2 | 88.51% | ||
chia/timelord/timelord_launcher.py | 2 | 70.55% | ||
chia/_tests/core/test_farmer_harvester_rpc.py | 2 | 98.02% | ||
chia/rpc/rpc_server.py | 3 | 87.83% | ||
chia/server/node_discovery.py | 3 | 79.26% | ||
chia/full_node/full_node.py | 5 | 86.6% | ||
chia/timelord/timelord.py | 11 | 79.31% | ||
<!-- | Total: | 29 | --> |
Totals | |
---|---|
Change from base Build 10966863149: | 0.04% |
Covered Lines: | 102442 |
Relevant Lines: | 112569 |
Yes, except the method with which to refactor has not been established and therefore progress cannot be made to potentially undo.
you break something off by marking it as belonging to a different project. Then it can not be undone by mistake, only by changing back (or removing) the marking, or by disabling the CI job
What I think we should do: keep it external. Do a pip install git+https:// pinned by revision number (at least for now) in the github action. This allows extremely fine-grained use of the tool from an external repo without even doing a pypi release of it.
You would still need two steps to make a change. e.g. I might want to add a feature where you can label files based on a glob pattern in the yaml file. I would have to add that feature in a separate repo and (possibly) not be able to demonstrate that it works as intended until I update it in chia-blockchain.
What I think we should do: keep it external. Do a pip install git+https:// pinned by revision number (at least for now) in the github action. This allows extremely fine-grained use of the tool from an external repo without even doing a pypi release of it.
You would still need two steps to make a change. e.g. I might want to add a feature where you can label files based on a glob pattern in the yaml file. I would have to add that feature in a separate repo and (possibly) not be able to demonstrate that it works as intended until I update it in chia-blockchain.
When you add a feature to vpa
, you can also add a test. Or try the feature by hand. Or push it to a temporary branch and push a chia-blockchain
PR with it pinned to that change #. Yes, an extra push, so slightly less convenient.
Purpose:
Slightly modified subset of @Quexington 's virtual project structure tool. https://github.com/Chia-Network/chia-blockchain/pull/17810
The main differences are:
chia-blockchain
project.This is immediately helpful for someone breaking out a sub-project to prevent other (unrelated) PRs re-introducing dependency cycles.
Current Behavior:
There is no way to "lock in" progress of breaking out sub-projects that should not have dependencies back into the core of chia-blockchain.
New Behavior:
This tool allows you to "lock in" progress of breaking out sub-projects. Once it lands, other PRs cannot re-introduce dependency cycles without CI turning red.
Changes:
Changes from Quexingtons patch (it's not so easy to compare on github because we have different base commits).
Whatever dict-like object
yaml.safe_load()
returns, it doesn't appear itsget()
function accepts a default value. Whith 0 exclusions, it returnedNone
instead of[]
.