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

Release 1.0? #101

Closed
tarcieri opened this issue Jun 3, 2020 · 6 comments · Fixed by #138
Closed

Release 1.0? #101

tarcieri opened this issue Jun 3, 2020 · 6 comments · Fixed by #138

Comments

@tarcieri
Copy link

tarcieri commented Jun 3, 2020

This crate has become a pretty foundational part of a few Rust ecosystems:

  • Embedded (via heapless and other fixed-sized containers)
  • RustCrypto (where we just completed a generic-array v0.14 upgrade)

Unfortunately, if you now use both heapless and RustCrypto in conjunction (via RustCrypto's aead::heapless for example) it pulls in generic-array v0.12, v0.13, and v0.14! (this is due to the as-slice crate, which pulls in both v0.12 and v0.13 for whatever reason)

In addition to eliminating confusion around coordinating generic-array upgrades, a 1.0 release of generic-array is one of the main blockers for a 1.0 release of many of the RustCrypto crates, so it'd be fantastic if that were to happen.

Any thoughts on a 1.0 release?

@tarcieri
Copy link
Author

tarcieri commented Jun 3, 2020

Related: rust-embedded/heapless#166

@burdges
Copy link

burdges commented Jun 3, 2020

#56

@novacrazy
Copy link
Collaborator

I'm looking to merge #104 soon. Are there any additions or breaking changes that come to mind for a 1.0 release?

@Robbepop
Copy link
Contributor

I'm looking to merge #104 soon. Are there any additions or breaking changes that come to mind for a 1.0 release?

Not sure if these would be breaking changes but we could improve support for &GenericArray<T, N> and &mut GenericArray<T, N>. I pushed into this direction with my current and former PRs but there is more we could do.

We already established that GenericArray<T, N> is similar to [T; N] and &GenericArray<T, N> as well as &mut GenericArray<T, N> are similar to &[T, N] and &mut [T, N] respectively. They should be able to be used interchangeably with minimal effort and at best as drop in replacement for when you need more control over the N.

In this regard I see potential in implementing Shorten (and maybe also Lengthen) for those reference types and not just for the value part:
2020-06-16-224229_1570x373_scrot
2020-06-16-224527_1578x589_scrot

Same for Send and Sync if &[T; N] or &mut [T; N] is Send or Sync respectively.
Also an IntoIterator for the reference types yielding &T and &mut T respectively could be useful as with:
2020-06-16-224722_1811x660_scrot
Especially since we can even provide an ExactSizeIterator in both cases.

But all in all none of these are to my opinion breaking changes so we could probably introduce them post 1.0.

@novacrazy
Copy link
Collaborator

See #138 for the current status of this. Looking for feedback and ideas.

@novacrazy novacrazy mentioned this issue Mar 28, 2023
Merged
2 tasks
@novacrazy
Copy link
Collaborator

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

Successfully merging a pull request may close this issue.

4 participants