Development
If you would like to contribute to the development of dendron, you can do so by checkout out the repo from github.
You can then follow the setup instructions below to prepare your first commit!
Getting Started
1. Requirements
Before you begin, you need to make sure to have the following SDKs and tools:
- Node.js >= 12.0.0
- We recommend using a version in Active LTS
2. Clone and npm install
git clone https://github.com/dendronhq/dendron.git
cd dendron
npm install
3. Build Repo
- you should run this when building dendron for the first time and also every time you run a git pull
- new dependencies might have been picked up between pulls and this makes sure that they are installed
npm run bootstrap:bootstrap
npm run-script bootstrap:build
npm run-script bootstrap:build:plugin-core:sync-vault
- we recommend you use
vscode
to develop for dendron. there is adendron.code-workspace
file in the root of the monorepo that you should use when developing
4. Start Debugging (the plugin)
- NOTE: you don't need to do this if you are not directly working on the extension (eg. you're working on the server)
To start an instance of the Dendron with the Debugger, Run Extension (plugin-core)
from the debug panel in vscode
Note: Running via Run -> Start Debugging will not work unless you've previously targeted Extension (plugin-core)
Tips
Watch Monorepo
To continuously compile all dependencies, run the following
./bootstrap/scripts/watch.sh
Troubleshooting
Something went wrong during the build
In case something something goes wrong with a build step or you want to save time by not running everything, init.sh
is just a thin wrapper around the following scripts, each of which can be run individually
- ./bootstrap/scripts/bootstrap.sh:
lerna bootstrap all packages
- ./bootstrap/scripts/build.sh:
lerna build all packages
Changes not showing up in Dendron
-
Are you using the
Run extension
command on the debugger panel to test dendron? -
If you have one vscode instance which you have dendron installed and are also doing dendron development on, you might get a version conflict. in that case, use
Run extension with plugin disabled
in the debugger panel (or use a different version of vscode to run dendron vs develop)
Testing
- see Testing
Debugging
- see Debugging
Style
- see Style