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

Separate abstractions into own crate? #349

Open
ionut-arm opened this issue Jun 20, 2022 · 2 comments
Open

Separate abstractions into own crate? #349

ionut-arm opened this issue Jun 20, 2022 · 2 comments
Labels
question Further information is requested

Comments

@ionut-arm
Copy link
Member

I've been wondering a lot whether the abstractions module in the tss-esapi crate should be moved to a separate crate. My reason for the split is to not keep the two joined at the hip, and have them move at different speeds - at the moment if one wants to break something in the abstractions API, that also breaks the crate API (obviously).

This would come with a few new problems: all current users who make use of abstractions would have to move to the new crate and most likely change imports and such. The new crate would have to re-export the entire tss-esapi crate so users can work with the correct version of that API easily. It'd also mean that users won't get any updates to the tss-esapi "root" crate immediately.

Another approach would be to just put warnings in the README and docs that the abstraction module is not restricted to semantic versioning between tss-esapi releases (for now), and we can break it when we need to.

Thoughts?

@ionut-arm ionut-arm added the question Further information is requested label Jun 20, 2022
@ionut-arm
Copy link
Member Author

Oh, another option: we can also segregate the abstractions stuff behind a feature. This would help us with minimizing the number of dependencies needed if you only want to work with the "core" Context stuff.

@Superhepper
Copy link
Collaborator

hrmm yeah this is not easy.

I like the idea of having abstractions as a feature though that does not solve the problem with breaking an API in abstraction also breaks the core crate API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants