From c308aa41067ec81f1b00c3611c45b5879b5cc1de Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Thu, 18 Jul 2019 08:58:39 -0700 Subject: [PATCH 1/2] Pre-attempt cleanups --- README.md | 3 +-- docker-files/conda/Dockerfile | 2 +- recipe/meta.yaml | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8a5eb80..bc1ada3 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,8 @@ Release automation for pandas. ## Steps to a release - [ ] Manually update - - [ ] `PANDAS_VERSION` in `Makefile` + - [ ] `TAG` in `Makefile` - [ ] `GH_USERNAME` in `Makefile` - - [ ] `version` in `recipe/meta.yaml` ``` diff --git a/docker-files/conda/Dockerfile b/docker-files/conda/Dockerfile index 4b9422b..710f12f 100644 --- a/docker-files/conda/Dockerfile +++ b/docker-files/conda/Dockerfile @@ -3,4 +3,4 @@ FROM condaforge/linux-anvil2:latest RUN conda install -y conda-verify && conda clean -tipsy WORKDIR /pandas -RUN conda build conda.recipe --numpy=1.11 --python=3.6 +RUN conda build conda.recipe --numpy=1.13.3 --python=3.6 diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 40094b8..d7544a4 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -47,3 +47,4 @@ extra: - msarahan - ocefpaf - TomAugspurger + - WillAyd From 962a1fd0388f6e130c4859201a6bb76b85eba6ea Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Thu, 18 Jul 2019 17:37:02 -0700 Subject: [PATCH 2/2] Lessons learned --- Makefile | 10 ++++------ README.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 795bd42..f379023 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,8 @@ # TO EDIT -TAG ?= v0.25.0rc0 -GH_USERNAME ?= TomAugspurger - -PANDAS_VERSION=$(TAG:v%=%) # like 0.24.2 -PANDAS_BASE_VERSION=$(shell echo $(PANDAS_VERSION) | awk -F '.' '{OFS="."} { print $$1, $$2}') # like 0.24 +TAG ?= v0.25.0 +GH_USERNAME ?= WillAyd +PANDAS_VERSION=$(TAG:v%=%) +PANDAS_BASE_VERSION=$(shell echo $(PANDAS_VERSION) | awk -F '.' '{OFS="."} { print $$1, $$2}') TARGZ=pandas-$(PANDAS_VERSION).tar.gz # to ensure pushd and popd works @@ -107,7 +106,6 @@ doc: upload-doc: rsync -rv -e ssh pandas/doc/build/html/ pandas.pydata.org:/usr/share/nginx/pandas/pandas-docs/version/$(PANDAS_VERSION)/ rsync -rv -e ssh pandas/doc/build/latex/pandas.pdf pandas.pydata.org:/usr/share/nginx/pandas/pandas-docs/version/$(PANDAS_VERSION)/pandas.pdf - sudo chgrp -R docs /usr/share/nginx/pandas/pandas-docs link-stable: ssh pandas.pydata.org "cd /usr/share/nginx/pandas/pandas-docs && ln -sfn version/$(PANDAS_VERSION) stable" diff --git a/README.md b/README.md index bc1ada3..8b558cd 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,13 @@ Release automation for pandas. - [ ] `TAG` in `Makefile` - [ ] `GH_USERNAME` in `Makefile` +If running for the first time be sure to initialize repos + +```sh +make init-repos +``` + +And fork pandas-feedstock and pandas-wheels to your GitHub account. ``` # Update repos @@ -21,6 +28,7 @@ make docker-image docker-doc make pandas/dist/<>.sdist # Final Pip and Conda tests. Do these in parallel. +# You can optionally do make doc here as well make pip-test make conda-test @@ -33,7 +41,18 @@ Now manually create a release https://github.com/pandas-dev/pandas/releases Make sure to upload the sdist that's in `pandas/dist/` as the "binary". Conda-forge uses it. -Start the binary builds +On pandas you should also now create and tag a new branch, so + +```sh +git checkout -b .x +git push upstream .x +git checkout master +git commit --allow-empty -m "Start " +git tag -a v.dev0 -m 'DEV: Start cycle' +git push upstream master --follow-tags +``` + +Start the binary builds. **For Mac users** you may need to download the GNU version of sed before running this scripts via `brew install gnu-sed` ``` # Binaries @@ -43,6 +62,8 @@ make wheels Open PRs for each of those. +Note that `make wheels` actually pushes a job to MacPython to produce wheels which we will download later. + Docs. You can cheat and re-tag / rebuild these if needed. ``` @@ -50,7 +71,8 @@ make doc ``` Once the binaries finish, you'll need to manually upload the -wheels to PyPI +wheels to PyPI. Assuming the job which `make wheels` triggered on MacPython completed successfully (you may want to double check this) +you can download a copy of the wheels for Mac / Linux locally. ``` @@ -70,12 +92,32 @@ Finalize the docs ``` make upload-doc make website -make push-website ``` -The website script is currenlty broken. You may need to manually -add the next (dev) release, and remove any pre-releases. +You also need to make edits to the pandas-website to appropriately display items. +Ideally this could be done via `make push-website` as the rule exists but the +intermediary steps aren't fully automated yet. + +```sh +pushd pandas-website +mv latest.rst previous.rst +# Recreate latest.rst to match release notes from GH in earlier steps +# Update pre_release.json and releases.json +git commit -am "Your updates" +git push +make html +make upload +``` + +To make sure /stable and the latest minor revision point to the new release run the following from root + +```sh +popd # should bring us back to root from pandas-website +make link-stable +make link-version +``` +Now check pandas.pydata.org and ensure the sidebar and links are correct! goto announce.