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

Update and restore engine versions and tests #846

Merged
merged 1 commit into from
Dec 31, 2024
Merged

Update and restore engine versions and tests #846

merged 1 commit into from
Dec 31, 2024

Conversation

theory
Copy link
Collaborator

@theory theory commented Dec 30, 2024

Restore the coverage tests and update the versions tested for all the database engines.

  • Test Exasol 7.0, 7.1, and 8 with its v24 clients and update the error-checking regular expression to support it.
  • Update the Exasol test to detect apparent connection failures and try again for up to 30 seconds before failing. This lets the Exasol tests run consistently. Technique borrowed from the Vertica tests (fcd7fe1).
  • Use SSLCERTIFICATE instead of SSLCertificate to be consistent with the the Exasol ODBC docs.
  • Upgrade Instant Client to v23.6.24.10 and install libaio1t64 for Oracle and create a symnlink so that Instant Client can find it.
  • Upgrade SnowSQL to 1.2.21 and Snowflake ODBC to 3.5.0.
  • Upgrade the Vertica client to v24.2.0 and test on Vertica vefsions 7.2 - 24.1.
  • Switch to a new Docker image for Firebird and use it to test versions 3-5. Continue using the old one to test v2.5.
  • Update the coverage tests to clear more disk space, improving the chances that the tests will finish.
  • Test MySQL v5.5-9.1 and MariaDB v10.0-11.6
  • Add Perl 5.40 testing
  • Add Postgres 17 testing
  • Add SQLite testing for v3.43-3.47
  • Add Vertica v23-24 testing
  • Add Yugabyte v2.20, 2.21, 2.22, 2.23, 2024.1, and 2024.2 testing
  • Teach the IPC methods in Sqitch.pm to raise App::Sqitch::X exceptions instead of strings for more consistent error handling (esp. in tests).
  • Add DBIEngine->_error_handler and always pass it to DBI->connect, replacing redundant and inconsistenlty-applied HandleError functions.
  • Change DBIEngineTest->run to always expect error objects, now that the IPC methods raise them and tests use DBIEngine->_error_handler to get connection failure exception objects.
  • Add some hijinks to t/lib/TestConfig.pm to suppress warnings from Locale::Messages on newer Perls (workaround for Unknown locale category 1729 warning with libintl-perl-1.33 on Windows gflohr/libintl-perl#14).
  • Fix a bunch of shellcheck warnings.

@theory theory requested a review from autarch December 30, 2024 20:47
@theory theory self-assigned this Dec 30, 2024
Restore the coverage tests and update the versions tested for all the
database engines.

*   Test Exasol 7.0, 7.1, and 8 with its v24 clients and update the
    error-checking regular expression to support it.
*   Update the Exasol test to detect apparent connection failures and
    try again for up to 30 seconds before failing. This lets the Exasol
    tests run consistently. Technique borrowed from the Vertica tests
    (fcd7fe1).
*   Use `SSLCERTIFICATE` instead of `SSLCertificate` to be consistent
    with the the Exasol ODBC docs.
*   Upgrade Instant Client to v23.6.24.10 and install libaio1t64 for
    Oracle and create a symnlink so that Instant Client can find it.
*   Upgrade SnowSQL to 1.2.21 and Snowflake ODBC to 3.5.0.
*   Upgrade the Vertica client to v24.2.0 and test on Vertica vefsions
    7.2 - 24.1.
*   Switch to a new Docker image for Firebird and use it to test
    versions 3-5. Continue using the old one to test v2.5.
*   Update the coverage tests to clear more disk space, improving the
    chances that the tests will finish.
*   Test MySQL v5.5-9.1 and MariaDB v10.0-11.6
*   Add Perl 5.40 testing
*   Add Postgres 17 testing
*   Add SQLite testing for v3.43-3.47
*   Add Vertica v23-24 testing
*   Add Yugabyte v2.20, 2.21, 2.22, 2.23, 2024.1, and 2024.2 testing
*   Teach the IPC methios in Sqitch.pm to raise App::Sqitch::X
    exceptions instead of strings for more consistent error handling
    (esp. in tests).
*   Add `DBIEngine->_error_handler` and always pass it to
    `DBI->connect`, replacing redundant and inconsistenlty-applied
    `HandleError` functions.
*   Change `DBIEngineTest->run` to always expect error objects, now that
    the IPC methods raise them and tests use
    ``DBIEngine->_error_handler` to get connection failure exception
    objects.
*   Add some hijinks to `t/lib/TestConfig.pm` to suppress warnings from
    Locale::Messages on newer Perls (workaround for
    gflohr/libintl-perl#14).
*   Fix a bunch of shellcheck warnings.
Copy link
Contributor

@autarch autarch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Related, you might want to add some sort of linting & tidying tooling so you don't have to fix things like shellcheck or POD errors after they're introduced. Instead, you'd have CI fail when the code in the PR is not lint-clean and tidy.

@theory
Copy link
Collaborator Author

theory commented Dec 31, 2024

Yeah, I was just doing the tidying because VSCode was yelling at me. I've been using lifting stuff in my Go and Rust projects for a while now, but haven't been motivated to do it here.

Many thanks for the review, I appreciate a second set of eyes on things.

@theory theory merged commit 91f1999 into develop Dec 31, 2024
173 checks passed
@theory theory deleted the coverage branch December 31, 2024 19:58
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