Skip to content

0.12 Release? #479

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

Closed
termoshtt opened this issue Aug 27, 2018 · 7 comments
Closed

0.12 Release? #479

termoshtt opened this issue Aug 27, 2018 · 7 comments

Comments

@termoshtt
Copy link
Member

There are seveal important changes involved in the next release

  • num-complex, num-traits 0.2
  • blas-src 0.2
  • rand 0.5 (for ndarray-rand)

and current master seems to be ready for the release.
Do you have any schedule for it?

IMFO, this release can be 1.0.

@bluss
Copy link
Member

bluss commented Aug 27, 2018

Sure, let's go with a release soon. @jturner314, can I add you as an owner of the crate too? Only intended to grow the team and have multiple of us in each role. I can manage the release if you want to.

Any other things we need to wrap up before a new version? Due to “rapid” Rust feature adoption, it seems best to continue the 0.x version track.

@jturner314
Copy link
Member

@jturner314, can I add you as an owner of the crate too?

I think you made me an owner of the crates (ndarray, ndarray-rand, and ndarray-parallel) right after you gave me permission to push to the GitHub repository. AFAICT, I'm not an owner of the GitHub repository, though, which might be a good idea (improve our bus factor). Do you have any thoughts on #424?

I can manage the release if you want to.

It doesn't matter to me; I don't mind doing it. I'm just not quite sure about the procedure. It's just:

  1. Bump the version in Cargo.toml, commit, and push to GitHub.
  2. Add a git tag to that commit and push it to GitHub.
  3. Build the crate with cargo package.
  4. Publish the crate with cargo publish.

right? I remember at one time you mentioned a cargo extension that made releases simpler, but I don't remember what it was. We want to release the crates in this order:

  1. Release the new version of ndarray.
  2. Update the ndarray dependency in ndarray-rand and ndarray-parallel.
  3. Release the new versions of ndarray-rand and ndarray-parallel.

Am I missing something?

Any other things we need to wrap up before a new version?

I just created #480, which is a breaking change. Depending on what you think of it, we can merge/close it. The other open PRs won't be ready in the short-term or don't require breaking changes.

The changelog is up-to-date with everything in master. (I updated it in #481.)

Due to “rapid” Rust feature adoption, it seems best to continue the 0.x version track.

I agree. In particular, const generics and specialization are on the horizon, which may benefit from some breaking changes. I'd also like to finish a few other things before we release 1.0 (e.g. changing strides to be represented internally as isize instead of usize, which may result in a few publicly visible changes, and adding ArrayPtr and ArrayPtrMut types (see #388)).

@bluss
Copy link
Member

bluss commented Aug 28, 2018

cargo release is the tool I've been using, without its version-bump feature. It makes it easy to do the tag and publish and push. For example, as a general rule, one wants to publish && git push, so that the push only happens if the publish is successful. Avoids "failed" tags in the repo.

I'll add you as an owner, but it looks like we need an organisation for that. Organsation makes sense anyway, but as a nod to the issue about it, it's only the business of those that contribute to the repo.

@termoshtt
Copy link
Member Author

Due to “rapid” Rust feature adoption, it seems best to continue the 0.x version track.

In particular, const generics and specialization are on the horizon, which may benefit from some breaking changes.

That's good. Thanks comment.

@jturner314
Copy link
Member

I think we're ready for the release. I took a look at cargo-release, and it looks really convenient. Personally, though, if I do the release, I'll be most comfortable doing the steps manually so that I know exactly what's happening.

@bluss I'll plan to release the new versions on Friday, Aug. 31, following the steps listed below unless you have any objections or you say that you'd prefer to handle the release yourself.

  1. Merge Release ndarray 0.12, ndarray-rand 0.8, and ndarray-parallel 0.9 #482 on GitHub. This updates all of the Cargo.toml and README.rst files.
  2. On my local machine, update to the latest master (with the Release ndarray 0.12, ndarray-rand 0.8, and ndarray-parallel 0.9 #482 merge commit) and use git status to make sure that the repository is clean.
  3. Release the ndarray crate:
    1. Build with cargo package. If this fails, stop and figure out what's wrong.
    2. Publish with cargo publish. If this fails, stop and figure out what's wrong.
    3. Create the tag with git tag 0.12.0 and push it to GitHub with git push upstream 0.12.0.
  4. Release the ndarray-rand crate:
    1. cd into ndarray-rand directory.
    2. Build with cargo package. If this fails, stop and figure out what's wrong.
    3. Publish with cargo publish. If this fails, stop and figure out what's wrong.
    4. Create the tag with git tag ndarray-rand-0.8.0 and push it to GitHub with git push upstream ndarray-rand-0.8.0.
  5. Release the ndarray-parallel crate:
    1. cd into parallel directory.
    2. Build with cargo package. If this fails, stop and figure out what's wrong.
    3. Publish with cargo publish. If this fails, stop and figure out what's wrong.
    4. Create the tag with git tag parallel-0.9.0 and push it to GitHub with git push upstream parallel-0.9.0.

All of the releases (and tags) will be on the the merge commit of #482.

@bluss
Copy link
Member

bluss commented Aug 30, 2018

Nice, sounds good

@jturner314
Copy link
Member

All done! ndarray 0.12.0, ndarray-rand 0.8.0, and ndarray-parallel 0.9.0 have been released. 🎉

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

No branches or pull requests

3 participants