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

Compat tests 451rc #1912

Merged
merged 5 commits into from
Oct 15, 2024
Merged

Compat tests 451rc #1912

merged 5 commits into from
Oct 15, 2024

Conversation

IvoDD
Copy link
Collaborator

@IvoDD IvoDD commented Oct 14, 2024

Backport of #1862 to 4.5.1rc

Reference Issues/PRs

What does this implement or fix?

Any other comments?

Checklist

Checklist for code changes...
  • Have you updated the relevant docstrings, documentation and copyright notice?
  • Is this contribution tested against all ArcticDB's features?
  • Do all exceptions introduced raise appropriate error messages?
  • Are API changes highlighted in the PR description?
  • Is the PR labelled as enhancement or bug so it appears in autogenerated release notes?

The new compatibility tests are in `tests/compat`.
This includes the following:
- `old_venv` fixture which allows executing some arctic commands frow
  within a custom venv.
- 2 compatibility tests. One of which showcases an issue with modifying
  library options of old environments.
- Tweak to the Build and Test workflow to run the compat tests only on
  newer python versions
Previously modifying a library option with a new version (>=v3.0.0)
would break old libraries (<v3.0.0)

This was because of the storage overrides introduced in v3.0.0.

This change moves the logic to modify a library option to C++
and it does the protobuf modification without applying a storage
override.

This makes storage overrides work well with both old libraries (as
demonstrated by now passing compatibility tests) and with new libraries
(as confirmed by test_arctic_library_management.py)
- Exposes a `read_unaltered_lib_cfg` method for the `LibraryTool`
- Uses it in compatibility modification test to verify that we only
  change the new fields
When destructing the mongo storage it was possible to destruct the api
instance before destructing the pool.

Moved the instance from the `MongoStorage` to the `MongoClient` to be
kept as a guard around the `mongocxx::pool`. `MongoStorage` didn't need
any sensitive mongocxx objects.

We also disable mongo tests for 4.5.0 as it contains the problematic
segfault.
There have been some mono issues with ubuntu-latest, so we reverted to
ubuntu-22.04 for now.

The cibw-docker-image workflow was not updated because updating it
causes the rebuilt of the manylinux docker image which fails because of
CentOS 7 being EOL.
@IvoDD IvoDD merged commit 77c506d into 4.5.1rc Oct 15, 2024
121 of 122 checks passed
@IvoDD IvoDD deleted the compat-tests-451rc branch October 15, 2024 09:06
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.

2 participants