Skip to content

Latest commit

 

History

History
159 lines (109 loc) · 4.75 KB

CONTRIBUTING.md

File metadata and controls

159 lines (109 loc) · 4.75 KB

You Are Typing Contributing Guidelines

You Are Typing header

Table of Contents

Introduction

I don't really expect anybody to contribute to this project. However, I wrote this guide for two reasons:

  1. You found this program useful and wanted to find a way to improve upon it
  2. I go another year without working on this program and want to improve upon it myself

So, here we go!

License

This work is under the GNU General Public License v3.0.

Non-code contributions

Design

I don't put too much time thinking about the design of the program. I just made a simple iMessage-like experience, though clearly it doesn't look that way. You could try to come up with designs and I could see if it's possible to implement or not. Open an issue and see what happens!

Reporting bugs

You can open an issue to report bugs. I'll try to fix them as soon as I can, though I don't promise anything. Here's a good example of a code report: ojosproject/website#24

This repository comes with templates to help you properly structure your bug report.

Can I suggest a feature?

You can, but I might not implement it myself. I'm a college student already struggling to keep up with everything, so it'll be difficult to find time to implement a suggested feature.

However, I recommend you open an issue and hopefully somebody will decide to code that feature and open a Pull Request. I'm more than open to merging Pull Requests for suggested features!

Code Contributions

Branching Rules

If you plan to contribute code, please create a fork of this project and open a PR targeted towards the main branch.

Icons

All icons in this project are provided by Ionic.

Setting up your environment

The following tools are used for this program:

Please follow this guide by Tauri to get started.

Once you've installed the prerequisites, clone the repository:

git clone https://github.com/calejvaldez/YouAreTyping.git
cd YouAreTyping

Development

Before you can start coding, you need to:

npm i # install npm dependencies
cargo install tauri-cli # install the Tauri CLI

cargo tauri dev # run the dev environment

Compiling

Before finalizing your PR, please compile the program and make sure the build works.

cargo tauri build

Your build will be available in /src-tauri/target/release/bundle/

Testing

You must test on every OS that YAT exists on. I don't expect you to test on every architecture, though.

As of September 2024, releases are made for macOS and Windows.

Important

If you're submitting a PR and don't have access to both operating systems, please find a friend to test with and vouch for you.

It's safe to assume that any previous changes work on all operating systems. However, it is not safe to assume that your changes work on every system.

Test only your changes, unless you're attempting to find bugs, which is cool too.

Come up with specific scenarios that relate to your feature / bug fix. For example, with commit b41e4c80e497d6f6957b2d4306e3ec4440f60c12, here is a scenario I used to test my features:

  • A user has an old YouAreTyping data folder with YouAreTyping.db full of messages. Ensure that all of those messages are properly imported to com.calejvaldez.YouAreTyping/YouAreTyping.db

You should test each scenario on every OS that YAT releases on.

Structure

Frontend v. Backend

The frontend code is inside of the src folder. The backend code is in /src-tauri/src/.