Skip to content

Latest commit

 

History

History
87 lines (57 loc) · 3.58 KB

CONTRIBUTING.md

File metadata and controls

87 lines (57 loc) · 3.58 KB

Contributing Guide

Welcome, interested person! Contributions are welcome. If you're ever unsure, feel free to open an issue.

Preferably, features are developed in another branch or fork. After the feature is ready, a pull request to the master branch should be opened.

Prerequisites

Setup

  1. Fork the repository
  2. Clone your fork
  3. npm install
  4. npm run tauri dev

Note that it may take well over a minute the first time you try this out

Install youtube-dl

Install youtube-dl using the following commands on Windows or macOS

curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

Or on Linux

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

For further information, check their documentation.

Recommended Tooling

I recommend using Visual Studio Code with

As for settings, I personally am a fan of those "inlay hints".

Used Libraries

The most important ones are

Unit Testing

Unit testing the frontend is currently not being done, due to the lacking quality of the code and the relative difficulty of unit testing Typescript and GUIs. (Using Vitest is potentially the easiest approach.)

Unit tests for the Rust part should be added, especially for non-trivial functions.

Structure of code

We're using the default Tauri file structure. Essentially src-tauri contains the Rust part of the project, while src contains the frontend part of the project.

Publishing a release

Build the project using

  • npm run tauri build

When publishing a new release, don't forget to

  • Update the version in tauri.conf.json
  • Update the version in src-tauri/Cargo.toml
  • Add a src/store.ts migration
  • Create a new tag with the version number
  • Wait for the expensive GitHub action and then publish the created release
  • Update https://github.com/stefnotch/downline/tree/gh-pages