Skip to content

Commit

Permalink
Release and changelog documentation (globus#1106)
Browse files Browse the repository at this point in the history
* Release and changelog documentation

alpha release for testing

change to allowlist_external

* PR comments
  • Loading branch information
LeiGlobus authored Apr 25, 2023
1 parent c0c8648 commit e4d9f48
Show file tree
Hide file tree
Showing 25 changed files with 1,365 additions and 87 deletions.
12 changes: 12 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ You will also need the following credentials:
- pypi credentials for use with `twine` (e.g. a token in `~/.pypirc`) valid for
publishing `globus-compute-sdk` and `globus-compute-endpoint`

##

Easy copy for editing all the version files:

```bash
$EDITOR compute_sdk/globus_compute_sdk/version.py compute_endpoint/setup.py compute_endpoint/globus_compute_endpoint/version.py compute_funcx/sdk/setup.py compute_funcx/endpoint/setup.py compute_funcx/sdk/funcx/version.py compute_funcx/endpoint/funcx_endpoint/version.py
```

## Procedure

1. Bump versions of both packages to a new latest version number by removing
Expand Down Expand Up @@ -55,3 +63,7 @@ git add compute_sdk/globus_compute_sdk/version.py compute_endpoint/globus_comput
git commit -m 'Bump versions for dev'
git push
```

7. Release updated wrapper versions of funcx and funcx-endpoint (as long as we keep supporting these packages)
See compute_funcx/RELEASING.md for details. ie. cd compute_funcx; ./release.sh

34 changes: 0 additions & 34 deletions changelog.d/20230418_150208_yadudoc1729_app_timeout.rst

This file was deleted.

7 changes: 0 additions & 7 deletions changelog.d/20230420_045259_30907815+rjmello.rst

This file was deleted.

2 changes: 1 addition & 1 deletion compute_endpoint/globus_compute_endpoint/version.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# single source of truth for package version,
# see https://packaging.python.org/en/latest/single_source_version/
__version__ = "2.0.1a1"
__version__ = "2.0.1"

# TODO: remove after a `globus-compute-sdk` release
# this is needed because it's imported by `globus-compute-sdk` to do the version check
Expand Down
6 changes: 5 additions & 1 deletion compute_endpoint/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
REQUIRES = [
"requests>=2.20.0,<3",
"globus-sdk", # version will be bounded by `globus-compute-sdk`
"globus-compute-sdk>=2.0.0",
"globus-compute-sdk>=2.0.1",
"globus-compute-common==0.1.0",
# table printing used in list-endpoints
"texttable>=1.6.4,<2",
Expand Down Expand Up @@ -93,4 +93,8 @@
author_email="[email protected]",
license="Apache License, Version 2.0",
url="https://github.com/funcx-faas/funcx",
project_urls={
"Changelog": "https://globus-compute.readthedocs.io/en/latest/changelog.html", # noqa: E501
"Upgrade to Globus Compute": "https://globus-compute.readthedocs.io/en/latest/funcx_upgrade.html", # noqa: E501
},
)
1 change: 0 additions & 1 deletion compute_endpoint/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ skip_install = true
deps = build
twine
# clean the build dir before rebuilding
whitelist_externals = rm
allowlist_externals = rm
commands_pre = rm -rf dist/
commands = python -m build
Expand Down
31 changes: 13 additions & 18 deletions compute_funcx/RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ This release process is partially automated with tools to help along the way.
You must have the following tools installed and available:

- `git`
- `scriv`
- `tox`

You will also need the following credentials:
Expand All @@ -28,30 +27,26 @@ You will also need the following credentials:
$EDITOR sdk/funcx/version.py endpoint/funcx_endpoint/version.py
```

2. Update the changelog by running `scriv collect --edit`

3. Add and commit the changes to version numbers and changelog files (including
the removal of `changelog.d/` files), e.g. as follows
2. Update the globus-compute-sdk and globus-compute-endpoint dependency versions in setup.py [REQUIRES=].

```bash
git add changelog.d/ docs/changelog.rst
git add sdk/funcx/version.py endpoint/funcx_endpoint/version.py
git commit -m 'Bump versions and changelog for release'
git push
$EDITOR sdk/setup.py endpoint/setup.py
```

4. Run the release script `./release.sh` from the repo root. This will use
`tox` and your pypi credentials and will create a signed release tag. At the
end of this step, new packages will be published to pypi.

5. Push the release tag, e.g. `git push upstream 2.0.2`
2. Update the changelog by copying the new fragments from the Globus Compute ../docs/changelog.rst
(Presumably we want to release a new wrapper each time we update Globus Compute SDK/Endpoint)

6. Update the version numbers to the next point version and re-add the `a0` suffix,
if necessary, then commit and push, e.g.
3. Add and commit the changes to version numbers and changelog files e.g. as follows

```bash
$EDITOR sdk/funcx/version.py endpoint/funcx_endpoint/version.py
git add sdk/funcx/version.py endpoint/funcx_endpoint/version.py
git commit -m 'Bump versions for release'
git add sdk/setup.py endpoint/setup.py changelog.rst
git commit -m 'Bump versions and changelog for releasing funcx and funcx-endpoint wrappers'
git push
```

4. Run the release script `./release_funcx.sh` from the wrapper root repo/compute_funcx. This will use
`tox` and your pypi credentials and will create a signed release tag. At the end of this step,
new wrapper funcx and funcx-endpoint packages will be published to pypi.

5. Push the release tag, e.g. `git push upstream 2.0.2`
2 changes: 1 addition & 1 deletion compute_funcx/endpoint/funcx_endpoint/version.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# single source of truth for package version,
# see https://packaging.python.org/en/latest/single_source_version/
__version__ = "2.0.1a1"
__version__ = "2.0.1"

VERSION = __version__

Expand Down
6 changes: 5 additions & 1 deletion compute_funcx/endpoint/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from setuptools import find_packages, setup

REQUIRES = [
"globus-compute-endpoint>=2.0.0",
"globus-compute-endpoint>=2.0.1",
]

version_ns = {}
Expand Down Expand Up @@ -51,4 +51,8 @@
author_email="[email protected]",
license="Apache License, Version 2.0",
url="https://github.com/funcx-faas/funcx",
project_urls={
"Changelog": "https://globus-compute.readthedocs.io/en/latest/changelog_funcx.html", # noqa: E501
"Upgrade to Globus Compute": "https://globus-compute.readthedocs.io/en/latest/funcx_upgrade.html", # noqa: E501
},
)
1 change: 0 additions & 1 deletion compute_funcx/endpoint/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ skip_install = true
deps = build
twine
# clean the build dir before rebuilding
whitelist_externals = rm
allowlist_externals = rm
commands_pre = rm -rf dist/
commands = python -m build
Expand Down
16 changes: 12 additions & 4 deletions compute_funcx/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,25 @@ if [[ "$VERSION" != "$ENDPOINT_VERSION" ]]; then
exit 1
fi

