Skip to content

0.12 Release? #479

Closed
Closed

Description

@termoshtt

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.

Activity

  1. bluss commented on Aug 27, 2018

    @bluss
    Member

    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.

  2. jturner314 commented on Aug 28, 2018

    @jturner314
    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)).

  3. bluss commented on Aug 28, 2018

    @bluss
    Member

    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.

  4. termoshtt commented on Aug 29, 2018

    @termoshtt
    MemberAuthor

    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.

  5. jturner314 commented on Aug 30, 2018

    @jturner314
    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.

  6. bluss commented on Aug 30, 2018

    @bluss
    Member

    Nice, sounds good

  7. jturner314 commented on Sep 1, 2018

    @jturner314
    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions