Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.4.3 #6067

Merged
merged 12 commits into from
Apr 25, 2023
Merged

Release v2.4.3 #6067

merged 12 commits into from
Apr 25, 2023

Conversation

azhavoro
Copy link
Contributor

Changed

azhavoro and others added 11 commits April 14, 2023 18:58
Extracted from #5083 

- Fixed test data placement in tests
- Fixed cache cleaning in tests
- Refactored server API tests and dataset_manifest
- Added more tests
This speeds up the build when the entire step can't be cached (e.g. the
requirements file changed), but the package list remains mostly the
same.

The savings are... rather underwhelming, actually. I have observed about
a minute in savings, although it obviously depends on the network
connection speed. I think this is because pip is inefficient at loading
from its own cache (I have observed it loading the entire cached file
into memory, for example).

Still, savings are savings, and we're getting them basically for free,
so why not.

Note that I only persist the HTTP cache, and not the wheel cache. That's
because any wheels that pip builds could depend on the system packages,
and I don't want old wheels to be reused if the system packages change.

Also, disable the pip autoupdate checks, which isn't much of an
optimization, but it gets rid of some pointless warnings.
This originally started as a security update for redis-py (see
<https://github.com/redis/redis-py/releases/tag/v4.5.3>,
<https://github.com/redis/redis-py/releases/tag/v4.5.4>). However, I
also had to update other Redis-related components because of
incompatibilities.

* The old version of fakeredis is not compatible with the redis-py 4.x,
so I bumped it too. This also allowed me to remove the six workaround.

* redis-py 4.1.0 and newer don't support Redis < 5, so I bumped Redis
itself in `docker-compose.yml`. Note that the Helm chart is already
using Redis 7.0.x.

Obsoletes #5946.
The policy that mandated this is no longer relevant now that CVAT is no
longer developed by Intel. Moreover, the source code included was not
even complete (it didn't contain Python or NPM packages).

This saves ~1.6 GB in the unpacked image (and probably a bunch of build
time too, but I didn't measure it).
This improves the reproducibility of the server build process. Now new
versions of dependencies can no longer break the server unless we
explicitly upgrade to them.

To minimize changes, I did not update any of the version constraints we
currently have; however, in the future, we should be able to relax a lot
of them.

Resolves #5310.
This way, it can be done in parallel with pip fetching all other
packages in the main build stage. In practice, I find that the build of
PyAV finishes before pip is done downloading, so we basically get it
done for free (in terms of time).

With this change, I measured a build time of 9:09 (starting from
scratch).
@azhavoro azhavoro requested review from nmanovic and removed request for SpecLad, mdacoca, bsekachev, sizov-kirill and Marishka17 April 25, 2023 08:14
@nmanovic nmanovic merged commit 8a2c23f into master Apr 25, 2023
@azhavoro azhavoro deleted the release-2.4.3 branch July 5, 2024 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants