Contribution guidelines

June 27, 2026 · View on GitHub

First off, thank you for considering contributing to tui-markdown / markdown-reader. Before you dive in, skim the repository-wide AGENTS.md for build, test, and style expectations.

If your contribution is not straightforward, please first discuss the change you wish to make by creating a new issue before making the change.

Reporting issues

Before reporting an issue on the issue tracker, please check that it has not already been reported by searching for some related keywords.

Pull requests

Try to do one pull request per change.

Commit Message Format

This project adheres to Conventional Commits. A specification for adding human and machine readable meaning to commit messages.

Commit Message Header

<type>(<scope>): <short summary>
  │       │             │
  │       │             └─⫸ Summary in present tense. Not capitalized. No period at the end.
  │       │
  │       └─⫸ Commit Scope

  └─⫸ Commit Type: feat|fix|build|ci|docs|perf|refactor|test|chore

Type

featFeaturesA new feature
fixBug FixesA bug fix
docsDocumentationDocumentation only changes
styleStylesChanges that do not affect code meaning
refactorCode RefactoringA code change that neither fixes a bug nor adds a feature
perfPerformance ImprovementsA code change that improves performance
testTestsAdding missing tests or correcting existing tests
buildBuildsChanges that affect the build system or external dependencies
ciContinuous IntegrationsChanges to CI configuration files and scripts
choreChoresOther changes that don't modify src or test files
revertRevertsReverts a previous commit

Developing

Set up

This is no different than other Rust projects.

git clone https://github.com/joshka/tui-markdown
cd tui-markdown
cargo test

Useful Commands

  • Run Clippy:

    cargo clippy --all-targets --all-features --workspace
    
  • Run all tests:

    cargo test --all-features --workspace
    
  • Check to see if there are code formatting issues

    cargo fmt --all -- --check
    
  • Format the code in the project

    cargo fmt --all