Package Details: turtl-core-rs 0.1.2-3

Git Clone URL: https://aur.archlinux.org/turtl-core-rs.git (read-only)
Package Base: turtl-core-rs
Description: Turtl's logic core, built in Rust
Upstream URL: https://github.com/turtl/core-rs
Keywords: collaboration collaborative note notebook notes notetaking rust secure turtl
Licenses: GPL3
Submitter: neoninteger
Maintainer: neoninteger
Last Packager: neoninteger
Votes: 1
Popularity: 0.154056
First Submitted: 2019-06-14 13:59
Last Updated: 2019-07-05 13:10

Pinned Comments

neoninteger commented on 2019-06-21 14:37

This is the native core module that allows the creation of clients for Turtl, an encrypted note-taking app. It is a fairly standard Rust library, but when building this package, you need to pay extra attention to the check() step.

The unit tests for core-rs can be run without any extra setup, but the integration tests require a Turtl server with the test data loaded to be running. Without the server, the integration tests will not run.

In addition to listing turtl-server as a check-time dependency, I have included a (very much over-engineered) check script that automatically:

  • sets up a PostgreSQL database cluster
  • configures a database within this cluster for the Turtl server to use
  • starts PostgreSQL and Turtl server instances
  • loads the required test data into the Turtl server instance
  • runs the core-rs unit tests
  • runs the integration tests using the running Turtl server instance
  • shuts down the SQL and Turtl servers
  • cleans up all the left-over files created as part of this process

The benefit of this is that building core-rs, running its test suite and packaging it should literally be as simple as installing the dependencies and then running makepkg. Everything should be taken care of for you.

If you do not wish to run the unit and integration tests, be sure to run makepkg with the --nocheck flag, this will prevent the check step from running, which also means the PostgreSQL and Turtl servers do not need to be installed.

Currently, most of the integration tests pass, however there are some tests (file_sync, import_export and login_sync_logout) which fail to correctly authenticate with the server, which results in the tests infinitely trying to synchronise data and failing. I am unsure why this happens, and until I figure that out, I have disabled those tests. I have also disabled the migrate test, as it requires the old Lisp-based Turtl server to be running, in order to test how the client can migrate users from the old server to the new NodeJS-based one. I may consider adding the Lisp server in the future, but for now, its easier to just skip that particular test.

Let me know if you have any trouble with this package, I'll try to help out as soon as I can. Enjoy!

Latest Comments

neoninteger commented on 2019-06-21 14:37

This is the native core module that allows the creation of clients for Turtl, an encrypted note-taking app. It is a fairly standard Rust library, but when building this package, you need to pay extra attention to the check() step.

The unit tests for core-rs can be run without any extra setup, but the integration tests require a Turtl server with the test data loaded to be running. Without the server, the integration tests will not run.

In addition to listing turtl-server as a check-time dependency, I have included a (very much over-engineered) check script that automatically:

  • sets up a PostgreSQL database cluster
  • configures a database within this cluster for the Turtl server to use
  • starts PostgreSQL and Turtl server instances
  • loads the required test data into the Turtl server instance
  • runs the core-rs unit tests
  • runs the integration tests using the running Turtl server instance
  • shuts down the SQL and Turtl servers
  • cleans up all the left-over files created as part of this process

The benefit of this is that building core-rs, running its test suite and packaging it should literally be as simple as installing the dependencies and then running makepkg. Everything should be taken care of for you.

If you do not wish to run the unit and integration tests, be sure to run makepkg with the --nocheck flag, this will prevent the check step from running, which also means the PostgreSQL and Turtl servers do not need to be installed.

Currently, most of the integration tests pass, however there are some tests (file_sync, import_export and login_sync_logout) which fail to correctly authenticate with the server, which results in the tests infinitely trying to synchronise data and failing. I am unsure why this happens, and until I figure that out, I have disabled those tests. I have also disabled the migrate test, as it requires the old Lisp-based Turtl server to be running, in order to test how the client can migrate users from the old server to the new NodeJS-based one. I may consider adding the Lisp server in the future, but for now, its easier to just skip that particular test.

Let me know if you have any trouble with this package, I'll try to help out as soon as I can. Enjoy!