Contributing
Contributing to Balean OSS
First off, thanks for taking the time to contribute! π
This document explains how to submit bug reports, request features, and propose code changes to a project in the Balean open source software group on GitLab. It is meant to be read alongside our Code of Conduct, which applies to all contribution channels.
People contributing to Balean or Vortex are considered volunteers to Balean so we encourage them to read the community guide as well.
Table of Contents
- Ways to Contribute
- Getting Help
- Setting Up a Development Environment
- How to Submit a Bug Report
- How to Suggest a Feature
- Submitting Code Changes
- Style Guidelines
- Review Process
- Recognition
Ways to Contribute
You don’t have to write code to help. We welcome:
- π Bug reports β spotting and clearly describing broken behavior
- π‘ Feature ideas β proposals for new functionality or improvements
- π Documentation β fixes, clarifications, examples, translations
- π§ͺ Tests β more coverage, especially around edge cases
- π Code review β feedback on open pull requests
- π’ Outreach β blog posts, talks, or telling others about the project
Handbook updates
If you want to help improve our handbook, please also read our Handbook Contributing guide.
Documentation updates
It is also possible to contribute as a technical writer to our documentation.
Balean is based on a platform called Vortex. Documentation for Vortex is available online via this link: https://balean-oss.gitlab.io/vortex/docs/. Check its contributing guide as well.
Getting Help
- Community issue tracker: https://gitlab.com/balean-oss/balean-volunteering-challenges/-/work_items
- Chat: Balean’s Volunteering Community on Discord
- Discussions / Q&A: github.com/project-name/discussions
If you’re unsure whether a bug is a bug, ask in Discord first β it keeps the issue tracker focused.
How to Submit a Bug Report
Open a new issue in our community issue tracker or on one of the projects and include:
- A clear title β e.g. “Crash when parsing an empty config file”
- Steps to reproduce β the smallest sequence that triggers the bug
- Expected behavior vs. actual behavior
- Environment β OS, runtime version, and project version
- A minimal reproduction β a repo, snippet, or failing test if possible
_Use the bug issue template for better
How to Suggest a Feature
- Check existing features in our Community issue tracker, on the project work item list or in our roadmap β it may already be planned.
- Open a feature request using the issue template and describe:
- the problem you’re trying to solve (not just the solution),
- how you imagine it working,
- alternatives you’ve considered.
Small, well-scoped ideas may go straight to a MR; anything that changes the public API should be discussed in an issue first.
Submitting Code Changes
Before you start: for anything non-trivial, open an issue first so we can agree on the approach. We’d hate for you to spend a weekend on something we can’t merge.
Workflow
# Keep your main branch clean; work on feature branches
git checkout -b fix/empty-config-crash
# Make your changes, keeping commits focused
git commit -m "Fix crash when parsing an empty config file"
# Keep your branch up to date
git fetch upstream
git rebase upstream/main
# Push and open a Pull Request
git push -u origin fix/empty-config-crash
Merge request checklist
- The change was discussed in a linked issue (if non-trivial)
- Tests cover the new behavior and pass locally
- Documentation is updated (README, docs/)
- Are changes to the public online documentation required? Create an MR in our public docs repo.
- The MR has a clear description and a small, reviewable diff
- Commits are squashed into logical units
- Commits must follow Conventional Commits
We target main only β never merge release branches manually.
Style Guidelines
- Code style: We use general available linting tools to check for code styles as well as markdown style.
- Naming: follow existing conventions in the codebase; when in doubt, look at nearby code.
- Tests: every bug fix should include a regression test; new features need tests for happy path and edge cases.
- Commit messages: imperative mood (“Fix crash”, not “Fixed crash”), β€ 72 characters, with a body explaining why for non-obvious changes.
- Documentation: write for a newcomer, not an expert.
Review Process
- A maintainer will review your PR within 14 days.
- Reviews focus on correctness, tests, performance, and readability. Feedback is about the code, never about you.
- Respond to review comments by pushing new commits β don’t force-push mid-review unless asked.
- Once approved and CI passes, a maintainer merges. We typically use squash-merges.
PRs can be closed for inactivity after 30 days without a response β you can always reopen or re-submit.
License
Most of our open source software is released under the GNU lGPLv3 license.
Documents, documentation and other texts that are meant for humans, are released under the Creative Commons license CC BY-SA 4.0
By contributing to one of our projects, you agree that your contributions will be licensed under the project’s license. See the specific project for the exact license.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.