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

Umbrella: rustic_core - road to v1 #7

Open
3 of 6 tasks
simonsan opened this issue Aug 10, 2023 · 1 comment
Open
3 of 6 tasks

Umbrella: rustic_core - road to v1 #7

simonsan opened this issue Aug 10, 2023 · 1 comment
Labels
A-benchmarking Area: Related to benchmarking and performance optimisation A-docs Area: Improvements or additions to documentation A-errors Area: error handling needs improvement A-testing Area: Testing and coverage

Comments

@simonsan
Copy link
Contributor

simonsan commented Aug 10, 2023

Target group

Persona 11: Aisha - The Integrative Developer

  • Age: 28
  • Background: Software Developer at a mid-sized tech company
  • Tech-savviness: Advanced
  • Needs: Robust and reliable library, clear documentation, integration examples, extensive customization.
  • Pain Points: poor documentation, integration conflicts, performance issues.
  • Goals: Aims to develop scalable and feature-rich applications. Seeks reliable and efficient external libraries to enhance her software's capabilities without reinventing the wheel.

Requirements

  1. Documentation Clarity

    • The backup solution library should have clear and comprehensive documentation. This will enable developers like Aisha to integrate the library seamlessly.
  2. Error Handling

    • The library should be designed with robust error handling and should provide descriptive error messages. This aids developers in diagnosing integration or functionality issues.

Tracking

A few things that I think we should take care of, before we can stabilize rustic_core:

  1. ergonomic error handling and dealing with warnings
  2. don't use logging in library part
    • Replace logging with error handling, there shouldn't be error! anywhere in the API of the library, they should be actual errors
    • info!/warn! we should think about handling somehow different and only use, when someone uses rustic_core with the logging feature enabled
  3. robust and reliable library: increasing test coverage a bit for exposed items in the API
  4. some benchmarks
  5. clear and comprehensive API documentation (e.g., documenting fallible functions/methods in API)
@simonsan simonsan added A-docs Area: Improvements or additions to documentation A-testing Area: Testing and coverage A-errors Area: error handling needs improvement A-benchmarking Area: Related to benchmarking and performance optimisation labels Aug 10, 2023
@simonsan simonsan changed the title Umbrella: rustic_core release preparation Umbrella: rustic_core - road to v1 Aug 17, 2023
@simonsan simonsan transferred this issue from rustic-rs/rustic Sep 18, 2023
@github-actions github-actions bot added the S-triage Status: Waiting for a maintainer to triage this issue/PR label Sep 18, 2023
@simonsan simonsan removed the S-triage Status: Waiting for a maintainer to triage this issue/PR label Sep 18, 2023
@Scandiravian
Copy link

As I mentioned in #26, I had some ideas for adding integration tests to the project and I would like to hear if that would be something that would help with point 3.

My idea is to implement a set of generic set of test functions that are run against each backend covering the public functions of the library, then run these for each backend to ensure full coverage.

A main goal for me would be that the tests can be run locally, since running against cloud services always cause a tonne of issues (in my experience at least). This would be pretty simple for the local backends, since they don't have any external dependencies.

For backends such as S3, REST, and potentially rclone, this obviously requires spinning up dependencies locally. Personally I really like nix for integration tests, but it requires knowledge of the nix language to maintain, so alternatively something like docker/docker-compose might be a better fit.

If this is a direction you want to go, I can write a more thorough design in a separate issue and probably find time to implement it in November.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-benchmarking Area: Related to benchmarking and performance optimisation A-docs Area: Improvements or additions to documentation A-errors Area: error handling needs improvement A-testing Area: Testing and coverage
Projects
None yet
Development

No branches or pull requests

2 participants