-
-
Notifications
You must be signed in to change notification settings - Fork 0
feat: persistance system #61
base: oxidation
Are you sure you want to change the base?
Conversation
Codecov Report
@@ Coverage Diff @@
## oxidation #61 +/- ##
==============================================
- Coverage 100.00% 57.01% -42.99%
==============================================
Files 1 7 +6
Lines 22 328 +306
==============================================
+ Hits 22 187 +165
- Misses 0 141 +141
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
b3086fc
to
9a6a054
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, that's my quick review, this PR will take a few more days to fully review.
General impressions:
- Add more docs, the whole
fs
module's missing docs. - Look into error handling libraries
- 13 of the 16 tests fail, check the
Code Coverage
CI.
4374d8d
to
1074520
Compare
ecdd8e3
to
7668b2a
Compare
Co-authored-by: Sourajyoti Basak <[email protected]>
Co-authored-by: Sourajyoti Basak <[email protected]>
Co-authored-by: Sourajyoti Basak <[email protected]>
Co-authored-by: Sourajyoti Basak <[email protected]>
Co-authored-by: Sourajyoti Basak <[email protected]>
Co-authored-by: Sourajyoti Basak <[email protected]>
Co-authored-by: Sourajyoti Basak <[email protected]>
Co-authored-by: Sourajyoti Basak <[email protected]>
…tall into feat/persistance-system
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add code examples to the public methods detailing how to use them.
Also, add a full-fledged example(s) on how to use the database module, in examples/
folder on the root of the project.
So people can run cargo run --example <database_example>
to run the example.
Co-authored-by: Sourajyoti Basak <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you rename the PacBuild
fields to resemble their PACBUILD
counterparts wherever possible? Example: package_names
-> pkgname
, homepage
-> url
, licenses
-> license
/// Repology filter. | ||
/// | ||
/// # Example | ||
/// **TBA** | ||
pub repology: String, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this be a HashMap
of the filters?
/// | ||
/// # Example | ||
/// `Paul Cosma <[email protected]>` | ||
pub maintainers: Vec<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pub maintainers: Vec<String>, | |
pub maintainers: Vec<String>, |
Shoud be optional
pub description: String, | ||
|
||
/// Official homepage [URL]. | ||
pub homepage: URL, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shoud be optional
pub homepage: URL, | ||
|
||
/// Latest version fetched from Repology. | ||
pub repology_version: Version, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why should we store the repology version?
/// An array of packages that must be installed for the software to build | ||
/// and run. | ||
pub dependencies: Vec<VersionConstrainedPackageId>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shoud be optional
/// The group the package belongs in. For instance, when installing | ||
/// `plasma`, it installs all packages belonging in that group. | ||
pub groups: Vec<GroupId>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shoud be optional
/// Optional dependencies. Each Key:Pair is meant to describe the package | ||
/// identifier and the reason for installing. | ||
pub optional_dependencies: HashMap<VersionConstrainedPackageId, String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shoud be optional
/// An array of packages that are only required to build the software. | ||
pub make_dependencies: Vec<VersionConstrainedPackageId>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shoud be optional
/// The license under which the software is distributed. | ||
pub licenses: Vec<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be optional
/// File required to build the package. | ||
pub url: URL, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to store the url
in the database?
Closes #28