Contributing to SharpConsoleUI
July 8, 2026 · View on GitHub
Thank you for your interest in contributing to SharpConsoleUI!
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/ConsoleEx.git - Create a branch:
git checkout -b feature/your-feature - Build:
dotnet build - Test your changes by running the examples:
dotnet run --project Examples/DemoApp
Development Setup
- .NET 8.0 SDK or later is required
- Build the solution:
dotnet build ConsoleEx.sln - Run the demo app to verify:
dotnet run --project Examples/DemoApp
Code Guidelines
Please read docs/CODE_QUALITY.md before opening a PR — it is
the full set of standards your code will be reviewed against. The highlights:
- No breaking changes. SharpConsoleUI has real NuGet users — never remove/rename a public API or change an existing member's signature or default behavior. Add overloads instead. This is the most important rule.
- Follow existing code style and patterns (tabs for indentation, fluent builders, the file-header banner on new source files).
- Never use
Console.WriteLine()or any console output in library code — it corrupts the UI rendering. Use the built-inLogServicefor debug output. - No magic numbers — use named constants in
Configuration/ControlDefaults.cs. - Extract shared logic to helper classes rather than duplicating code.
- Keep files under the size limits, render Unicode-correctly, and marshal UI mutations to
the UI thread — details and examples in
docs/CODE_QUALITY.md.
Want a worked example? The Contributor Tutorials walk
you through building a composite control, a primitive control (BadgeControl), and a dialog
(Dialogs.PickAsync) end to end — from an empty file to an open PR.
Submitting Changes
- Ensure the solution builds without errors:
dotnet build - Test your changes with the DemoApp and relevant examples
- Commit with a clear message describing what and why
- Push to your fork and open a Pull Request
- Describe your changes and link any related issues
Pull Request Guidelines
- Keep PRs focused — one feature or fix per PR
- Include screenshots for UI changes
- Update documentation if adding new public APIs
- Add an example if introducing a new control or major feature
Reporting Issues
- Use GitHub Issues to report bugs or request features
- Include steps to reproduce for bugs
- Include your OS, .NET version, and terminal emulator
Questions?
Open a GitHub Discussion or reach out to the maintainer at nikolaos.protopapas@gmail.com.