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

0.13.0 release #3257

Closed
max-sixty opened this issue Aug 23, 2019 · 43 comments
Closed

0.13.0 release #3257

max-sixty opened this issue Aug 23, 2019 · 43 comments

Comments

@max-sixty
Copy link
Collaborator

What do we think about a minor release soon?

My colleague just hit #3145 which reminded me the current release can make filing an issue confusing for folks

We've had a v good pipeline of changes in just a month: https://github.com/pydata/xarray/blob/master/doc/whats-new.rst#L18

I'm happy to help with this; ref #2998 (comment)

@shoyer
Copy link
Member

shoyer commented Aug 24, 2019

There are couple of small fixes for sparse arrays with open pull requests. I would lean toward getting those in before the release.

One thing that would be especially helpful is finalizing some deprecations that have been open for a while, e.g., the removal of the inplace argument and sel_points().

@shoyer
Copy link
Member

shoyer commented Aug 24, 2019

Also it would be great if you’d like to try going through the release process. We can potentially automate and/or remove some of those steps.

@max-sixty max-sixty mentioned this issue Aug 24, 2019
2 tasks
@max-sixty
Copy link
Collaborator Author

What do you think about writing a small script and deploying with an azure pipeline, triggering only on new tags? Could include the standard running tests etc. I'd need to look into how authentication re PyPI would work if done remotely. Or is this begging the xkcd cartoon?

@crusaderky
Copy link
Contributor

Given that's 1 hour of work about once a month... Unless there is appetite for increasing the release frequency, I would say automation is overkill

@dcherian
Copy link
Contributor

 4. On the master branch, commit the release in git:
      git commit -a -m 'Release v0.X.Y'
 5. Tag the release:
      git tag -a v0.X.Y -m 'v0.X.Y'
 6. Build source and binary wheels for pypi:
      git clean -xdf  # this deletes all uncommited changes!
      python setup.py bdist_wheel sdist
 7. Use twine to register and upload the release on pypi. Be careful, you can't
    take this back!
      twine upload dist/xarray-0.X.Y*
    You will need to be listed as a package owner at
    https://pypi.python.org/pypi/xarray for this to work.
 8. Push your changes to master:
      git push upstream master
      git push upstream --tags
 9. Update the stable branch (used by ReadTheDocs) and switch back to master:
      git checkout stable
      git rebase master

This bit seems easily scriptable

@max-sixty
Copy link
Collaborator Author

Yeah, automation is probably overkill if someone does it correctly each time – it does also mean hopefully no one makes a mistake / forgets a step

@shoyer
Copy link
Member

shoyer commented Aug 27, 2019

My experience has been that the manual processes (e.g., checking release notes, finishing up deprecation cycles) take up most of the effort of issuing a new release. The commands 4-9 take about 5 minutes to run. I agree that the main value of automation there would be reducing the likelihood of manual mistakes.

It looks like there's an experimental documentation builder for pull requests with read the docs. It would be interesting to explore using it in xarray: https://blog.readthedocs.com/building-docs-for-pull-requests/

@max-sixty
Copy link
Collaborator Author

It looks like there's an experimental documentation builder for pull requests with read the docs. It would be interesting to explore using it in xarray: https://blog.readthedocs.com/building-docs-for-pull-requests/

Perfect - I emailed. Anything else like this, feel free to push onto us / me

@dopplershift
Copy link
Contributor

The benefit to automation also makes it easier to distribute the workload to other people, helping with project sustainability. On my projects, I find it very nice that I make a new release on GitHub and packages appear on PyPI and the web docs are automatically updated to the new version.

@dcherian
Copy link
Contributor

I find it very nice that I make a new release on GitHub and packages appear on PyPI and the web docs are automatically updated to the new version.

How do you do this? i.e. trigger PyPI and RTD updates with a tag on github?

@dopplershift
Copy link
Contributor

On Travis I have some deploy hooks:

  1. Using Travis' built-in PyPI support, it uploads wheels and sdist, only on tags
  2. Execute a custom script to commit built docs to github pages (not RTD). On master builds, this updates dev docs. On a tag, it adds a new directory for that version of the docs.

Travis Config
Doc Deploy Script

@max-sixty
Copy link
Collaborator Author

FYI: we're on the waitlist for the RTD feature

@max-sixty
Copy link
Collaborator Author

FYI re RTD PR feature, too many PRs! :)

We are sorry, we can't enable the pull requests builder feature for your project right now. This is because the long build time and many active PRs of your project. We have limited resources, we are working in making the builds faster. We let you know when we can enable the feature for your project.

@fmaussion
Copy link
Member

RTD is struggling with resources, and I can understand that. What is really annoying (and the problem is often the same on travis) is that the conda install is taking a huge part of the build process resources. See e.g. readthedocs/readthedocs.org#6025 , where I ended up using pip for very satisfying results (!).

@crusaderky
Copy link
Contributor

Can't we have a nightly build of docker images with all the xarray depencencies?
Then the individual CI jobs would literally become something like

FROM xarray-ci-py37
RUN pip install .

