... | ... |
@@ -11,7 +11,7 @@ The following checks should be made *before* tagging the release. |
11 | 11 |
#### Check that all issues are resolved |
12 | 12 |
|
13 | 13 |
Check that all the issues and merge requests for the appropriate |
14 |
-[milestone](https://gitlab.kwant-project.org/qt/adaptive/issues) |
|
14 |
+[milestone](https://github.com/python-adaptive/adaptive/issues) |
|
15 | 15 |
have been resolved. Any unresolved issues should have their milestone |
16 | 16 |
bumped. |
17 | 17 |
|
... | ... |
@@ -20,7 +20,7 @@ bumped. |
20 | 20 |
|
21 | 21 |
For major and minor releases we will be tagging the ``master`` branch. |
22 | 22 |
This should be as simple as verifying that the |
23 |
-[latest CI pipeline](https://gitlab.kwant-project.org/qt/adaptive/pipelines) |
|
23 |
+[latest CI pipeline](https://dev.azure.com/python-adaptive/adaptive/_build) |
|
24 | 24 |
succeeded. |
25 | 25 |
|
26 | 26 |
|
... | ... |
@@ -19,8 +19,8 @@ bumped. |
19 | 19 |
#### Ensure that all tests pass |
20 | 20 |
|
21 | 21 |
For major and minor releases we will be tagging the ``master`` branch. |
22 |
-This should be as simple as verifying that the |
|
23 |
-[latest CI pipeline](https://gitlab.kwant-project.org/qt/adaptive/pipelines) |
|
22 |
+This should be as simple as verifying that the |
|
23 |
+[latest CI pipeline](https://gitlab.kwant-project.org/qt/adaptive/pipelines) |
|
24 | 24 |
succeeded. |
25 | 25 |
|
26 | 26 |
|
... | ... |
@@ -50,7 +50,7 @@ rm -fr build dist |
50 | 50 |
python setup.py sdist bdist_wheel |
51 | 51 |
``` |
52 | 52 |
|
53 |
-This creates the file `dist/adaptive-<version>.tar.gz`. It is a good idea to unpack it |
|
53 |
+This creates the file `dist/adaptive-<version>.tar.gz`. It is a good idea to unpack it |
|
54 | 54 |
and check that the tests run: |
55 | 55 |
``` |
56 | 56 |
tar xzf dist/adaptive*.tar.gz |
... | ... |
@@ -58,13 +58,33 @@ cd adaptive-* |
58 | 58 |
py.test . |
59 | 59 |
``` |
60 | 60 |
|
61 |
-## Upload to PyPI |
|
61 |
+### Create an empty commit for new development and tag it |
|
62 |
+``` |
|
63 |
+git commit --allow-empty -m 'start development towards v<version+1>' |
|
64 |
+git tag -am 'Start development towards v<version+1>' v<version+1>-dev |
|
65 |
+``` |
|
66 |
+ |
|
67 |
+Where `<version+1>` is `<version>` with the minor version incremented |
|
68 |
+(or major version incremented and minor and patch versions then reset to 0). |
|
69 |
+This is necessary so that the reported version for any further commits is |
|
70 |
+`<version+1>-devX` and not `<version>-devX`. |
|
71 |
+ |
|
72 |
+ |
|
73 |
+## Publish the release |
|
74 |
+ |
|
75 |
+### Push the tags |
|
76 |
+``` |
|
77 |
+git push origin v<version> v<version+1>-dev |
|
78 |
+``` |
|
79 |
+ |
|
80 |
+### Upload to PyPI |
|
62 | 81 |
|
63 | 82 |
``` |
64 | 83 |
twine upload dist/* |
65 | 84 |
``` |
66 | 85 |
|
67 | 86 |
|
87 |
+ |
|
68 | 88 |
## Update the [conda-forge recipe](https://github.com/conda-forge/adaptive-feedstock) |
69 | 89 |
|
70 | 90 |
* Fork the [feedstock repo](https://github.com/conda-forge/adaptive-feedstock) |
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,74 @@ |
1 |
+# Making a Adaptive release |
|
2 |
+ |
|
3 |
+This document guides a contributor through creating a release of Adaptive. |
|
4 |
+ |
|
5 |
+ |
|
6 |
+## Preflight checks |
|
7 |
+ |
|
8 |
+The following checks should be made *before* tagging the release. |
|
9 |
+ |
|
10 |
+ |
|
11 |
+#### Check that all issues are resolved |
|
12 |
+ |
|
13 |
+Check that all the issues and merge requests for the appropriate |
|
14 |
+[milestone](https://gitlab.kwant-project.org/qt/adaptive/issues) |
|
15 |
+have been resolved. Any unresolved issues should have their milestone |
|
16 |
+bumped. |
|
17 |
+ |
|
18 |
+ |
|
19 |
+#### Ensure that all tests pass |
|
20 |
+ |
|
21 |
+For major and minor releases we will be tagging the ``master`` branch. |
|
22 |
+This should be as simple as verifying that the |
|
23 |
+[latest CI pipeline](https://gitlab.kwant-project.org/qt/adaptive/pipelines) |
|
24 |
+succeeded. |
|
25 |
+ |
|
26 |
+ |
|
27 |
+#### Verify that `AUTHORS.md` is up-to-date |
|
28 |
+ |
|
29 |
+The following command shows the number of commits per author since the last |
|
30 |
+annotated tag: |
|
31 |
+``` |
|
32 |
+t=$(git describe --abbrev=0); echo Commits since $t; git shortlog -s $t.. |
|
33 |
+``` |
|
34 |
+ |
|
35 |
+## Make a release, but do not publish it yet |
|
36 |
+ |
|
37 |
+ |
|
38 |
+### Tag the release |
|
39 |
+ |
|
40 |
+Make an **annotated, signed** tag for the release. The tag must have the name: |
|
41 |
+``` |
|
42 |
+git tag -s v<version> -m "version <version>" |
|
43 |
+``` |
|
44 |
+ |
|
45 |
+ |
|
46 |
+### Build a source tarball and wheels and test it |
|
47 |
+ |
|
48 |
+``` |
|
49 |
+rm -fr build dist |
|
50 |
+python setup.py sdist bdist_wheel |
|
51 |
+``` |
|
52 |
+ |
|
53 |
+This creates the file `dist/adaptive-<version>.tar.gz`. It is a good idea to unpack it |
|
54 |
+and check that the tests run: |
|
55 |
+``` |
|
56 |
+tar xzf dist/adaptive*.tar.gz |
|
57 |
+cd adaptive-* |
|
58 |
+py.test . |
|
59 |
+``` |
|
60 |
+ |
|
61 |
+## Upload to PyPI |
|
62 |
+ |
|
63 |
+``` |
|
64 |
+twine upload dist/* |
|
65 |
+``` |
|
66 |
+ |
|
67 |
+ |
|
68 |
+## Update the [conda-forge recipe](https://github.com/conda-forge/adaptive-feedstock) |
|
69 |
+ |
|
70 |
+* Fork the [feedstock repo](https://github.com/conda-forge/adaptive-feedstock) |
|
71 |
+* Change the version number and sha256 in `recipe/meta.yaml` and commit to your fork |
|
72 |
+* Open a [Pull Request](https://github.com/conda-forge/adaptive-feedstock/compare) |
|
73 |
+* Type `@conda-forge-admin, please rerender` as a comment |
|
74 |
+* When the tests succeed, merge |