diff --git a/CONTRIBUTING b/CONTRIBUTING index 33f2c07478b2535a86bafed379860ca6ea17ad73..6fb76a56c08d0699dc4f69318552d7ef0f5b3de8 100644 --- a/CONTRIBUTING +++ b/CONTRIBUTING @@ -12,6 +12,42 @@ This document will guide you through common operations such as: - Writing unit tests to validate your work - Submit your work +A quick path to contribute on the front-end +------------------------------------------- + +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 anoter way. + +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). + +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 to review your work easily by spawning automatically a +live version of your changes, thanks to Gitlab Review apps. + +Setup front-end only development environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Clone the repository:: + + git clone ssh://git@code.eliotberriot.com:2222/funkwhale/funkwhale.git + cd funkwhale + cd front + +2. Install [nodejs](https://nodejs.org/en/download/package-manager/) and [yarn](https://yarnpkg.com/lang/en/docs/install/#debian-stable) +3. Install the dependencies:: + + yarn install + +4. Launch the development server:: + + # this will serve the front-end on http://localhost:8000 + WEBPACK_DEVSERVER_PORT=8000 yarn dev + +5. Make the front-end talk with an existing server (like https://demo.funkwhale.audio), + by clicking on the corresponding link in the footer +6. Start hacking! Setup your development environment ---------------------------------- diff --git a/changes/changelog.d/327.feature b/changes/changelog.d/327.feature new file mode 100644 index 0000000000000000000000000000000000000000..8e22e6542c64f31bb69a20e0bb094704c9433805 --- /dev/null +++ b/changes/changelog.d/327.feature @@ -0,0 +1,22 @@ +Funkwhale's front-end can now point to any instance (#327) + +Removed front-end and back-end coupling +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Eventhough Funkwhale's front-end has always been a Single Page Application, +talking to an API, it was only able to talk to an API on the same domain. + +There was no real technical justification behind this (only lazyness), and it was +also blocking interesting use cases: + +- Use multiple customized versions of the front-end with the same instance +- Use a customized version of the front-end with multiple instances +- Use a locally hosted front-end with a remote API, which is especially useful in development + +From now on, Funkwhale's front-end can connect to any Funkwhale server. You can +change the server you are connecting to in the footer. + +Fixing this also unlocked a really interesting feature in our development/review workflow: +by leveraging Gitlab CI and review apps, we are now able to deploy automatically live versions of +a merge request, making it possible for anyone to review front-end changes easily, without +the need to install a local environment.