Contributing to BSManager

July 15, 2026 · View on GitHub

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.


Opening Issues

  • 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.


Submitting Pull Requests

Before You Begin

  1. Fork the repository and clone your fork locally.
  2. Install the required tools. The Node version is defined by both mise and .nvmrc; using mise is recommended.
    mise install
    
  3. Install project dependencies from the lockfile:
    npm ci
    

See Building on Linux for the required system packages.

Create a Dedicated Branch

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

Develop and Test

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.

Open a Pull Request

  1. Push your branch to your fork.
  2. Visit the main BSManager repository and click “Compare & pull request” or use this link.
  3. Provide a clear description of your changes (the context, what problem it solves, etc.).
  4. Submit your pull request. A maintainer will review it and may ask for adjustments or clarifications.

Building on Linux

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.

Distribution prerequisites

Install the packages for your distribution, then run mise install and npm ci from the repository root.

Fedora 44:

sudo dnf install -y binutils gcc-c++ libxcrypt-compat make python3 rpm-build

Build the native RPM package with:

npm run build
npx electron-builder --config electron-builder.config.js --publish never --linux rpm --x64

Ubuntu 24.04 / Debian-based distributions:

sudo apt update
sudo apt install -y build-essential libarchive-tools python3

Build the native DEB package with:

npm run build
npx electron-builder --config electron-builder.config.js --publish never --linux deb --x64

Arch Linux:

sudo pacman -Syu --needed base-devel libarchive libxcrypt-compat python

Build the native pacman package with:

npm run build
npx electron-builder --config electron-builder.config.js --publish never --linux pacman --x64

Verify a change

Before submitting a pull request, run:

npm run build
npm test -- --runInBand
npm run lint
npm audit --omit=dev

Useful Commands

Development

npm start

Runs the application in development mode.

Packaging

npm run package

Packages 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:

npm run build
npx electron-builder --config electron-builder.config.js --publish never --linux <deb|rpm|pacman> --x64
npm run publish

Publishes the application (primarily for Windows).

npm run publish:flatpak

Build a Flatpak package

Need Help?

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!