Skip to main content

How to Contribute

Contributions to Bulk Crap Uninstaller are welcome! Whether you’re fixing bugs, adding features, improving documentation, or translating the interface, your help is appreciated.

Ways to Contribute

Code Contributions

Submit bug fixes and new features via pull requests

Translations

Help translate BCUninstaller into your language

Bug Reports

Report issues with detailed reproduction steps

Feature Requests

Suggest new features and improvements

Filing Bug Reports

When reporting a bug, please include:
  • Clear description of the problem
  • Steps to reproduce the issue
  • Expected behavior vs actual behavior
  • System information (Windows version, BCU version)
  • Screenshots or logs if applicable

Where to Report

GitHub Issues

Create a new issue on the GitHub repository

Anonymous Feedback

Use the feedback form if you prefer anonymous reporting

Suggesting Features

Feature suggestions follow the same process as bug reports:
  1. Search existing issues to avoid duplicates
  2. Create a new issue with a clear description
  3. Explain the use case and benefits
  4. Provide examples if applicable
Well-explained suggestions with clear use cases are more likely to be implemented.

Submitting Code

The best way to contribute code is through pull requests on GitHub.

Before You Start

1

Set Up Your Environment

Follow the building from source guide to set up Visual Studio and compile the project.
2

Fork the Repository

Create your own fork of the repository on GitHub.
3

Create a Feature Branch

Create a new branch for your changes:
git checkout -b feature/my-new-feature
or for bug fixes:
git checkout -b fix/bug-description

Pull Request Guidelines

Keep PRs Focused

Limit each pull request to a single bug fix or single feature. This makes reviewing, testing, and merging much easier.Create separate branches and PRs for different changes.

Coding Standards

When contributing code, please follow these guidelines:
  • Match existing code style - Follow the formatting and naming conventions used in the codebase
  • Write clear commit messages - Describe what changed and why
  • Comment complex logic - Add comments explaining non-obvious code
  • Test your changes - Ensure your code works as expected
  • Update documentation - If your changes affect user-facing features

Submitting Your Pull Request

1

Commit Your Changes

Make clear, focused commits:
git add .
git commit -m "Fix: Description of what was fixed"
2

Push to Your Fork

git push origin feature/my-new-feature
3

Create Pull Request

  1. Go to the original repository on GitHub
  2. Click “New Pull Request”
  3. Select your fork and branch
  4. Provide a clear description of your changes
  5. Reference any related issues
4

Respond to Review Feedback

Maintainers may request changes. Please respond promptly and update your PR as needed.

Development Environment Setup

Visual Studio Requirements

Recommended Setup

  • Visual Studio 2019 or 2022
  • .NET desktop development workload
  • Desktop development with C++ workload
  • Class Designer component (optional)

First Build

The first build may fail due to dependency resolution. If this happens, use Build > Rebuild Solution.

Testing

The solution includes unit tests in the BulkCrapUninstallerTests project.
Some tests require:
  • Running as 64-bit
  • Specific applications installed
  • Administrator privileges

Code Architecture Overview

Understanding the codebase structure will help you contribute effectively:

Main Components

  • User Interfaces: BulkCrapUninstaller (GUI) and BCU-Console (CLI)
  • Core Libraries: UninstallTools (main logic), KlocTools (utilities)
  • Helper Applications: SteamHelper, WinUpdateHelper, StoreAppHelper, OculusHelper, ScriptHelper
Helper applications:
  • Are separate executables
  • Communicate via CLI
  • Can be used independently
  • Decouple specialized code from the main application

Learn More

Read the full architecture documentation for detailed information about the codebase structure.

What Makes a Good Contribution?

Excellent Contributions

✅ Bug fixes with clear reproduction cases ✅ Well-tested new features ✅ Performance improvements with benchmarks ✅ Focused pull requests (one issue per PR) ✅ Clear documentation updates ✅ Code that follows existing patterns

Things to Avoid

❌ Large refactoring without discussion ❌ Multiple unrelated changes in one PR ❌ Changes without testing ❌ Breaking existing functionality ❌ Code style that doesn’t match the project

Getting Help

If you have questions about contributing:
  • Open a discussion on GitHub
  • Comment on related issues
  • Review existing pull requests for examples

Recognition

All contributors are valued! Your contributions will be:
  • Credited in release notes
  • Listed in the project’s contributor list
  • Appreciated by the BCUninstaller community

Donation

If you’d like to support the project financially:

Donate

Only donate using official donate links. Check the main window of BCUninstaller or the README for official links.
Only use official donation links to ensure your contribution reaches the project maintainer.

Building from Source

Set up your development environment

Architecture

Understand the codebase structure

Translations

Help translate BCUninstaller

Build docs developers (and LLMs) love