To GitLab from GitHub
As a free/open source software (FOSS) project, YottaDB doesn’t just provide source code tarballs with each release – we make public the commit history of our source code. We have just moved our repositories to GitLab from GitHub.
If you currently access our software on GitHub, you can continue do so in future. However, please create Issues against our projects on GitLab, and if you have forked our code, please send us merge requests on GitLab rather than pull requests on GitHub. Note that we have also changed the names of the projects on GitHub. While the former names continue to work to access the new repositories, we suggest updating your scripts at your convenience to access repositories using the new names.
While a change to GitHub ownership was the catalyst, the move to GitLab was already contemplated, as GitLab provides us with more functionality than GitHub, especially subgroups.
Subgroups
GitLab subgroups allow us to better organize our projects than the flat organization of GitHub, especially for when we grow to 5× or 10× the number of projects we have today (we may be small, but we dream big!). Thus, on GitLab, we currently have the following subgroups, each containing one or more projects.
- DB – for the core NoSQL database engine.
- YDB – the actual YottaDB database engine with native C and M APIs, the core technology at the heart of all our work.
- YDBDoc – user documentation; the source code for the documentation we publish on our documentation site.
- YDBTest – the automated test system for the YottaDB database engine.
- Demo – demonstrations of YottaDB.
- YDBMindWave – acquire and display EEG data using the Neurosky MindWave Mobile.1
- Lang – Language specific wrappers that make YottaDB natively available to application code. Each language wrapper has its own project. YottaDB wrappers allow applications written in multiple languages to natively share the same local and global variables.
- Octo – While YottaDB (YDB) is the NoSQL database engine that provides rock solid, lightning fast, and secure persistence at the core of all our software, it is primarily a data store with an API. The Octo subgroup provides schema-based database management and access.
- YDBDBMS – A project for SQL/JDBC and other database management capabilities. This project is currently under development.
- YDBPIP – A copy of the robust and proven PIP transaction processing application development and deployment platform released by the original developer and then abandoned in an expert-friendly state. YDBPIP provides both inspiration and source code for YDBDBMS.
- UI – graphical user interfaces and tools for building graphical user interfaces for YottaDB.
- YDBGDEGUI – a browser-based graphical user interface for GDE, the YottaDB Global Directory Editor used for mapping a logical database over a set of database files. This project is currently under development.
- Util – Programs that are generally useful.
- YDBgvstat – an application to capture and log database operational statistics, for monitoring, performance tuning, troubleshooting, and much more. It provides data in comma-separated (CSV) files to facilitate analysis in spreadsheets.
Notice that we have renamed all our projects using a scheme that starts with “YDB”. Anyone who forks our projects, along with other projects, will be able to easily distinguish YottaDB projects from others. If you see or hear us refer to a project as, say, gvstat, the actual project name is YDBgvstat.
Other
Apart from subgroups, GitLab provides other benefits as well, including:
- The ability to run GitLab on our own servers. While we don’t envision a need for it in the foreseeable future, we may wish to do so for operational, performance, and backup purposes. As a free / open source software (FOSS) project, using FOSS tools and infrastructure is more compatible with our ethos than proprietary tools.
- Finer grain control of users and roles. While we may not take advantage of this today, we will need it as we grow. Potentially simpler continuous integration / continuous delivery (CI/CD) – although the core YottaDB engine has its own extensive test system and framework that takes multiple servers and runs in several hours of elapsed time, smaller projects lend themselves to CI/CD. GitLab’s built-in CI/CD is potentially simpler to set up and use.
Conclusion
While a change such as this is potentially disruptive, we would prefer to make the change at this time when the number of projects is fewer than it will be in the future. We have done our best to make the change as much of a non-event as possible for you, our users. Please do let us know how it works for you.
[1] The YDBMindWave demo uses the original Neurosky MindWave Mobile. It has since then been replaced by the MindWave Mobile 2. We have not tested the demo on the latter. ↩
Published on August 22, 2018