FitTrackee/CONTRIBUTING.md
2023-06-25 14:00:38 +02:00

4.3 KiB

Contributing to FitTrackee

First off, thank you for your interest in contributing!

Report issues, ask for features

  • If a bug is a security vulnerability, please refer to security policy.

  • Ensure an issue was not already opened by searching on GitHub under Issues.

  • If not, open a new one with a descriptive title and provide a description.

Contributing Code

Project repository

The GitHub repository contains:

  • source code (note that the repository also includes client build),
  • translations,
  • tests,
  • documentation (source, translations and build).

Continuous integration workflows run on Github Actions platform (on push and pull requests).

For now, releases do not follow semantic versioning. Any version may contain backward-incompatible changes.

Translations

The available languages are:
Translation status

Application translations files are located:

  • on API side (emails): fittrackee/emails/translations/ (implemented with Babel)
  • on client side: fittrackee_client/src/locales (implemented with Vue I18n)

Translations can be updated through Weblate.

Documentation translations are located in following directory: docsrc/locales. For now only English and French are available and translations files are not yet on Weblate.

How to install FitTrackee

see Installations instructions

Pull Requests

Note: Before starting, please open an issue to discuss implementation if the feature requires major changes or involves the addition of a new sport or language.

Please make your changes from the development branch (dev).

  • Fork the repository (see GitHub instructions)

  • Implement your feature.

  • If your changes need a database migration:

    • You can generate one after updating models with the following command:
      $ make migrate-db
      
    • For data migration, an empty migration can be created with this following command:
      $ make revision MIGRATION_MESSAGE="<MIGRATION_MESSAGE>"
      
    • Rename the migration, prefixing with the next number.
    • To apply database changes:
      $ make upgrade-db
      
    • Check the downgrade migration.
  • Run checks (lint, type check and unit tests).

    $ make check-all
    

    There are some end-to-end tests, to run them (needs a running application):

    $ make test-e2e
    
  • If needed, update translations (at least add English strings).

    • On client side, update files in fittrackee_client/src/locales folder.
    • On API side (emails), to extract new strings into messages.pot:
      $ make babel-extract
      
      To add new strings in translations files (fittrackee/emails/translations/<LANG>/LC_MESSAGES/messages.po):
      $ make babel-update
      
      After updating strings in messages.po, compile the translations:
      $ make babel-compile
      
  • If needed, add or update tests.

  • If needed, update documentation (no need to build documentation, it will be done when releasing).

  • If updated code contains client-side changes, you can generate javascript assets to check FitTrackee whithout starting client dev server:

    $ make build-client
    

    No need to commit these files, dist files will be generated before merging or when releasing.

  • Create your pull request to merge on dev branch.

  • Ensure the pull requests description clearly describes the problem and solution. Include the relevant issue number if applicable.

  • Check that all tests have been successfully passed.

  • If needed, update your branch.

Thanks.