Developer documentation

As a developer you can:

Contributing to Zoe

Zoe is open source and all kinds of contributions are welcome.

Zoe is licensed under the terms of the Apache 2.0 license.

Bugs, issues and feature requests

Zoe issue tracker

Testing beta code

The HEAD of the master branch represents the latest version of Zoe. Automatic tests are performed before code is merged into master, but human feedback is invaluable. Clone the repository and report on the mailing list or on the issue tracker.

Code changes and pull requests

When you contribute code, you affirm that the contribution is your original work and that you license the work to the project under the project’s open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project’s open source license and warrant that you have the legal authority to do so.

To contribute code and/or documentation you should follow this workflow:

  1. announce your idea on the mailing list, to prevent duplicated work
  2. fork the Zoe repository via GitHub (if you don’t already have a fork)
  3. ... develop and debug ...
  4. when you are ready propose your changes with a pull request

Zoe maintainers will review your code, give constructive feedback and eventually accept the code and merge.

Contributors can setup their own CI pipeline following the quality guidelines (Testing and quality assurance). At a bare minimum all code should be tested via the run_tests.sh script available in the root of the repository. Accepted contributions will be run through the full Zoe CI pipeline before being merged in the public repository.

Repository contents

  • docs: Sphinx documentation used to build these pages
  • scripts: scripts for deployment and testing
  • zoe_api: the front-end Zoe process that provides the REST API
  • zoe_cmd: Command-line client
  • zoe_lib: library, contains common modules needed by the api and the master processes
  • zoe_master: the back-end Zoe process schedules and talks to the containerization system
  • contrib: supervisord config files and sample ZApps