Technical update: keep the ball rolling
As you may have noticed in our previous blog post, we did not cover every technical detail of what is going on around RethinkDB. Also mentioned earlier in a GitHub issue, communication was not our strength with regard to the future of the project, and we promised this would change. In keeping our word, here is a summary of what’s been going on the last few months and what’s in store.
Database related changes
Before we discuss the changes we made and what’s next, we need to clarify what our goals are and the current difficulties we face.
Right now, the rethinkdb repository contains all the previously supported official drivers. On the one hand, it was good to keep the drivers and database in the same place, because it allowed us to:
- reduce duplicate code
- run integration tests even for older commits
- release the drivers together with the database
Our plan, until v2.4 is released, is to keep drivers in the same repository as before and port the changes back. Once the new version is released, we plan to finish the extraction and answer those questions like “how to test specific database release with a specific driver version”.
Since we lost the ability to build RethinkDB with Thanos, we had to find a solution to be able to do continuous builds and releases. For this purpose, Sam Hughes created a solution to build packages for main Linux distributions, namely: Debian, Ubuntu, and CentOS. More build targets will come in the future along with the Docker image, which is discussed here. It’s worth it to mention that we have built a DigitalOcean Marketplace image as well, which will be integrated into the pipeline discussed above. With the solution Sam created, everyone can compile his RethinkDB package for a specific commit or tag by parameterizing its setup script.
As you may have noticed, the Windows release was not mentioned in the list above. The reason for this is that we have no capacity at the moment to build for Windows, though we are not saying that we will not accept contributions to support that release in the future.
We made a lot of changes in the background, which may or may not be transparent on a daily basis.
During the years, people came and went and resulted in most of our credentials and access to third-party services being lost. Together with Christina Keelan Cottrell, we were able to recover these credentials with success. As a result, we can:
- deploy our website again
- manage Slack again
- access Pypi to upload Python client releases
- use JFrog’s BinTray to rerelease new Java drivers in the future
- access DNSimple to change our domain settings
And a lot more. All of this allowed us to move the download and update servers to DigitalOcean, of which the certificate was expired.
There are still some credentials we have yet to recover, but we are continuously working to get the credentials back and create a secret store for them to prevent similar situations.
Website and documentation
Also, we set up static code analysis for some of the repositories (this will be continued), released new client versions, and fixed the enormous amount of bugs.
Most of you asked us about the current status of the project. From a technical point of view, the project is still maintained, though we need maintainers and volunteers who help the community through the journey of this formation. We will also announce a formal fundraiser in the near future and are actively looking for corporate sponsors.