SatNOGS Client refactoring and redesign

It had been a while since SatNOGS Client saw really active development. This was mostly due to the fact that the codebase is not in a very good shape, making development and contributing difficult.

We have recently decided that it is time to do something about it and started refactoring and redesigning the client! The refactoring happens on ‘master’ branch, while ‘0’ branch has been deleted in order to avoid further confusion. That effectively means that there won’t be any new ‘0.x’ release and the next release will come from ‘master’ branch (1.x). We have also decided to apply the “Release early, release often” development philosophy, both for the client and Ansible, just like we do on SatNOGS Network and DB. This means that we might as well make a new release with bugfixes or/and new features as often as once a week!

Here is a list with the focus items of our efforts:

  • Improvement on developers’ documentation.
    The developers’ documentation is not as good and complete as we would like it to be. We need to fix it since it is one of the most important tools a developer can have.
  • Extension of unit/module/functional testing.
    A good start has been made on the functional testing front with the introduction of Robot Framework. Yet, we currently have only a single test case for it. :slight_smile: Also, while refactoring, new unit and module tests will have to be implemented.
  • Introduction of a new RPC API.
    As many of you may already know, the web interface has been removed from the client in ‘master’ branch. It was tightly coupled with the client and written with the specific case of UPSat TC&C in mind. There is a plan to replace the web UI with a generic RPC API based on gRPC. Such an API would allow people to write their own user interfaces of SatNOGS Client, either web, Qt, Java, etc. or even custom software in Python, Go, C++, etc. to interface with SatNOGS Client.

The bad news is that the next release will most certainly not have a web user interface! :frowning: We cannot have neither the RPC API nor a UI ready that soon. Other than that, there will be full feature parity with ‘0.x’ series releases. If for some reason you definitely need the web user interface, you can of course choose to stay on a ‘0.x’ release by not updating SatNOGS software in Ansible ‘satnogs-setup’.



Wiki, Readme on project’s and developers’ documentation do not say the same thing.
The documentation does not allow me to help the project in the current state.