Skip to content
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

[suggestion] Split generic configuration functionality from iroha_config_base into a standalone library #4297

Open
0x009922 opened this issue Feb 18, 2024 · 0 comments
Labels
iroha2-dev The re-implementation of a BFT hyperledger in RUST Refactor Improvement to overall code quality

Comments

@0x009922
Copy link
Contributor

0x009922 commented Feb 18, 2024

Description

Currently, iroha_config and iroha_client::config contain a lot of boilerplate and based on general types/helpers from iroha_config_base. The intention was to develop a separate configuration library which will provide convenient abstractions and macros to define a flexible configuration system.

Such a library should provide the following:

  • Useful errors:
    • Fancy diagnostic messages with spans to the source and hints
    • Emit as many errors as possible at once
  • Tracing: it should be possible to print information about which were read from a source, how they are overwritten etc. See the RFC for more details: Tracking Issue for Configuration Overhaul #2585

I was working on a draft of it: https://github.com/0x009922/project-soukousei. It's far from being finished. I used schematic as reference, but unfortunately it has some design decisions I strongly dislike.

Also

@0x009922 0x009922 added iroha2-dev The re-implementation of a BFT hyperledger in RUST Refactor Improvement to overall code quality labels Feb 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
iroha2-dev The re-implementation of a BFT hyperledger in RUST Refactor Improvement to overall code quality
Projects
None yet
Development

No branches or pull requests

1 participant