Skip to content

Latest commit

 

History

History
109 lines (70 loc) · 5.3 KB

CONTRIBUTING.md

File metadata and controls

109 lines (70 loc) · 5.3 KB

Contribution guide

Everyone is more than welcome to contribute to this project! That's what open source is all about!

In the following, we try to provide some help and guidance on how to participate, contribute and develop on the project.

Table of content:

1. Raising an issue or feature request

The simplest way to contribute to the project is to use it!

Whenever you encounter any issues or missing features while using the project, please create a GitHub Issue in this project and describe what you found or what you need. To help you with this, we provide several templates to help and guide you through the issue creation.

2. Project Setup & Development

If you are interested in getting your hands dirty, the following subsections provide information and instructions for the setup of your local development environment.

2.1 Recommended IDE Setup

VSCode + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).

2.1.1 Type Support for .vue Imports in TypeScript

TypeScript cannot handle type information for .vue imports by default, so we replaced the tsc CLI with vue-tsc for type checking. In editors, e.g. for VSCode we need TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue types.

2.2 Daily-used commands

2.2.1 Installing all dependencies

npm install

2.2.2 Compile and Hot-Reload for Development

Please be aware that some browser allow access to the cameras only if the website uses https. Therefor we are using mkcert. See this chapter for more details.

npm run dev

Or if you want to access the application from you mobile device while developing:

npm run dev-network

2.2.3 Lint with ESLint

# Shows errors
npm run lint

# Fixes errors
npm run lint:fix

2.2.4 Type-Check, Compile and Minify for Production

npm run build

2.3 Usage of mkcert

As some browsers only allow camera access on websites that were transferred via HTTPS we need for development purposes also HTTPS. To make it simple for the developer, we are using mkcert which was made to use one local Certificate Authority (CA) for all local development projects.

As we are using vite for hosting our local development server, we are also using the vite-plugin-mkcert to configure and set up mkcert.

As the project is mostly focusing on mobile applications, we would also need to allow/accept the local self-signed certificates on our mobile devices. The vite-plugin we are using provides a good guide on how to do this: https://github.com/liuweiGL/vite-plugin-mkcert#mobile-devices

2.4 Sandbox environment

A sandbox environment has been set up for development purposes. You can find it in the /sandbox folder and in the index.html.

2.5 Git workflow

The development is orientated on GitHub flow. Therefore every source code contribution needs to be provided through a GitHub Pull-Request against the main branch.

2.5.1 Releases & Versioning

Releases will be made by tagging a specific commit on the main branch. For the versioning we are using the Semantic Versioning Schema:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backwards compatible manner
  3. PATCH version when you make backwards compatible bug fixes

2.5.2 Patching of older release

Sometimes it's happening that security issues appear in older releases. Regarding the fact that the community behind this project is not very large, we are not able to provide patches for each release we have ever published. Therefore, we will only maintain the latest minor version with security patches and bug fixes!