# Clone the repository. Dont forget the --recursive to clone submodules. git clone https://github.com/JohnXLivingston/peertube-plugin-livechat.git --recursive cd peertube-plugin-livechat # Install NPM dependencies and build the module for the first time: npm install # Build the plugin after a modification: npm run build # If you have a fork from the repository, add it as remote (example): git remote add me git@github.com:MY_GITHUB_ACCOUNT/peertube-plugin-livechat.git # Create a local branch for you developments, and checkout it (example): git checkout my_development # Note: if an issue is associated, use fix_1234 as your branch name (where 1234 isthe issue's number) # To propose your modifications, push your branch to your repository (example): git push --set-upstream me my_development # Then go to your github repository withyour web browser to propose the Pull Request (see additional instructions below)
Once you are ready to show your code to ask for feedback, submit a *draft* Pull Request.Once you are ready for a code review before merge, submit a Pull Request.In any case, please link your PR to the issues it solves by using the GitHub syntax: "fixes #issue_number".
For general instructions (developping plugins, building, installation, ...), please refer to the [Peertube documentation](https://docs.joinpeertube.org/contribute-plugins?id=write-a-plugintheme).
Before asking for help, please use the diagnostic tool: <a class="peertube-plugin-livechat-launch-diagnostic">Launch diagnostic</a> (if this button isnot opening a new window, please try to refreshthe page).
This plugin is [REUSE](https://reuse.software/) compliant: it uses SPDX headers to identify licensing information of its source code.More information onthe [REUSE](https://reuse.software/) website.Youcan use the [reuse](https://reuse.readthedocs.io/en/stable/readme.html#) command line tool to help you update headers.The `npm run lint` command will use the `reuse` command to check compliance.Don't forget to add your copyright information in SPDX headers when you modify some code.
These terms & conditions will be shown to all users when then join chatrooms. Streamers can also configure terms & conditions for their channels, that will be shown right after these global terms & conditions.
This plugin uses ESBuild for frontend code generation, as the official `peertube-plugin-quickstart` plugin.ESBuild can handle Typescript, but does not check types (see [ESBuild documentation](https://esbuild.github.io/content-types/#typescript)).That's why we first compile Typescript withthe `-noEmit` option, just to check types (`check:client:ts` in package.json file).Then, if everything is okay, we run ESBuild to generate the compiled javascript.