aica-technology / api

AICA API resources
0 stars 0 forks source link

feat(client): define more detailed feature and function compatibility between versions #159

Closed eeberhard closed 4 months ago

eeberhard commented 4 months ago

Description

Check feature and function version compatibility more precisely:

Supporting information

To test this out properly (since I changed some dependencies), I pushed a release candidate to the test registry at https://test.pypi.org/project/aica-api/2.1.0rc5. As part of this, I learned that doing a pip install from this registry will also try to install all dependencies from the test registry. This will fail against the version checks, since not every package and certainly not every latest version is on the test registry. In this particular case, if you want to test the prebuilt version from the test registry, you need to install or upgrade all dependencies manually first:

## first install dependencies manually from the standard pypi registry
python3 -m pip install --upgrade pyyaml deprecation semver python-socketio
## then install the release candidate from the test.pypi registry
python3 -m pip install -i https://test.pypi.org/simple/ aica-api==2.1.0rc5

Another option for testing of course is to install locally from this source repo (pip install .).

In general, I think it's preferable to make actual release candidate builds for the official registry (using the pre-release specifier -rc.X), which would be built and pushed here automatically after merging. Pre-release builds are not listed or installed by default when just using pip install aica-client, since it will always use the latest stable version in that case. If we see all behaviors and dependencies work as expected after testing, we can officially release by removing the -rc.X specifier and updating the changelog.

Review guidelines

Estimated Time of Review: 15 minutes

I checked it with a AICA base images v3.1 and v3.2, which include backend-API server versions v3.0.3 and v3.1.0 respectively. It correctly warned for the unsupported functions (wait for controller, hardware, etc).

Checklist before merging:

domire8 commented 4 months ago

When will we then release the actual version?

eeberhard commented 4 months ago

When will we then release the actual version?

I would merge this which would build and push the 2.1.0 release candidate, and then I would make a separate little release PR for 2.1.0 right after testing. Mainly I just want to make sure all dependencies work as expected and the release candidate is a nice way of testing that through pypi.