Skip to content

Latest commit

 

History

History
111 lines (68 loc) · 3.99 KB

CONTRIBUTING.md

File metadata and controls

111 lines (68 loc) · 3.99 KB

Contributing to Voyager

Thanks for reading this guide! Voyager is an open source project, and community contributions have shaped Voyager everywhere from its icon to custom swipe gestures.

Found a bug?

First, check if your issue has already been reported by searching and checking recently reported issues. If it doesn't exist, create a new bug report on Github.

If you want to fix a bug, find the issue and make sure its not already assigned. Make sure to communicate your intentions on the issue.

Once you create a PR, make sure to link the original issue report, if it exists. For small fixes, it's OK to not link an issue.

New feature?

New feature requests are welcome! First, check if your issue has already been requested by searching. If it doesn't exist, please create one.

To increase the chance that your feature request will be accepted and worked on timely:

  1. Follow the issue template;
  2. Make sure that it is well scoped and actionable;
  3. Add user stories ("As a user...") to make it clear the benefit of the feature request

Ready to contribute code? Thank you! 💙 But before opening the code editor, please check if the issue is already assigned. An issue may already be assigned to another community member, or to myself (Alex). I often assign issues to myself because:

  1. More investigation is needed;
  2. I want Voyager to have a specific opinionated UX;
  3. The issue is complex; or
  4. Dependencies and/or conflicts with other work

If the issue is unassigned, please confirm that it is OK to work on in the issue by tagging @aeharding. The best way to ensure your new feature will be merged is to stay in communication.

Development setup

PWA/typical development

Most Voyager development is done in your preferred web browser like a normal webapp.

To get started, clone the repository and run on the root folder:

corepack enable
pnpm install
pnpm run dev

Warning: you will need corepack enabled.

iOS Native App

If the feature you're working on is native-only, you can compile and run Voyager in an iOS Simulator or real device.

To build the iOS native app, install:

  1. Node
  2. Xcode
  3. Cocoapods

Then, in Voyager's source code directory, build the project:

corepack enable
pnpm install
pnpm exec ionic capacitor build ios

Xcode should automatically open. You can then run the project with CMD+R.

Android Native App

To build the Android native app, install:

  1. Node
  2. Android Studio

Then, in Voyager's source code directory, build the project:

corepack enable
pnpm install
pnpm exec ionic capacitor build android

Android Studio should open.

You may need to sync. File -> Sync Project with Gradle Files

Finally, can run the project with Ctrl+R.

Testing

Voyager uses Vitest. You can run the test suite with:

pnpm test

🚀 Releasing

To release a new version:

BUILD=123; npx release-it

Make sure the build number is incremental. This is used for F-droid.

Voyager uses Ionic App Flow for Apple App Store and Android Play Store builds. Those builds are initiated and monitored by Github Actions, where logs may be inspected.

Voyager's Android and iOS builds are reproducible! In fact, F-droid independently builds Voyager and verifies the same compiled APK is provided in Github Releases.

Note: F-droid and Github Releases binaries are built with BUILD_FOSS_ONLY=true. This removes all nonfree dependencies, currently just Google Play in-app purchases.