The Technical Features of SavaPage show a broad field of topics a developer needs to know about. This knowledge, together with design skills and programming skills for Java, HTML, CSS, JavaScript and C/C++ is all needed to construct the SavaPage solution. Obviously these skills are rarely present in one person. Let alone that a person possesses all of these skills at the same high level of proficiency. Fortunately a partner with knowledge of some key topics can start to be productive on well-defined modular tasks and acquire the necessary skills along the way.

To simplify development and maintenance SavaPage follows a modular design according to the separation of concerns (SoC) principle. Several module types are identified:

  • An External Module runs as a separate process and collaborates with SavaPage run-time via Inter-process communication. Examples are savapage-cups-notifier, savapage-nss, savapage-pam and savapage-nfc-reader.
  • Internal modules are part of SavaPage run-time and collaborate via shared memory. There are two types:
    • Drop-in modules are a fixed part of the application package.
    • Plug-in modules are separate packages that bind ad-hoc with SavaPage at run-time.
  • A Utility is a small specialized module that is an addition to the SavaPage project but does not collaborate with SavaPage run-time.

To lower the threshold for Development Partners to engage, a list of pre-defined tasks is available to pick from. Each task is described as a module with a well-defined interface and responsibility. The module is either new or does already exist and needs to be refactored (or debugged). Tasks vary in scope and complexity. They can encompass a single method or class, or can be a composite of sub-modules implementing a comprehensive behavioral pattern. The deliverable of a task is tested and documented source code that is pushed to the “develop” branch of a central repository.

Important: before claiming a task a partner should discuss his plans with the Community Manager.

All Development Partners are members of one team. Informal communication between members is important and highly encouraged. And above all, enjoy!

Subscription revenues are shared among Development Partners proportional to their efforts.

As Datraverse B.V. is the legal entity protecting the copyright of the project, as a binding policy, Development Partners must grant the copyright of their software contributions to Datraverse B.V. according to the Fiduciary Licence Agreement (FLA) as created by the Free Software Foundation Europe (FSFE). Beware that by this action the partner does not lose his rights, since Datraverse reciprocally grants the partner a non-exclusive worldwide, perpetual and unrestricted license to the same extent as it was transferred from the partner.

The Partner List shows the current partners.

  • roles/development_partner_profile.txt
  • Last modified: 2022/07/29 12:58
  • by rijk