Issues are prioritized in the project roadmap. However, you are welcome to work on whatever issue you would like.
If the code you wish to contribute is related to an existing issue, please make a comment on the related issue and tag @decaf-dev.
State machines and flowcharts can be found can be found in the diagrams
folder
Start by cloning the repository
git clone https://github.com/decaf-dev/obsidian-dataloom.git
We use Bun for dependency management instead of npm. Please make sure that you have installed Bun.
curl -fsSL https://bun.sh/install | bash
Change directories to the cloned repository
cd obsidian-dataloom
Install dependencies
bun install
Build the project. This will create a dist
folder
bun run build
Create a symbolic link from the cloned repository to your Obsidan vault. Be sure to link the dist
folder
Note: I recommend making a new Obsidian vault just for development.
ln -s <repository-path>/dist <development-vault-path>/.obsidian/plugins/obsidian-dataloom
e.g
ln -s /users/decaf/desktop/obsidian-dataloom/dist /users/decaf/desktop/test-vault/.obsidian/plugins/obsidian-dataloom
Checkout the dev
branch and make a child branch off of it. The branching strategy is <feature>
-> dev
-> master
.
git checkout dev
git checkout -b <your-branch-name>
Please make sure to follow this step. Otherwise, you will need to move your commits to a child branch of dev at the time of pull request
Open your vault in Obsidian
Enable DataLoom
Run esbuild in development mode
bun run dev
Restart Obsidian to see your code changes
Please make jest tests for the code that you create. Please note that some Obsidian functionality is very hard to test due to the library being an external dependency and closed source. If tests cannot be written, your code can be still be accepted. If you need help with writing tests, please DM @decaf_dev on discord.
Once you have made your changes, make a pull request. Please choose the dev
branch as the branch that you would like to merge into.
The pull request will be reviewed. Once it is approved, it will be merged into dev
.