Contributing to Jovo

Thank you for choosing to fix bugs or add new features to the Jovo Framework! This doc will walk you through the process.

Prepare your Workspace

You'll need to make your changes in your own fork of the jovo-framework repo. If you're not familiar with forking in GitHub, this article will help you get started: https://help.github.com/en/articles/fork-a-repo

The packages that make up Jovo are all contained in a single monorepo. Jovo uses Lerna to manage these packages.

Initialize your workspace (run this in the top level of your jovo-framework clone):

Configure your App to use your Local Copy of the Jovo Framework

If you have a Jovo app that depends on the feature or fix you are implementing, configure your Jovo app to use your local version of the jovo-framework. If that's not the case, you can skip this section and just test your change with unit tests.

Create links for the framework This will create symlinks to jovo-framework and jovo-core in your system's global npm modules.

Note that the repo is called jovo-framework, but npm link must be run in jovo-framework/jovo-framework

Now create links in your project:

If you are modifying other packages in the Jovo Framework, e.g. plugins, you should repeat this process for those packages.

Note that if you run npm install in your app, it will install the actual packages, overwriting the symlinks.

Make your Changes

Create a new branch for your fix or feature:

Add and edit files.

Test your Changes

Run all of these commands at the top level of your jovo-framework clone.

Jovo uses Jest for unit tests and tslint for static analysis.

Compile TypeScript:

Run linter:

Run tests:

Share your Changes

We're using Gitmoji for commit messages. Learn more here.

Add and commit code:

Create a Pull-Request on GitHub

See this article from GitHub: https://help.github.com/en/articles/creating-a-pull-request-from-a-fork

Comments and Questions

Any specific questions? Just drop them below or join the Jovo Community Forum.

Join Our Newsletter

Be the first to get our free tutorials, courses, and other resources for voice app developers.