Skip to content

Commit

Permalink
Merge #99: The Great Reset
Browse files Browse the repository at this point in the history
292dd1e Fix repl mode command parsing (Steve Myers)
073f1c3 Update with review comments (rajarshimaitra)
4e8f830 revert author list change (rajarshimaitra)
b09c405 Remove base64 dependency (rajarshimaitra)
1e70ff9 Refactor everything (rajarshimaitra)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  This is a massive refactoring PR that changes the whole structure of the crate. Previously it was written like a library
  to be used to create the bdk-cli app. But eventually the crate itself became the app. This PR attempts to remove the remaining
  lib like patterns in the code, and make it a pure binary crate.

  This makes the code more modular and makes it look like a typical binary rust crate.

  There was no real good way to structure the change into separate commits, so I made one single big one.. The best way to review is to look at the final structure of the code itself, not the change set.

  The crate has following modules now
   -  `main` : The main app runtime
   -  `commands`: Includes all the structopt commands used by bdk-cli.
   -  `handlers`: Include all the command handlers used buy the app.
   -  `utils`: Include all the utility and helper functions
   - `Backend` : Defines the backend node process, and its related methods. (This will be filled more with #92).

  Apart from the structure changes there are few other changes that took place
   - Almost all of the previous doc comments are removed. As they were written to use bdk-cli as a lib. Instead new structopts "comments" are added to describe the app functionality better. As a result the app `--help` commands are more elaborate and descriptive now. I have also removed few redundant description messages used before, that would mess up the help comments. And as a by product it solves #93.

   - bdk is updated to v0.19.0

   - bdk-reserves is updated with current version pointing to bdk v0.19.0.

   - Default database is now sqlite.

   Overall I think I managed not to break anything.

   Currently this change will remove most of the previous documentation on the crate. But those aren't useful to context of bdk-cli after this change.. My proposal would be reproduce the README instructions itself in doc.rs landing page.

   We also need to update the README to reflect these changes.. I will open that up in a separate PR.

   I also haven't updated changelog yet.. Not sure yet how to describe the change in short.. Will do that once this is almost finalized..

  ### Notes to the reviewers

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk-cli/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature
  * [ ] I've updated `CHANGELOG.md`

ACKs for top commit:
  notmandatory:
    ACK 292dd1e

Tree-SHA512: 895d8088bf93a481fd776e2ac5fe85926f13b7b4535f17b9edd3c0363a89dc3689e28c6e13dbcac3970bc00e3ff206f402e94406f3b3688c9e4a7f9d31b20e40
  • Loading branch information
notmandatory committed Jul 6, 2022
2 parents 14866e2 + 292dd1e commit d8e93ab
Show file tree
Hide file tree
Showing 10 changed files with 1,792 additions and 1,796 deletions.
1 change: 0 additions & 1 deletion .github/workflows/cont_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ jobs:
- compiler
- compact_filters
- rpc
- reserves
- reserves,electrum
- electrum,verify
# regtest-* features are experimental and not fully usable
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]

- Add distinct `key-value-db` and `sqlite-db` features, keep default as `key-value-db`
- Reorganize existing codes in separate modules. Change crate type from lib to bin.
- Rewrite relevant doc comments as `structopt` help document.
- Update `bdk` and `bdk-reserves` to v0.19.0.
- Change default database to `sqlite`.

## [0.5.0]

Expand Down
Loading

0 comments on commit d8e93ab

Please sign in to comment.