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

Prepararion for version 1.0 (testing, distribution) #400

Merged
merged 28 commits into from
Jan 19, 2024

Conversation

janblom
Copy link
Collaborator

@janblom janblom commented Jan 9, 2024

This PR is a preparation for the upcoming 1.0 release (which targets a refactoring of the database/JDBC targeting code, and adding Snowflake support). This PR mainly deals with the test infrastructure, and the (mostly small) changes to support automated testing.

Also added:

  • using Java 17 for development, but maintaining Java 8 as supporting for running the tools; this includes verification that the Java 8 support works as intended. The reason for Java 17 in development is being able to use recent versions of some testing tools;
  • open source license verification (maven);
  • automated tests, both unit tests (run mvn package) and integration tests (run with mvn verify), these are essential for being able to refactor the database code;
  • test setup for the GUI, using assertj-swing to implement the tests, and cacio-tta to virtualize the screen/monitor/keyboard so that the tests can run headless.

jan-at-the-hyve and others added 25 commits July 10, 2023 17:41
Project now requires Java 17 to build. Should still produce java 8 (1.8) compatible artifacts though.
Bumps org.apache.avro:avro from 1.11.2 to 1.11.3.

---
updated-dependencies:
- dependency-name: org.apache.avro:avro
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
…apache.avro-avro-1.11.3

Bump org.apache.avro:avro from 1.11.2 to 1.11.3 in /rabbit-core
Without this change, the table panel height is always higher than
needed (when using stem table), because the stem table is counted
as one of the items in the components list. It is however shown
separately at the top, which is already accounted for by the
stem table margin.
@janblom janblom requested a review from MaximMoinat January 9, 2024 08:36
janblom and others added 3 commits January 10, 2024 11:41
* Refactor RichConnection into separate classes, and add an abstraction for the JDBC connection. Implement a Snowflake connection with this abstraction

* Add unit tests for SnowflakeConnector

* Added Snowflake support for SourceDataScan; added minimal test for it; some refactorings to move database responsibility to rabbit-core/databases

* Move more database details to rabbit-core/databases

* Clearer name for method

* Ignore snowflake.env

* Create PostgreSQL container in the TestContainers way

* Refactored Snowflake tests + a bit of documentation

* Fix Snowflake test for Java 17, and make it into an automated integration test instead of a unit test

* Remove duplicate postgresql test

* Make TestContainers based database tests into automated integration tests

* Suppress some warnings when generating fat jars

* Let autimatic integration tests fail when docker is not available

* Allow explicit skipping of Snowflake integration tests

* Added tests for Snowflake, delimited text files

* Switch to fully verifying the scan results against a reference version (v0.10.7)

* Working integration test for Snowflake, and some refactorings

* Some proper logging, small code improvements and cleanup

* Remove unused interface

* Added tests, some changes to support testing

* Make automated test work reliably (way too many changes, sorry)

* Rudimentary support for Snowflake authenticator parameter (untested)

* review xmlbeans dependencies, remove conflict

* extend integration test for distribution

* Restructuring database configuration. Work in process, but unit and integration tests all OK

* Restructuring database configuration 2/x. Still work in process, but unit and integration tests all OK

* Restructuring database configuration 3/x. Still work in process, but unit and integration tests all OK

* Restructuring database configuration 4/x. Still work in process, but unit and integration tests all OK

* Restructuring database configuration 5/x. Still work in process, but unit and integration tests all OK

* Restructuring database configuration 6/x. Still work in process, but unit and integration tests all OK

* Restructuring database configuration 7/x. Still work in process, but unit and integration tests all OK

* Intermezzo: get rid of the package naming error (upper case R in whiteRabbit)

* Intermezzo: code cleanup

* Snowflake is now working from the GUI. And many small refactorings, like logging instead of printing to stout/err

* Refactor DbType into an enum, get rid of DBChoice

* Move DbType and DbSettings classes into configuration subpackage

* Avoid using a manually destructured DbSettings object when creating a RochConnection object

* Code cleanup, remove unneeded Snowflake references

* Refactoring, code cleanup

* More refactoring, code cleanup

* More refactoring, code cleanup and documentation

* Make sure that order of databases in pick list in GUI is the same as before, and enforce completeness of that list in a test

* Add/update copyright headers

* Add line to verify that a tooltip is shown for a DBConnectionInterface implementing class

* Test distribution for Snowflake JDBC issue with Java 17

* cleanup of build files

* Add verification that all JDBC drivers are in the distributed package

* Add/improve error reporting for Snowflake

* Disable screenshottaker in GuiTestExtension, hoping that that is what blocks the build on github. Fingers crossed

* Better(?) naming for database interface and implementing class

* Use our own GUITestExtension class

---------

Co-authored-by: Jan Blom <[email protected]>
Fix image crop when using stem table
Copy link
Collaborator

@MaximMoinat MaximMoinat left a comment

Choose a reason for hiding this comment

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

Checked the main functionalities of WR and RiaH, and have found no issues. Note that I only tested WR on postgres, csv and sas7bdat files.

For compiling the package, I did need to change the maven compiler target version to 8 instead of 1.8 ando disable the WR unit tests due to
java.lang.UnsupportedOperationException (and java.awt.HeadlessException in org.ohdsi.whiterabbit.scan.TestSourceDataScanCsvGui). This could be environment issue on my side.

@janblom janblom merged commit 654ed24 into OHDSI:master Jan 19, 2024
1 check passed
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