2.7 KiB
Contributing
Where should I start?
Checkout This Kanban Board to see the rough development roadmap.
Note 1: Notify the developers on Suwayomi discord (#programming channel) or open a WIP pull request before starting if you decide to take on working on anything from/not from the roadmap in order to avoid parallel efforts on the same issue/feature.
Note 2: Store all changes with each direct commit/PR in CHANGELOG.md.
How does Tachidesk-Server work?
This project has two components:
- Server: contains the implementation of tachiyomi's extensions library and uses an Android compatibility library to run jar libraries converted from apk extensions. All this concludes to serving a REST API.
- WebUI: A React SPA(
create-react-app) project that works with the server to do the presentation located at https://github.com/Suwayomi/Tachidesk-WebUI
Why a web app?
This structure is chosen to
- Achieve the maximum multi-platform-ness
- Gives the ability to access Tachidesk-Server from a remote client e.g., your phone, tablet or smart TV
- Ease development of user interfaces for Tachidesk
Building from source
Prerequisites
You need these software packages installed in order to build the project
- Java Development Kit and Java Runtime Environment version 8 or newer(both Oracle JDK and OpenJDK works)
- Android stubs jar
- Manual download: Download android.jar and put it under
AndroidCompat/lib. - Automated download: Run
AndroidCompat/getAndroid.sh(macOS/Linux) orAndroidCompat/getAndroid.ps1(Windows) from project's root directory to download and rebuild the jar file from Google's repository.
- Manual download: Download android.jar and put it under
building the full-blown jar (Tachidesk-Server + Tachidesk-WebUI bundle)
Run ./gradlew server:downloadWebUI server:shadowJar, the resulting built jar file will be server/build/Tachidesk-Server-vX.Y.Z-rxxx.jar.
building without webUI bundled (server only)
Delete server/src/main/resources/WebUI.zip if exists from previous runs, then run ./gradlew server:shadowJar, the resulting built jar file will be server/build/Tachidesk-Server-vX.Y.Z-rxxx.jar.
building the Windows package
First Build the jar, then cd into the scripts directory and run ./windows-bundler.sh win32 or ./windows-bundler.sh win64 depending on the target architecture, the resulting built zip package file will be server/build/Tachidesk-Server-vX.Y.Z-rxxx-winXX.zip.
Running in development mode
run ./gradlew :server:run --stacktrace to run the server