semsol / arc2

ARC RDF Classes for PHP
Other
332 stars 89 forks source link

Towards version 2.4: Plans to move on with the RDF Store implementation #106

Closed k00ni closed 6 years ago

k00ni commented 6 years ago

I am using ARC2 for my business (only the Store) and would like to keep it, instead of using Virtuoso/Stardog. It just works and costs me no license fees (or requires me to rent/maintain a server). But seeing the code un-maintained kept me thinking about writing my own implementation or improving this one. I chose the last one.

I am sure changing the Store implementation as well as keeping it stable will be a huge task. My business is built on ARC2, therefore i have some real life cases i can test against. Nevertheless, it would be very helpful to get feedback from as many people as possible about which parts of the Store are used. Is it only the query function (for SPARQL 1.0/1.1)? The dump function? Even RemoteStores? I am sure there are users out there, who still enjoy ARC2 :)

In my spare time i would like to focus on the major parts and these are Store related. Here is my rough agenda:

Breaking Backward Compatibility:

What you guys think? @semsol

k00ni commented 6 years ago

I updated the list above and created issues/notes in on of the projects (https://github.com/semsol/arc2/projects). Its a proposal how we should progress, but i would love to hear feedback.

k00ni commented 6 years ago

I extended .travis.yml, so that our tests run against the following database backends:

This extends the length of the test job to finish significantly (~22 min. total time), but a huge benefit is that we can see if there are any errors with a certain combination of PHP and a database backend.

You can checkout the latest changes in the 2.4 branch: https://github.com/semsol/arc2/tree/2.4

k00ni commented 6 years ago

Small update:

I extended the code coverage for Store related code to a point, where all mysqli calls should be covered. Soon i will start porting these mysqli calls to PDO.

k00ni commented 6 years ago

Small update:

I got some setbacks because of the tight coupling between ARC2 and mysqli. The current state is, that with some kind of proxy class i was able to decouple them far enough. There are only a few parts which need further investigation, because they depend on mysqli code and changes lead to errors in the test suite.

Build status: https://travis-ci.org/semsol/arc2/builds/389354615

k00ni commented 6 years ago

Adapter approach to use PDO and mysqli is nearly finished. Whats left is the adaption of the test environment to run (most of the) tests against all adapters.

@semsol: Can you please add this repo to coveralls.io? It would help tremendously to see code coverage. (#112)

k00ni commented 6 years ago

Ok, latest changes are in, release 2.4 seems ready and i am only waiting for the travis test suite to finish: https://travis-ci.org/semsol/arc2/builds/392194249

I had to postpone transaction support for PDO, because it requires the tables to be of type InnoDB. Currently its MyISAM, which has no transaction support. Using transactions with PDO will not result in an error (functions will work and return true), but nothing will happen to the database in case of an error. To avoid confusion, i moved it to 3.0 release.

k00ni commented 6 years ago

Pull request for the release created: #113, final discussion should happen there.