SpacetimeDB
SpacetimeDB copied to clipboard
`tools/publish-crates.sh` - Automatically find list of dependencies
Description of Changes
I've gotten tired of manually updating the ordered list of crates to publish, so I had chatgpt make a python script that will do it for us, given some root crates.
See how it's used in tools/publish-crates.sh.
I also made some tiny QoL improvements:
- Extra newline in output to separate the block of output associated with each crate
- Print which number crate we're currently on
API and ABI breaking changes
No user-facing code changes.
Expected complexity level and risk
2
Testing
The new script itself seems to work properly when I give the output a once-over. ~~I haven't tested the new tools/publish-crates.sh using it though (for obvious reasons).~~
- [x] I tested this in the 1.1.0 release
- [x] Example with just the CLI crate:
$ python3 tools/find-publish-list.py --quiet --recursive cli
primitives
metrics
bindings-macro
data-structures
sats
lib
sql-parser
schema
paths
fs-utils
client-api-messages
auth
cli
- [x] And using it the way it's used in
tools/publish-crates.sh:
$ python3 tools/find-publish-list.py --quiet --recursive cli standalone sdk bindings
primitives
metrics
bindings-macro
data-structures
sats
lib
bindings-sys
client-api-messages
sql-parser
schema
table
expr
physical-plan
execution
query
paths
fs-utils
commitlog
durability
subscription
snapshot
vm
auth
core
client-api
bindings
sdk
standalone
cli
- [x] The output of running it on
cli standalone sdk bindingsis the same length as the "static" list of crates that was inpublish-crates.sh(actually it's shorter by one, because there was a duplicate crate listed)