@fmaussion
Copy link
Member

fmaussion commented Aug 30, 2019

Can't we have a nightly build of docker images with all the xarray depencencies?

This would help on Travis yes, but not on RTD which doesn't support docker. But otherwise yes, I've also found that CI is faster and more reliable with docker. In terms of resources "in general", I wonder if it wouldn't be nice to share a common testing image base with other packages of the pydata ecosytem.

@shoyer
Copy link
Member

shoyer commented Sep 4, 2019

I did some searching for "FutureWarning" and "DeprecationWarning", and turned up a bunch worth cleaning up for 0.13:
#3280

Otherwise I think we're ready do a release?

@max-sixty
Copy link
Collaborator Author

(FYI I am on vacation — can contribute next week)

@dcherian
Copy link
Contributor

dcherian commented Sep 5, 2019

It would be nice to get #3239 in since it fixes a longstanding issue with open_mfdataset.

@dcherian
Copy link
Contributor

dcherian commented Sep 7, 2019

We should also merge the scipy19-docs branch since that has some nice changes (ping @rabernat).

@rabernat
Copy link
Contributor

We should also merge the scipy19-docs branch since that has some nice changes

Ideally there are a few things we should finish:

I agree it would be nice to get these into a release. On the other hand, I feel like most doc users are just looking at the "latest" docs, so perhaps not as urgent as the other items on here.

@dcherian
Copy link
Contributor

On the other hand, I feel like most doc users are just looking at the "latest" docs

I'm not so sure of this. The default is stable. and it isn't very obvious how to change it.

We can also merge that branch multiple times...

@shoyer
Copy link
Member

shoyer commented Sep 10, 2019 via email

@max-sixty
Copy link
Collaborator Author

Anything final remaining? A couple of nice-to-haves on #3280 but otherwise I think all done?

If so, I have some time this week to help—I can coordinate

@dcherian
Copy link
Contributor

Yes we should release ASAP. #3313 and #3314 are the last two items on the checklist.

@shoyer
Copy link
Member

shoyer commented Sep 17, 2019

OK, @max-sixty or @dcherian do one of you want to take the lead on issuing the release this time? Everything should be in the HOW_TO_RELEASE checklist, but I'm sure something will come up -- nonetheless, it's good to increase the bus factor!

@dcherian
Copy link
Contributor

OK happy to do so.

You will need to be listed as a package owner at
https://pypi.python.org/pypi/xarray for this to work.

Do you want to add the rest of the core team as owners on pypi and RTD?

@max-sixty
Copy link
Collaborator Author

Great—happy to help @dcherian—thank you!

@dcherian
Copy link
Contributor

dcherian commented Sep 17, 2019

OK I've done everything but

  • upload to PyPI
  • update RTD
  • announcement email

@max-sixty Can you take over emailing the users list?

  1. Issue the release announcement! For bug fix releases, I usually only email
    [email protected]. For major/feature releases, I will email a broader
    list (no more than once every 3-6 months):
    [email protected], [email protected],
    [email protected], [email protected],
    [email protected]
    Google search will turn up examples of prior release announcements (look for
    "ANN xarray").

@dcherian
Copy link
Contributor

@shoyer instructions in HOW_TO_RELEASE worked perfectly :)

@shoyer
Copy link
Member

shoyer commented Sep 17, 2019

@dcherian (and anyone else who's interested) could you please send me your pypi and RTD account names?

@max-sixty
Copy link
Collaborator Author

Yes, and our Twitter account! Ping back when it's on PyPI and I'll send out

@max-sixty
Copy link
Collaborator Author

@shoyer I'm at maximilianroos on PyPI but maybe we lock that down tighter than the GH privileges?

@shoyer
Copy link
Member

shoyer commented Sep 17, 2019

Maintainers permissions enable: "Can upload releases for a package. Cannot add collaborators. Cannot delete files, releases, or the project."

I'm pretty happy passing that out to anyone interested :)

@dcherian
Copy link
Contributor

dcherian commented Sep 17, 2019

Hahaha, I just signed up at PyPI as dcherian

EDIT: I'm dcherian on RTD also.

@shoyer
Copy link
Member

shoyer commented Sep 17, 2019

@dcherian done! you should have permissions for both RTD and pypi now

@dcherian
Copy link
Contributor

Thanks! Done with release on PyPI: https://pypi.org/project/xarray/0.13.0/

Time to announce!

@max-sixty
Copy link
Collaborator Author

@dcherian did you add a tag? I don't see that yet

@dcherian
Copy link
Contributor

@max-sixty
Copy link
Collaborator Author

Great! My mistake

@jhamman
Copy link
Member

jhamman commented Sep 17, 2019

I just merged conda-forge/xarray-feedstock#50, so the release should be available on conda-forge soon.

@shoyer
Copy link
Member

shoyer commented Sep 18, 2019 via email

@max-sixty
Copy link
Collaborator Author

@pydata/xarray let me know any feedback on the email announcements

@keewis keewis mentioned this issue Dec 17, 2019
1 task
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

8 participants