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
- Make your Changes
- Test your Changes
- Share your Changes
- Create a Pull-Request on GitHub
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
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