Thank you for your interest in contributing to Passbolt Windows! This document provides guidelines and instructions for contributing to this project.
Passbolt is an open source password manager for teams, licensed under AGPL-3.0.
Before we can accept your contributions, you must sign our Contributor License Agreement (CLA). This is required for all contributors.
Please visit https://cla-assistant.io/passbolt/passbolt_browser_extension to review and sign the CLA.
Before you start contributing, ensure you have the following installed:
- Visual Studio >= 2019 (download)
- Visual Studio UWP workload
- Microsoft Edge WebView2 (download)
- Node.js (v16 or higher) for webview development
- Passbolt API >= v4.2.0 for testing (with desktop plugin enabled)
# Fork the repository on GitHub, then clone your fork
git clone git@github.com:YOUR_USERNAME/passbolt-windows.git
cd passbolt-windowsOpen the project folder in Visual Studio. The solution will be automatically detected.
The project includes JavaScript/React webviews that require npm dependencies:
# Install Rendered webview dependencies
cd passbolt/Webviews/Rendered
npm install
# Install Background webview dependencies
cd ../Background
npm installEnable desktop application support in your Passbolt API:
Docker:
PASSBOLT_PLUGINS_DESKTOP_ENABLED=trueManual configuration (/etc/passbolt/passbolt.php):
return [
"passbolt" => [
"plugins" => [
"desktop" => [
"enabled" => true
]
]
]
];Click the Start button in Visual Studio's top menu to build and run the application.
The project uses EditorConfig (.editorconfig) for consistent formatting:
- JavaScript: 2-space indentation
- C#: 4-space indentation
- Line endings: LF
JavaScript code must pass ESLint checks:
# Check for linting errors
cd passbolt/Webviews/Rendered
npm run lint
# Auto-fix linting issues
npm run lint:eslint-fixThe same commands apply to the Background webview directory.
- Follow existing code patterns and conventions
- Keep code simple and readable
- Add comments only where the logic isn't self-evident
All tests must pass before submitting a pull request.
Via Visual Studio:
- Open the solution in Visual Studio
- Right-click on the test project in Solution Explorer
- Select "Run Tests"
- View results in Test Explorer
Via Command Line:
MSBuild /t:Restore
MSBuild /t:Build /p:Configuration=Release
MSBuild /t:VSTest /p:Configuration=Release# Rendered webview tests
cd passbolt/Webviews/Rendered
npm test
# With coverage
npm run test:coverage
# Background webview tests
cd passbolt/Webviews/Background
npm test-
Create an issue first - For significant changes, open an issue to discuss the proposed changes before starting work
-
Fork the repository - Create your own fork on GitHub
-
Create a feature branch - Use a descriptive name:
git checkout -b feature/your-feature-name
-
Make your changes - Write clear, descriptive commit messages
-
Ensure quality:
- All tests pass
- Linting passes with no errors
- Code follows existing patterns
-
Submit the PR - Open a pull request against the
developbranch with:- Clear description of the changes
- Reference to related issues (if any)
- Screenshots for UI changes (if applicable)
- All pull requests are reviewed by Passbolt team members
- Reviewers may request changes or ask for clarification
- Once approved, Passbolt staff will merge the PR
- Please be patient - reviews may take some time depending on complexity
Use GitHub Issues to report bugs.
Please include:
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Environment details (Windows version, Visual Studio version, etc.)
- Screenshots or error messages if applicable
Check existing issues before creating a new one to avoid duplicates.
Do NOT report security vulnerabilities through public GitHub issues.
Instead, please email security@passbolt.com with details about the vulnerability.
For more information, see Passbolt's security policy.
- Community Forum: https://community.passbolt.com
- Documentation: https://help.passbolt.com
- General Information: https://www.passbolt.com
Thank you for contributing to Passbolt!