Development and usage workflow

Below a description of the planned development and usage process. Comments and progress are reported on issue #42

dev-build-process

Build release

Open License Manager developers build a new release merging code to the master branch. Implementing GitFlow this should happen only when a new release is ready to be deployed. Travis CI builds the release for the supported environments and deploys it to GitHub release system.

Binary release contents

Binary release contains:

  • license generator executable (lccgen).

  • source code of the unconfigured library.

  • source code of (part of) the tests.

Test (1)

Contextually to the previous step Travis CI carries out all the tests. A special attention is about how carry out functional tests. In this phase the library is configured, compiled (only for the tests sake), linked with a mock executable and tested together with the license generator.

Initialize library

In this phase the signing keys are generated by license generator executable (lccgen), and optionally the source code of the library may be modified or obfuscated.

Test (2)

Integrate into the product

The source code of the library can and should be manually altered to prevent hackers to find a single cracking mechanism for all the products that integrate the library.

deliver the product to the client

Compiled product is delivered to the client.

  • If we want to link the execution to a specific hardware we need to send the product to the client without a license (or a demo executable, with the sole intent to generate the machine identifier).

  • If we just want to send a demo product with an expiry date we prepare a license without the machine identifier.

Build process

From the process described above, (strange to say) the license generator (lcc) configures itself as a build dependency of the licensing library, thus it needs to be built first.