1401 lines
35 KiB
Plaintext
1401 lines
35 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
|
# Copyright (C) 2022, The Funkwhale Collective
|
|
# This file is distributed under the same license as the funkwhale package.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2022.
|
|
#
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: funkwhale 1.2.5\n"
|
|
"Report-Msgid-Bugs-To: \n"
|
|
"POT-Creation-Date: 2022-07-03 22:14+0200\n"
|
|
"PO-Revision-Date: 2022-07-03 23:23+0000\n"
|
|
"Last-Translator: Ciarán Ainsworth <sporiff@funkwhale.audio>\n"
|
|
"Language-Team: English (United Kingdom) <https://translate.funkwhale.audio/"
|
|
"projects/documentation/contributing/en_GB/>\n"
|
|
"Language: en_GB\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=utf-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
"X-Generator: Weblate 4.13\n"
|
|
"Generated-By: Babel 2.10.1\n"
|
|
|
|
#: ../../../CONTRIBUTING.rst:2
|
|
msgid "Contribute to Funkwhale development"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:4
|
|
msgid ""
|
|
"First of all, thank you for your interest in the project! We really "
|
|
"appreciate the fact that you're about to take some time to read this and "
|
|
"hack on the project."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:8
|
|
msgid "This document will guide you through common operations such as:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:10 ../../../CONTRIBUTING.rst:141
|
|
msgid "Setup your development environment"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:11
|
|
msgid "Working on your first issue"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:12
|
|
msgid "Writing unit tests to validate your work"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:13
|
|
msgid "Submit your work"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:16
|
|
msgid "The quickest way to contribute to the project is through Gitpod!"
|
|
msgstr ""
|
|
|
|
msgid "Open in Gitpod"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:22
|
|
msgid ""
|
|
"When you click the button above, you will be redirected to the gitpod.io "
|
|
"site. Here you can sign in with your Gitlab or GitHub account and a new "
|
|
"workspace will be automatically created for you."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:26
|
|
msgid ""
|
|
"The workspace will checkout current ``development`` branch and run a "
|
|
"Funkwhale instance with both frontend and backend started so you can jump"
|
|
" straight into development."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:29
|
|
msgid ""
|
|
"The provided backend instance has a default admin user ``gitpod`` "
|
|
"authenticated with password ``gitpod``."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:32
|
|
msgid ""
|
|
"In case you want to develop only frontend, you can go to ``File > Open "
|
|
"Folder`` and navigate to ``/workspace/funkwhale/front``. This will start "
|
|
"a new vite server on port 4000. This server integrates well with the "
|
|
"extension provided by Gitpod but is disconnected from any instance by "
|
|
"default."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:37
|
|
msgid "Usage with Gitlab"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:39
|
|
msgid ""
|
|
"We understand that having to go to the contribution guide and clicking "
|
|
"the ``Open in Gitpod`` is not an optimal way to create new branches or "
|
|
"test existing ones. That's why we've enabled the Gitpod integration on "
|
|
"our Gitlab server."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:43
|
|
msgid ""
|
|
"You can now simply choose to use Gitpod instead of Gitlab Web IDE on any "
|
|
"of branch, commit or merge request:"
|
|
msgstr ""
|
|
|
|
msgid "Select Gitpod as the default Web IDE."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:49
|
|
msgid "Gitlab Workflow extension"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:51
|
|
msgid ""
|
|
"Gitpod offers a `Gitlab Workflow` extension that can help with managing "
|
|
"Gitlab issues, merge requests and pipelines. To use it you need to create"
|
|
" a personal access token with ``api`` and ``read_user`` scopes. You can "
|
|
"create it by visiting `your Gitlab profile settings "
|
|
"<https://dev.funkwhale.audio/-/profile/personal_access_tokens>`_."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:55
|
|
msgid ""
|
|
"Setting the token through the extension is not an optimal approach as "
|
|
"you'd need to do this every single time you start a new workspace. "
|
|
"However you can work around this by creating user environment variables "
|
|
"in `your Gitpod settings <https://gitpod.io/variables>`_."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:59
|
|
msgid ""
|
|
"When you configure your environment variables as follows, you will be "
|
|
"signed in to the extension automatically in old and new workspaces."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:62
|
|
msgid "Environment variables"
|
|
msgstr "Environment variables"
|
|
|
|
#: ../../../CONTRIBUTING.rst:65 ../../../CONTRIBUTING.rst:88
|
|
msgid "Name"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:66 ../../../CONTRIBUTING.rst:89
|
|
msgid "Value"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:67 ../../../CONTRIBUTING.rst:90
|
|
msgid "Scope"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:68
|
|
msgid "``GITLAB_WORKFLOW_INSTANCE_URL``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:69
|
|
msgid "``https://dev.funkwhale.audio``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:70 ../../../CONTRIBUTING.rst:73
|
|
msgid "``funkwhale/*``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:71
|
|
msgid "``GITLAB_WORKFLOW_TOKEN``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:72
|
|
msgid "``TOKEN``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:75
|
|
msgid ""
|
|
"The scope ``funkwhale/*`` will ensure that you will be signed into our "
|
|
"instance on every project that we're hosting, not only Funkwhale itself."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:79
|
|
msgid "Custom instance url"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:81
|
|
msgid ""
|
|
"If you want to preview changes on your own Funkwhale server, you can add "
|
|
"your domain as an environment variable. This allows you to test your "
|
|
"frontend changes against your domain without setting this value each "
|
|
"time. To add your domain, set a user environment variable in `your Gitpod"
|
|
" settings <https://gitpod.io/variables>`_."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:85
|
|
msgid "Environment variable"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:91
|
|
msgid "``VUE_APP_INSTANCE_URL``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:92
|
|
msgid "``https://funkwhale.example.com``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:93
|
|
msgid "``funkwhale/funkwhale``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:95
|
|
msgid ""
|
|
"The scope ``funkwhale/funkwhale`` ensures that this variable only works "
|
|
"on Funkwhale."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:98
|
|
msgid "A quick path to contribute on the front-end"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:100
|
|
msgid ""
|
|
"The next sections of this document include a full installation guide to "
|
|
"help you setup a local, development version of Funkwhale. If you only "
|
|
"want to fix small things on the front-end, and don't want to manage a "
|
|
"full development environment, there is another way."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:104
|
|
msgid ""
|
|
"As the front-end can work with any Funkwhale server, you can work with "
|
|
"the front-end only, and make it talk with an existing instance (like the "
|
|
"demo one, or you own instance, if you have one)."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:107
|
|
msgid ""
|
|
"If even that is too much for you, you can also make your changes without "
|
|
"any development environment, and open a merge request. We will be able to"
|
|
" review your work easily by spawning automatically a live version of your"
|
|
" changes, thanks to Gitlab Review apps."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:112
|
|
msgid "Setup front-end only development environment"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:114
|
|
msgid "Clone the repository::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:120
|
|
msgid ""
|
|
"Install `nodejs <https://nodejs.org/en/download/package-manager/>`_ and "
|
|
"`yarn <https://yarnpkg.com/lang/en/docs/install/#debian-stable>`_"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:122
|
|
msgid "Install the dependencies::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:126
|
|
msgid "Compile the translations::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:130
|
|
msgid "Launch the development server::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:135
|
|
msgid ""
|
|
"Make the front-end talk with an existing server (like "
|
|
"https://demo.funkwhale.audio or https://open.audio), by clicking on the "
|
|
"corresponding link in the footer"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:138
|
|
msgid "Start hacking!"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:143
|
|
msgid ""
|
|
"If you want to fix a bug or implement a feature, you'll need to run a "
|
|
"local, development copy of funkwhale."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:146
|
|
msgid ""
|
|
"We provide a docker based development environment, which should be both "
|
|
"easy to setup and work similarly regardless of your development machine "
|
|
"setup."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:150
|
|
msgid ""
|
|
"Instructions for bare-metal setup will come in the future (Merge requests"
|
|
" are welcome)."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:154
|
|
msgid "Installing docker and docker-compose"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:156
|
|
msgid "This is already cover in the relevant documentations:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:158
|
|
msgid "https://docs.docker.com/install/"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:159
|
|
msgid "https://docs.docker.com/compose/install/"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:163
|
|
msgid ""
|
|
"If you are on Fedora, know that you can't use `podman` or `moby-engine` "
|
|
"to set up the development environment. Stick to `docker-ce` and you'll be"
|
|
" fine."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:167
|
|
msgid "Cloning the project"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:169
|
|
msgid ""
|
|
"Visit https://dev.funkwhale.audio/funkwhale/funkwhale and clone the "
|
|
"repository using SSH or HTTPS. Example using SSH::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:176
|
|
msgid ""
|
|
"As of January 2020, the SSH fingerprints of our Gitlab server are the "
|
|
"following::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:188
|
|
msgid "A note about branches"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:190
|
|
msgid ""
|
|
"Next release development occurs on the \"develop\" branch, and releases "
|
|
"are made on the \"stable\" branch. Therefore, when submitting Merge "
|
|
"Requests, ensure you are merging on the develop branch."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:194
|
|
msgid "Working with docker"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:196
|
|
msgid ""
|
|
"In development, we use the docker-compose file named ``dev.yml``, and "
|
|
"this is why all our docker-compose commands will look like this::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:200
|
|
msgid ""
|
|
"If you do not want to add the ``-f dev.yml`` snippet every time, you can "
|
|
"run this command before starting your work::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:206
|
|
msgid "Creating your env file"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:208
|
|
msgid ""
|
|
"We provide a working .env.dev configuration file that is suitable for "
|
|
"development. However, to enable customization on your machine, you should"
|
|
" also create a .env file that will hold your personal environment "
|
|
"variables (those will not be commited to the project)."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:213
|
|
msgid "Create it like this::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:217
|
|
msgid ""
|
|
"These two environment variables must be included for the images to load "
|
|
"in front-end and django admin pages::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:224
|
|
msgid "Create docker network"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:226
|
|
msgid "Create the federation network::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:232
|
|
msgid "Building the containers"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:234
|
|
msgid ""
|
|
"On your initial clone, or if there have been some changes in the app "
|
|
"dependencies, you will have to rebuild your containers. This is done via "
|
|
"the following command::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:242
|
|
msgid "Database management"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:244
|
|
msgid "To setup funkwhale's database schema, run this::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:248
|
|
msgid ""
|
|
"This will create all the tables needed for the API to run properly. You "
|
|
"will also need to run this whenever changes are made on the database "
|
|
"schema."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:252
|
|
msgid ""
|
|
"It is safe to run this command multiple times, so you can run it whenever"
|
|
" you fetch develop."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:257
|
|
msgid "Development data"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:259
|
|
msgid ""
|
|
"You'll need at least an admin user and some artists/tracks/albums to work"
|
|
" locally."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:262
|
|
msgid "Create an admin user with the following command::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:266
|
|
msgid "Injecting fake data is done by running the following script::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:272
|
|
msgid ""
|
|
"The previous command will create 25 artists with random albums, tracks "
|
|
"and metadata."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:277
|
|
msgid "Launch all services"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:279
|
|
msgid "Before the first Funkwhale launch, it is required to run this::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:283
|
|
msgid "Then you can run everything with::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:287
|
|
msgid ""
|
|
"This will launch all services, and output the logs in your current "
|
|
"terminal window. If you prefer to launch them in the background instead, "
|
|
"use the ``-d`` flag, and access the logs when you need it via ``docker-"
|
|
"compose -f dev.yml logs --tail=50 --follow``."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:290
|
|
msgid "Once everything is up, you can access the various funkwhale's components:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:292
|
|
msgid "The Vue webapp, on http://localhost:8000"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:293
|
|
msgid "The API, on http://localhost:8000/api/v1/"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:294
|
|
msgid "The django admin, on http://localhost:8000/api/admin/"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:297
|
|
msgid "Stopping everything"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:299
|
|
msgid ""
|
|
"Once you're down with your work, you can stop running containers, if any,"
|
|
" with::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:305
|
|
msgid "Removing everything"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:307
|
|
msgid ""
|
|
"If you want to wipe your development environment completely (e.g. if you "
|
|
"want to start over from scratch), just run::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:311
|
|
msgid ""
|
|
"This will wipe your containers and data, so please be careful before "
|
|
"running it."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:313
|
|
msgid "You can keep your data by removing the ``-v`` flag."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:317
|
|
msgid "Working with federation locally"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:319
|
|
msgid "This is not needed unless you need to work on federation-related features."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:321
|
|
msgid "To achieve that, you'll need:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:323
|
|
msgid "to update your dns resolver to resolve all your .dev hostnames locally"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:324
|
|
msgid ""
|
|
"a reverse proxy (such as traefik) to catch those .dev requests and and "
|
|
"with https certificate"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:326
|
|
msgid "two instances (or more) running locally, following the regular dev setup"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:329
|
|
msgid "Resolve .dev names locally"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:331
|
|
msgid "If you use dnsmasq, this is as simple as doing::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:336
|
|
msgid "If you use NetworkManager with dnsmasq integration, use this instead::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:342
|
|
msgid "Add wildcard certificate to the trusted certificates"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:344
|
|
msgid "Simply copy bundled certificates::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:349
|
|
msgid "This certificate is a wildcard for ``*.funkwhale.test``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:352
|
|
msgid "Run a reverse proxy for your instances"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:356
|
|
msgid "Launch everything"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:358
|
|
msgid "Launch the traefik proxy::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:362
|
|
msgid ""
|
|
"Then, in separate terminals, you can setup as many different instances as"
|
|
" you need::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:371
|
|
msgid ""
|
|
"Note that by default, if you don't export the COMPOSE_PROJECT_NAME, we "
|
|
"will default to node1 as the name of your instance."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:374
|
|
msgid ""
|
|
"Assuming your project name is ``node1``, your server will be reachable at"
|
|
" ``https://node1.funkwhale.test/``. Not that you'll have to trust the SSL"
|
|
" Certificate as it's self signed."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:378
|
|
msgid ""
|
|
"When working on federation with traefik, ensure you have this in your "
|
|
"``env``::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:391
|
|
msgid "Typical workflow for a contribution"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:393
|
|
msgid ""
|
|
"Fork the project if you did not already or if you do not have access to "
|
|
"the main repository"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:394
|
|
msgid ""
|
|
"Checkout the development branch and pull most recent changes: ``git "
|
|
"checkout develop && git pull``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:395
|
|
msgid ""
|
|
"If working on an issue, assign yourself to the issue. Otherwise, consider"
|
|
" open an issue before starting to work on something, especially for new "
|
|
"features."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:396
|
|
msgid ""
|
|
"Create a dedicated branch for your work ``42-awesome-fix``. It is good "
|
|
"practice to prefix your branch name with the ID of the issue you are "
|
|
"solving."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:397
|
|
msgid "Work on your stuff"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:398
|
|
msgid ""
|
|
"[Optional] Consider running ``yarn lint`` in ``front`` if you changed "
|
|
"something there. Consider fixing some linting errors in the files you "
|
|
"touched."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:400
|
|
msgid "Commit small, atomic changes to make it easier to review your contribution"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:401
|
|
msgid ""
|
|
"Add a changelog fragment to summarize your changes: ``echo \"Implemented "
|
|
"awesome stuff (#42)\" > changes/changelog.d/42.feature``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:402
|
|
msgid "Push your branch"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:403
|
|
msgid "Create your merge request"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:404
|
|
msgid ""
|
|
"Take a step back and enjoy, we're really grateful you did all of this and"
|
|
" took the time to contribute!"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:407
|
|
msgid "Changelog management"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:409
|
|
msgid ""
|
|
"To ensure we have extensive and well-structured changelog, any "
|
|
"significant work such as closing an issue must include a changelog "
|
|
"fragment. Small changes may include a changelog fragment as well but this"
|
|
" is not mandatory. If you're not sure about what to do, do not panic, "
|
|
"open your merge request normally and we'll figure everything during the "
|
|
"review ;)"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:415
|
|
msgid ""
|
|
"Changelog fragments are text files that can contain one or multiple lines"
|
|
" that describe the changes occurring in a bunch of commits. Those files "
|
|
"reside in ``changes/changelog.d``."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:420
|
|
msgid "Content"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:422
|
|
msgid "A typical fragment looks like that:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:424
|
|
msgid "Fixed broken audio player on Chrome 42 for ogg files (#567)"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:426
|
|
msgid ""
|
|
"If the work fixes one or more issues, the issue number should be included"
|
|
" at the end of the fragment (``(#567)`` is the issue number in the "
|
|
"previous example)."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:429
|
|
msgid ""
|
|
"If your work is not related to a specific issue, use the merge request "
|
|
"identifier instead, like this:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:432
|
|
msgid "Fixed a typo in landing page copy (!342)"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:435
|
|
msgid "Naming"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:437
|
|
msgid ""
|
|
"Fragment files should respect the following naming pattern: "
|
|
"``changes/changelog.d/<name>.<category>``. Name can be anything "
|
|
"describing your work, or simply the identifier of the issue number you "
|
|
"are fixing. Category can be one of:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:441
|
|
msgid "``feature``: for new features"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:442
|
|
msgid "``enhancement``: for enhancements on existing features"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:443
|
|
msgid "``bugfix``: for bugfixes"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:444
|
|
msgid "``doc``: for documentation"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:445
|
|
msgid "``i18n``: for internationalization-related work"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:446
|
|
msgid "``misc``: for anything else"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:449
|
|
msgid "Shortcuts"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:451
|
|
msgid ""
|
|
"Here is a shortcut you can use/adapt to easily create new fragments from "
|
|
"command-line:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:460
|
|
msgid ""
|
|
"You can of course create fragments by hand in your text editor, or from "
|
|
"Gitlab's interface as well."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:464
|
|
msgid "Internationalization"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:466
|
|
msgid ""
|
|
"We're using https://github.com/Polyconseil/vue-gettext to manage i18n in "
|
|
"the project."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:468
|
|
msgid ""
|
|
"When working on the front-end, any end-user string should be marked as a "
|
|
"translatable string, with the proper context, as described below."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:472
|
|
msgid "Translations in HTML"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:474
|
|
msgid "Translations in HTML use the ``<translate>`` tag::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:498
|
|
msgid ""
|
|
"Anything between the `<translate>` and `</translate>` delimiters will be "
|
|
"considered as a translatable string. You can use variables in the "
|
|
"translated string via the ``:translate-params=\"{var: 'value'}\"`` "
|
|
"directive, and reference them like this: ``val value is %{ value }``."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:502
|
|
msgid ""
|
|
"For pluralization, you need to use ``translate-params`` in conjunction "
|
|
"with ``translate-plural`` and ``translate-n``:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:504
|
|
msgid ""
|
|
"``translate-params`` should contain the variable you're using for "
|
|
"pluralization (which is usually shown to the user)"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:505
|
|
msgid "``translate-n`` should match the same variable"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:506
|
|
msgid ""
|
|
"The ``<translate>`` delimiters contain the non-pluralized version of your"
|
|
" string"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:507
|
|
msgid ""
|
|
"The ``translate-plural`` directive contains the pluralized version of "
|
|
"your string"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:511
|
|
msgid "Translations in javascript"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:513
|
|
msgid ""
|
|
"Translations in javascript work by calling the ``this.$*gettext`` "
|
|
"functions::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:528
|
|
msgid ""
|
|
"The first argument of the ``$pgettext`` and ``$npgettext`` functions is "
|
|
"the string context."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:531
|
|
msgid "Contextualization"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:533
|
|
msgid ""
|
|
"Translation contexts provided via the ``translate-context`` directive and"
|
|
" the ``$pgettext`` and ``$npgettext`` are never shown to end users but "
|
|
"visible by Funkwhale translators. They help translators where and how the"
|
|
" strings are used, especially with short or ambiguous strings, like "
|
|
"``May``, which can refer a month or a verb."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:537
|
|
msgid ""
|
|
"While we could in theory use free form context, like ``This string is "
|
|
"inside a button, in the main page, and is a call to action``, Funkwhale "
|
|
"use a hierarchical structure to write contexts and keep them short and "
|
|
"consistents accross the app. The previous context, rewritten correctly "
|
|
"would be: ``Content/Home/Button/Call to action``."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:541
|
|
msgid "This hierarchical structure is made of several parts:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:550
|
|
msgid ""
|
|
"The location part, which is required and refers to the big blocks found "
|
|
"in Funkwhale UI where the translated string is displayed:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:544
|
|
msgid "``Content``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:545
|
|
msgid "``Footer``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:546
|
|
msgid "``Head``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:547 ../../../CONTRIBUTING.rst:591
|
|
msgid "``Menu``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:548
|
|
msgid "``Popup``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:549
|
|
msgid "``Sidebar``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:550
|
|
msgid "``*`` for strings that are not tied to a specific location"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:573
|
|
msgid ""
|
|
"The feature part, which is required, and refers to the feature associated"
|
|
" with the translated string:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:553
|
|
msgid "``About``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:554
|
|
msgid "``Admin``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:555
|
|
msgid "``Album``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:556
|
|
msgid "``Artist``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:557
|
|
msgid "``Embed``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:558
|
|
msgid "``Home``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:559
|
|
msgid "``Login``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:560
|
|
msgid "``Library``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:561
|
|
msgid "``Moderation``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:562
|
|
msgid "``Player``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:563
|
|
msgid "``Playlist``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:564
|
|
msgid "``Profile``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:565
|
|
msgid "``Favorites``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:566
|
|
msgid "``Notifications``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:567
|
|
msgid "``Radio``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:568
|
|
msgid "``Search``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:569
|
|
msgid "``Settings``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:570
|
|
msgid "``Signup``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:571
|
|
msgid "``Track``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:572
|
|
msgid "``Queue``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:573
|
|
msgid "``*`` for strings that are not tied to a specific feature"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:599
|
|
msgid ""
|
|
"The component part, which is required and refers to the type of element "
|
|
"that contain the string:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:576
|
|
msgid "``Button``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:577
|
|
msgid "``Card``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:578
|
|
msgid "``Checkbox``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:579
|
|
msgid "``Dropdown``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:580
|
|
msgid "``Error message``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:581
|
|
msgid "``Form``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:582
|
|
msgid "``Header``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:583
|
|
msgid "``Help text``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:584
|
|
msgid "``Hidden text``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:585
|
|
msgid "``Icon``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:586
|
|
msgid "``Input``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:587
|
|
msgid "``Image``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:588
|
|
msgid "``Label``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:589
|
|
msgid "``Link``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:590
|
|
msgid "``List item``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:592
|
|
msgid "``Message``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:593
|
|
msgid "``Paragraph``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:594
|
|
msgid "``Placeholder``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:595
|
|
msgid "``Tab``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:596
|
|
msgid "``Table``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:597
|
|
msgid "``Title``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:598
|
|
msgid "``Tooltip``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:599
|
|
msgid "``*`` for strings that are not tied to a specific component"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:607
|
|
msgid ""
|
|
"The detail part, which is optional and refers to the contents of the "
|
|
"string itself, such as:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:602
|
|
msgid "``Adjective``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:603
|
|
msgid "``Call to action``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:604
|
|
msgid "``Noun``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:605
|
|
msgid "``Short``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:606
|
|
msgid "``Unit``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:607
|
|
msgid "``Verb``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:609
|
|
msgid "Here are a few examples of valid context hierarchies:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:611
|
|
msgid "``Sidebar/Player/Button``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:612
|
|
msgid "``Content/Home/Button/Call to action``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:613
|
|
msgid "``Footer/*/Help text``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:614
|
|
msgid "``*/*/*/Verb, Short``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:615
|
|
msgid "``Popup/Playlist/Button``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:616
|
|
msgid "``Content/Admin/Table.Label/Short, Noun (Value is a date)``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:618
|
|
msgid ""
|
|
"It's possible to nest multiple component parts to reach a higher level of"
|
|
" detail. The component parts are then separated by a dot:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:620
|
|
msgid "``Sidebar/Queue/Tab.Title``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:621
|
|
msgid "``Content/*/Button.Title``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:622
|
|
msgid "``Content/*/Table.Header``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:623
|
|
msgid "``Footer/*/List item.Link``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:624
|
|
msgid "``Content/*/Form.Help text``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:627
|
|
msgid "Collecting translatable strings"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:629
|
|
msgid ""
|
|
"If you want to ensure your translatable strings are correctly marked for "
|
|
"translation, you can try to extract them."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:632
|
|
msgid ""
|
|
"Extraction is done by calling ``yarn run i18n-extract``, which will pull "
|
|
"all the strings from source files and put them in a PO files."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:635
|
|
msgid ""
|
|
"You can then inspect the PO files to ensure everything is fine (but don't"
|
|
" commit them, it's not needed)."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:638
|
|
msgid "Contributing to the API"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:641
|
|
msgid "Project structure"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:655
|
|
msgid ""
|
|
"Unless trivial, API contributions must include unittests to ensure your "
|
|
"fix or feature is working as expected and won't break in the future"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:659 ../../../CONTRIBUTING.rst:817
|
|
msgid "Running tests"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:661
|
|
msgid "To run the pytest test suite, use the following command::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:665
|
|
msgid ""
|
|
"This is regular pytest, so you can use any arguments/options that pytest "
|
|
"usually accept::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:675
|
|
msgid "Writing tests"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:677
|
|
msgid ""
|
|
"Although teaching you how to write unit tests is outside of the scope of "
|
|
"this document, you'll find below a collection of tips, snippets and "
|
|
"resources you can use if you want to learn on that subject."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:681
|
|
msgid "Useful links:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:683
|
|
msgid ""
|
|
"`A quick introduction to unit test writing with pytest "
|
|
"<https://semaphoreci.com/community/tutorials/testing-python-applications-"
|
|
"with-pytest>`_"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:684
|
|
msgid ""
|
|
"`A complete guide to Test-Driven Development (although not using Pytest) "
|
|
"<https://www.obeythetestinggoat.com/>`_"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:685
|
|
msgid ""
|
|
"`pytest <https://docs.pytest.org/en/latest/>`_: documentation of our "
|
|
"testing engine and runner"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:686
|
|
msgid ""
|
|
"`pytest-mock <https://pypi.org/project/pytest-mock/>`_: project page of "
|
|
"our mocking engine"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:687
|
|
msgid ""
|
|
"`factory-boy <http://factoryboy.readthedocs.io/>`_: documentation of "
|
|
"factory-boy, which we use to easily generate fake objects and data"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:689
|
|
msgid "Recommendations:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:691
|
|
msgid ""
|
|
"Test files must target a module and mimic ``funkwhale_api`` directory "
|
|
"structure: if you're writing tests for ``funkwhale_api/myapp/views.py``, "
|
|
"you should put thoses tests in ``tests/myapp/test_views.py``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:692
|
|
msgid ""
|
|
"Tests should be small and test one thing. If you need to test multiple "
|
|
"things, write multiple tests."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:694
|
|
msgid ""
|
|
"We provide a lot of utils and fixtures to make the process of writing "
|
|
"tests as painless as possible. You'll find some usage examples below."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:697
|
|
msgid "Use factories to create arbitrary objects:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:732
|
|
msgid ""
|
|
"We offer factories for almost if not all models. Factories are located in"
|
|
" a ``factories.py`` file inside each app."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:735
|
|
msgid ""
|
|
"Mocking: mocking is the process of faking some logic in our code. This is"
|
|
" useful when testing components that depend on each other:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:790
|
|
msgid ""
|
|
"Views: you can find some readable views tests in file: "
|
|
"``api/tests/users/test_views.py``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:794
|
|
msgid ""
|
|
"A complete list of available-fixtures is available by running ``docker-"
|
|
"compose -f dev.yml run --rm api pytest --fixtures``"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:799
|
|
msgid "Contributing to the front-end"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:802
|
|
msgid "Styles and themes"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:804
|
|
msgid ""
|
|
"Our UI framework is Fomantic UI (https://fomantic-ui.com/), and "
|
|
"Funkwhale's custom styles are written in SCSS. All the styles are "
|
|
"configured in ``front/src/styles/_main.scss``, including imporing of "
|
|
"Fomantic UI styles and components."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:807
|
|
msgid ""
|
|
"We're applying several changes on top of the Fomantic CSS files, before "
|
|
"they are imported:"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:809
|
|
msgid ""
|
|
"Many hardcoded color values are replaced by CSS vars: e.g ``color: "
|
|
"orange`` is replaced by ``color: var(--vibrant-color)``. This makes "
|
|
"theming way easier."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:810
|
|
msgid ""
|
|
"Unused components variations and icons are stripped from the source "
|
|
"files, in order to reduce the final size of our CSS files"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:812
|
|
msgid ""
|
|
"This changes are applied automatically when running ``yarn install``, "
|
|
"through a ``postinstall`` hook. Internally, ``front/scripts/fix-fomantic-"
|
|
"css.py`` is called and handle both kind of modifications. Please refer to"
|
|
" this script if you need to use new icons to the project, or restore some"
|
|
" components variations that were stripped in order to use them."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:819
|
|
msgid "To run the front-end test suite, use the following command::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:823
|
|
msgid ""
|
|
"We also support a \"watch and test\" mode were we continually relaunch "
|
|
"tests when changes are recorded on the file system::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:828
|
|
msgid "The latter is especially useful when you are debugging failing tests."
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:832
|
|
msgid "The front-end test suite coverage is still pretty low"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:836
|
|
msgid "Making a release"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:838
|
|
msgid "To make a new 3.4 release::"
|
|
msgstr ""
|
|
|
|
#: ../../../CONTRIBUTING.rst:877
|
|
msgid ""
|
|
"Then, visit https://dev.funkwhale.audio/funkwhale/funkwhale/-/tags, copy-"
|
|
"paste the changelog on the corresponding tag, and announce the good news "
|
|
";)"
|
|
msgstr ""
|