If you have any question, or if you want to talk about this plugin, you can join this XMPP room with any Jabber client: [plugin-livechat-support@room.im.yiny.org](xmpp:plugin-livechat-support@room.im.yiny.org?join).
If you want to support the project financially, you can contact me by mail at git.[at].john-livingston.fr, or check my [Liberapay profile](https://liberapay.com/JohnLivingston/).
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).Translations are available at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations).Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement by mail at git.[at].john-livingston.fr.
Always talk about features you want to develop by creating/finding and commenting the issue tackling your problem before you start working on it, and inform the community that you begin coding by claiming the issue.
Please note that this plugin needs an AppImage for the Prosody XMPP server.This AppImage is provided by the [Prosody AppImage](https://github.com/JohnXLivingston/prosody-appimage) sideproject.The `build-prosody.sh` script download binaries attached to this remote repository, and checks that their sha256 hashsum are correct.
# 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 is the 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 with your 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).
This plugin is [REUSE](https://reuse.software/) compliant: it uses SPDX headers to identify licensing information of its source code.More information on the [REUSE](https://reuse.software/) website.You can 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.
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 with the `-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.
There is a debug mode for this plugin, that shorten some delay.For example, some log files will rotate every two minutes, instead of once per day.This permit to test more easily certain actions, for which it could normally take hours or days to wait.