if ! grep '^funcx \& funcx\-endpoint v'"$VERSION"'$' docs/changelog.rst; then
echo "package version v$VERSION not noted in docs/changelog.rst"
if ! grep '^funcx \& funcx\-endpoint v'"$VERSION"'$' ../docs/changelog_funcx.rst; then
echo "package version v$VERSION not noted in changelog_funcx.rst"
exit 1
fi

echo "releasing v$VERSION"
git tag -s "$VERSION" -m "v$VERSION"
if git tag -s -m "v$VERSION" "$VERSION" ; then
echo "Git tagged $VERSION"
else
read -p "Tag $VERSION already exists. Release packages with this tag anyway? [y/n] " -n 1 -r
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
[[ $0 = $BASH_SOURCE ]] && exit 1 || return 1 # handle exits from shell or function but don't exit interactive shell
fi
fi

pushd sdk
tox -e publish-release
popd

cd endpoint
pushd endpoint
tox -e publish-release
popd
2 changes: 1 addition & 1 deletion compute_funcx/sdk/funcx/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# single source of truth for package version,
# see https://packaging.python.org/en/latest/single_source_version/
__version__ = "2.0.1a1"
__version__ = "2.0.1"

DEPRECATION_FUNCX = """
The funcX SDK has been renamed to Globus Compute SDK and the new package is
Expand Down
6 changes: 5 additions & 1 deletion compute_funcx/sdk/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from setuptools import find_packages, setup

REQUIRES = [
"globus-compute-sdk>=2.0.0",
"globus-compute-sdk>=2.0.1",
]


Expand Down Expand Up @@ -52,4 +52,8 @@ def parse_version():
author_email="[email protected]",
license="Apache License, Version 2.0",
url="https://github.com/funcx-faas/funcx",
project_urls={
"Changelog": "https://globus-compute.readthedocs.io/en/latest/changelog_funcx.html", # noqa: E501
"Upgrade to Globus Compute": "https://globus-compute.readthedocs.io/en/latest/funcx_upgrade.html", # noqa: E501
},
)
1 change: 0 additions & 1 deletion compute_funcx/sdk/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ skip_install = true
deps = build
twine
# clean the build dir before rebuilding
whitelist_externals = rm
allowlist_externals = rm
commands_pre = rm -rf dist/
commands = python -m build
Expand Down
2 changes: 1 addition & 1 deletion compute_sdk/globus_compute_sdk/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# single source of truth for package version,
# see https://packaging.python.org/en/latest/single_source_version/
__version__ = "2.0.1a1"
__version__ = "2.0.1"


def compare_versions(
Expand Down
4 changes: 4 additions & 0 deletions compute_sdk/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,8 @@ def parse_version():
author_email="[email protected]",
license="Apache License, Version 2.0",
url="https://github.com/funcx-faas/funcx",
project_urls={
"Changelog": "https://globus-compute.readthedocs.io/en/latest/changelog.html", # noqa: E501
"Upgrade to Globus Compute": "https://globus-compute.readthedocs.io/en/latest/funcx_upgrade.html", # noqa: E501
},
)
1 change: 0 additions & 1 deletion compute_sdk/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ skip_install = true
deps = build
twine
# clean the build dir before rebuilding
whitelist_externals = rm
allowlist_externals = rm
commands_pre = rm -rf dist/
commands = python -m build
Expand Down
44 changes: 38 additions & 6 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,49 @@ Changelog

.. scriv-insert-here
.. _changelog-2.0.1a1:
.. _changelog-2.0.1:

globus-compute-sdk & globus-compute-endpoint v2.0.1a1
-----------------------------------------------------
globus-compute-sdk & globus-compute-endpoint v2.0.1
---------------------------------------------------

New Functionality
^^^^^^^^^^^^^^^^^

- Add a ``--display-name`` option to endpoint configure to use as a human
readable name for the endpoint. If not specified, the ``display_name``
defaults to the endpoint name.
- Support for timing out tasks that exceed a walltime limit on the globus-compute-endpoint.
Use global variable ``GC_TASK_TIMEOUT`` which accepts a float to set the limit.
- Add a ``--display-name`` option to endpoint configure to use as a human
readable name for the endpoint. If not specified, the ``display_name``
defaults to the endpoint name.

Bug Fixes
^^^^^^^^^

- Required fields were missing from the final endpoint status update that
is sent when an endpoint is gracefully shutting down, causing issues when
getting the status of an endpoint.

.. _changelog-2.0.0:

globus-compute-sdk & globus-compute-endpoint v2.0.0
---------------------------------------------------

New Functionality
^^^^^^^^^^^^^^^^^

- funcx and funcx-endpoint have been rebranded as globus-compute-sdk and globus-compute-endpoint.

- For the SDK, ``funcx.FuncXClient`` and ``funcx.FuncXExecutor`` have been renamed to ``globus_compute_sdk.Client``
and ``globus_compute_sdk.Executor``

- The endpoint agent command is now ``globus-compute-endpoint`` instead of ``funcx-endpoint``.
- The above should be sufficient for many users. If other classes from the old packages were
in use, please see https://globus-compute.readthedocs.io/en/latest/funcx_upgrade.html for more
detailed change information and for additional upgrade requirements, if any.

Deprecated
^^^^^^^^^^

- The funcx and funcx-endpoint packages have been deprecated.

.. _changelog-1.0.13:

Expand Down
Loading

0 comments on commit e4d9f48

Please sign in to comment.