Replacing webpack by ESBuild for client code compilation (as in the official quickstart plugin). So we can remove deprecated webpack dependencies. Note: webpack is still used for ConverseJS build. This may be removed soon. Related to issue #122.
4.2 KiB
Welcome to the contributing guide for the plugin peertube-plugin-livechat
Interested in contributing? Awesome!
Code of conduct
Please read the CODE_OF_CONDUCT.
Translate
You can help us to translate this PeerTube plugin by creating or modifying translation files in the languages
folder.
Please work on the develop
branch, and do your commits and pull request on this branch.
If the language you are interesting in does not exist yet, create a file code.json
in the languages
folder, where code
is the language code.
The language code must be the same as the Peertube's langage code (see Peertube documentation).
Then add the language file in the package.json file, under the key translations
.
Translation strings are set in the language file as follow:
- files are in JSON format
- the JSON key is the english string (see existing keys in the french translation file).
- the JSON value is the translating string
- NB: there is no english translation file (this is how translation works for peertube's plugins)
Give your feedback
You don't need to know how to code to start contributing to this plugin! Other contributions are very valuable too, among which: you can test the software and report bugs, you can give feedback, features that you are interested in, user interface, design, ...
Develop
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 use the develop
branch. The main
branch is reserved to released versions of the plugin, so that the documentation is always synchronized with the released version of the plugin.
Prerequisite for building this plugin:
- you must have
npm
installed - you must have python venv installed (
python3-venv
package on Debian for example)
To clone the repository:
# Clone the repository
git clone https://github.com/JohnXLivingston/peertube-plugin-livechat.git
# Checkout the develop branch
git checkout develop
# Initialize the submodules. This command must be run again if any submodules' version changes.
git submodule update --init --recursive
# 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".
The front-end code is in the client
folder, the back-end code in server
. There are some shared code in shared
folder.
For general instructions (developping plugins, building, installation, ...), please refer to the Peertube documentation.
You can build the plugin with extra debug features simply by using:
NODE_ENV=dev npm run build
ESBuild vs Typescript
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).
That's why we first comple 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.