-
Notifications
You must be signed in to change notification settings - Fork 8
/
release_process
85 lines (70 loc) · 3.75 KB
/
release_process
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
This is a short note on the process for creating an ImageMetaTag release
and making it available via conda
1) Develop, prepare and test your changes as normal, up to the point where
the changes warrants a new release.
2) Run the test.py script with multiple python environments to give version coverage. Check for deprecation messages and resolve them so that future versions don't break.
3) The release number should be changed using the Semantic versioning
convention (http://semver.org/)
* The version number should be incemented in the following locations:
* ImageMetaTag/__init__.py
* ImageMetaTag/javascript/imt_dropdown.js
* docs/source/conf.py
* setup.py
* After changing the release numbers, run the test.py script again one last
time to make sure it works, as the code at this stage is what will be
released.
4) Update the documentation, from the docs directory:
cd docs
* Clean the documentation build:
make html clean
* Rebuild the docs, ensuring that the PYTHONPATH refers to the source of
the new build:
PYTHONPATH=../ make html
5) Commit the version number and documentation changes:
git commit -a
git push origin {{ branch_name }}
6) Start a pull request for your branch on your github fork and follow the
process to merge it to the master branch.
## THIS IS BROKEN NOW AND WE HAVE TO DO SOMETHING ELSE.
## (need to ask a software engineer why and what to do...)
7) Test the package works at the commit which you intend to release by
installing from the specific commit to a temporary location. Install it
using the setup.py and run the test.py script.
py27 setup.py install
This will also make a dist/ folder for uploading to pypi later.
From this point onwards, admin rights are required to both image-meta-tag and image-meta-tag-feedstock repositories.
8) Pulbish a release in the image-meta-tag repository for the new release
number at: https://github.com/SciTools-incubator/image-meta-tag/releases
* Tag version is just the version number e.g. '0.6.7' in the code.
* The convention used for the release title adds 'vn' before the number, e.g.
'vn0.6.7'
* The release description can be used to give a very brief outline of the
changes.
9) Update the recipe on the conda-forge-feedstock:
* The main repository is:
https://github.com/conda-forge/image-meta-tag-feedstock
* The location of admin branches is:
https://github.com/melissaebrooks/image-meta-tag-feedstock
* Clone the repository:
git clone [email protected]:melissaebrooks/image-meta-tag-feedstock.git image-meta-tag-feedstock
* Add the upstream repository:
git remote add upstream [email protected]:conda-forge/image-meta-tag-feedstock.git
* Before branching, make sure we have rebased to upstream/master:
git rebase upstream/master
* Create a branch within that clone, typically named after the release:
git checkout -b vn0.6.7
* Update the recipe/meta.yaml
* The version should point to the new version tag e.g. '0.6.7'
* To get the sha256 values, download the tar file for the release, e.g.:
https://github.com/SciTools-incubator/image-meta-tag/archive/0.6.7.tar.gz
Then get the sha256sum of the tar file.
* Commit to change with git commit -a
* Push the change to origin git push origin vn0.6.7
* Open a pull request to merge into upstream on the branches page:
https://github.com/melissaebrooks/image-meta-tag-feedstock/branches
* The pull request will automatically run the tests. These can take a while.
* When the tests have completed succesfully the change can be merged.
* Without an hour or so the new release should be available via conda.
10) With a correctly set up pypi login and .pypirc file, the following
command will set up a pypi record for the release (python > 2.7.13 is needed):
twine upload dist/*