Hello! We’re delighted that you’re interested in contributing to BSManager. Your help is essential to maintaining and improving this project.
Note
This project is released with a Contributor Code of Conduct. By participating, you agree to abide by its terms.
- Reporting Bugs
If you find a bug or any unexpected behavior, feel free to open an issue. Be sure to include steps to reproduce it, relevant logs, versions, and any other pertinent details. - Suggesting Enhancements
Have an idea for improving BSManager? We welcome all suggestions—open an issue to discuss your proposal.
Tip
Before opening a new issue, please check if there’s already an existing one for the same topic to avoid duplicates.
- Fork the repository and clone your fork locally.
- Install the required tools. The Node version is defined by both
mise and
.nvmrc; mise also installs the pinned pnpm version and is recommended.mise install
- Install project dependencies:
pnpm install
The project manifests reject npm install, npm ci, and npm run commands.
Use the pinned pnpm version for both the root project and release/app.
The repository keeps two independent pnpm projects on purpose. Development
dependencies and JavaScript dependencies bundled by Vite live at the root.
Dependencies that must remain external and ship with the packaged application,
mainly native Electron modules, live in release/app. Each directory has its
own pnpm-lock.yaml. Installing from the root also installs and rebuilds
release/app through the root postinstall script.
Add dependencies that Vite can bundle from the repository root. Add a dependency to the application manifest only when it must remain external at runtime, typically because it contains native binaries:
pnpm --dir release/app add <package>See Building on Linux for the required system packages.
Use a clear naming convention for your branch:
git checkout -b (feature|bugfix|hotfix|chore)/(short-description)(/issue-id)Note
Exemple : git checkout -b feature/update-docs/42
Tip
- Follow the style guide which is using standard.
- Keep your changes as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Make the necessary changes on your new branch.
- Test your changes manually to ensure everything is working correctly.
- Verify that your updates do not introduce regressions or break existing functionality.
- Push your branch to your fork.
- Visit the main BSManager repository and click “Compare & pull request” or use this link.
- Provide a clear description of your changes (the context, what problem it solves, etc.).
- Submit your pull request. A maintainer will review it and may ask for adjustments or clarifications.
The install, build, test, and lint commands are the same on every distribution;
only system prerequisites and the native package target differ. Node 24 is
selected from mise.toml/.nvmrc.
Install the packages for your distribution, then run mise install and
pnpm install from the repository root.
Fedora 44:
sudo dnf install -y binutils gcc-c++ libxcrypt-compat make python3 rpm-buildBuild the native RPM package with:
pnpm run build
pnpm exec electron-builder --config electron-builder.config.js --publish never --linux rpm --x64Ubuntu 24.04 / Debian-based distributions:
sudo apt update
sudo apt install -y build-essential libarchive-tools python3Build the native DEB package with:
pnpm run build
pnpm exec electron-builder --config electron-builder.config.js --publish never --linux deb --x64Arch Linux:
sudo pacman -Syu --needed base-devel libarchive libxcrypt-compat pythonBuild the native pacman package with:
pnpm run build
pnpm exec electron-builder --config electron-builder.config.js --publish never --linux pacman --x64Before submitting a pull request, run:
pnpm run build
pnpm test --runInBand
pnpm run lint
pnpm audit --prodpnpm startRuns the application in development mode.
pnpm run packagePackages the application for the current platform using Electron Builder. Use the target-specific commands under Building on Linux for a native Linux distribution package.
For one Linux package format, replace <deb|rpm|pacman> below:
pnpm run build
pnpm exec electron-builder --config electron-builder.config.js --publish never --linux <deb|rpm|pacman> --x64pnpm run publishPublishes the application (primarily for Windows).
pnpm run publish:flatpakBuild a Flatpak package
If you have any questions or need further assistance, feel free to open an issue or reach out via our discord. We appreciate any and all contributions you make to BSManager!
Thank you for your interest in making BSManager better!