untitaker / rust-vobject

VObject parser and generator for Rust
https://docs.rs/vobject/
MIT License
17 stars 7 forks source link

High-Level Interface #14

Open matthiasbeyer opened 7 years ago

matthiasbeyer commented 7 years ago

I am about to submit patches for a high-level interface for vcard/icalendar handling.

This is the tracking issue for the progress, as I will submit a series of PRs. The PRs will be as follows:

PR In Progress Submitted Accepted
Refactoring PR yes yes no
Travis Setup PR yes yes no
High level Read-Interface for Vcard yes no no
High level Write-Interface for Vcard yes no no
High level Read-Interface for Icalendar yes no no
High level Write-Interface for Icalendar no no no

Optionally I will rewrite the interfaces for better ergonomics, if I feel that there's need for that:


About Releases

I, personally, would not release the changes of the first two patches in a new release of the crate. They are just preparings for the other PRs and do not introduce new functionality. Either way, the Refactoring PR contains breaking changes in the exported error types, as I switch to use error_chain there, so releasing a new version of the crate with this PR merged would not be a patch release but one with breaking changes.

Just for your notice.

matthiasbeyer commented 6 years ago

Not sure whether we can close this already... what do you mean? The "high-level" interface is mostly generated from macros and not quite as "high level" as I would like it to be (everything is still String in the public API)...

untitaker commented 6 years ago

Feel free to close it when you see fit

untitaker commented 6 years ago

@matthiasbeyer was it intentional to export all macros?

matthiasbeyer commented 6 years ago

Uh, oh... Ummm... No, I don't think so. Damn, that shouldn't have happened. I will check tomorrow which we should not export and which we can export.

untitaker commented 6 years ago

I know how to remove them (and have time), but I'd need to know if you want to export any of them.

matthiasbeyer commented 6 years ago

The parameters!() macro in src/param.rs is useful outside of the crate (and I am using it in another crate, for example). All others don't need to be exported.

As far as I can tell, removing them would alter the public interface of the crate and thus would need us to release a minor update with these changes (0.6.0) rather than a bugfix release (0.5.1) ... what do you think?

untitaker commented 6 years ago

@matthiasbeyer sorry, I overlooked this. Yes, this definetly would have to be a minor release.