Contributing

March 7, 2026 · View on GitHub

Thank you for your interest in contributing to LIBB! Contributions, discussion, and alternative perspectives are welcome, especially from those interested in the core design philosophy.

To keep the project focused and maintainable, contributions are guided by the principles outlined below.


Before Contributing

Please read the following documents before submitting any contribution:

Contributions are reviewed with these documents in mind.


Scope of Contributions

  • Bug fixes, documentation improvements, and fixes for existing issues are always welcome.
  • Improvements that increase correctness, clarity, or reproducibility are encouraged.
  • Refactors that simplify code or make behavior more explicit are generally acceptable when they preserve existing design intent.

Feature Contributions

New features are considered selectively.

  • Only major features that align with items on the project roadmap are likely to be merged.
  • Features that fall outside the roadmap should be discussed before implementation.
  • Contributions that introduce heavy abstraction, rigid workflows, or unnecessary dependencies are unlikely to be accepted.

Design Alignment

Contributions are reviewed with the design principles in mind.

If you're unsure whether a feature fits the project's scope, please ask before implementing it.


Issues and Discussions

Issues are encouraged for:

  • Bug reports or unexpected behavior
  • Questions about intended usage or design decisions
  • Early discussion of feature ideas before implementation
  • Clarifying documentation or constraints

When opening an issue, please include as much context as possible (e.g., what you were trying to do, expected vs. actual behavior).

Not all feature ideas will be accepted, but discussion is always welcome and helps inform future direction.


Pull Requests

All contributions should be submitted via pull request.

When opening a pull request, please:

  • Clearly describe what the change does and why it is needed
  • Keep pull requests focused and well-scoped (avoid bundling unrelated changes)
  • Reference any relevant issues, discussions, or roadmap items when applicable
  • Update or add documentation if behavior, assumptions, or usage changes
  • Ensure the project runs correctly after your changes

Pull requests that introduce new features should generally be preceded by a discussion or existing issue.


Becoming a Maintainer

Contributors who consistently provide high-quality, thoughtful contributions, particularly those that improve reliability, research value, or design clarity, may be invited to become maintainers.

Maintainers are trusted collaborators who help review contributions, shape project direction, and uphold core design principles.


General Guidelines

  • Keep changes focused and well-scoped
  • Prefer clarity over cleverness
  • Avoid introducing unnecessary dependencies
  • Document non-obvious behavior or assumptions
  • Be respectful and constructive in discussion
  • Provide accurate answers to questions

Final Note

Not all contributions will be merged, and the decision to decline a proposal does not reflect on the quality of the idea or the effort involved.

Thoughtful discussion and collaboration is always welcome!