Skip to content

Latest commit

 

History

History
94 lines (65 loc) · 3.76 KB

CONTRIBUTING.md

File metadata and controls

94 lines (65 loc) · 3.76 KB

Contributing to Newsboat

Thank you for your interest in contributing to Newsboat! Here are a few ways you can help:

  1. Security Vulnerabilities
  2. Feature Requests and Bug Reports
  3. Patches/Pull Requests
  4. Documentation
  5. Translations

Security Vulnerabilities

If you happen to stumble upon a security vulnerability, do not open a GitHub issue. Instead, send an email to [email protected] and encrypt your emails using PGP key 4ED6CD61932B9EBE.

Feature Requests and Bug Reports

Bug reports and feature requests should be reported in the issue tracker. Look through the issue tracker to see if your bug report/feature request was not already reported. Don't forget to look through the closed issues, as your request might have been already fulfilled. But if in doubt, please file an issue anyway!

Patches/Pull Requests

If you are looking for a place to start contributing, take a look at the issues labeled good first issue and docs on the issue tracker. Contributions that modernize the C++ and clean up the codebase are also great places to start.

Remember to write clear and concise commit messages describing your changes and make sure to reference any issues and/or other commits. An example of a well written commit message can be found here.

Please follow our style guide when contributing code. See also the Newsboat hacker's guide.

Patches can be submitted by sending a GitHub Pull Request or emailing a patch to the Newsboat mailing list ([email protected]). To learn more about patches, see here and here. To learn more about pull requests, see the GitHub docs.

Building

Newsboat can be built by running:

$ make -jN

Where N is again the number of threads you want to use.

Newsboat can also be built in Docker.

Testing

When contributing code, it's wise to test your code to ensure it it hasn't broken existing functionality. This can by done by running:

$ TMPDIR=/dev/shm make -j5 PROFILE=1 check

The 5 here is the number of CPU cores in your machine plus one. This parallelises the build. Rust tests already utilize as many cores as they can, but if you want to limit them, use the RUST_TEST_THREADS environment variable. /dev/shm is a "ramdisk", i.e. a virtual disk stored in the RAM. The tests create a lot of temporary files, and benefit from fast storage; a ramdisk is even better than an SSD.

Documentation

Fixing and/or adding documentation is an easy way to get involved. The Newsboat documentation can be found in doc/ and related issues can be found under the docs label in the issue tracker. New features that are added should also be documented.

Translations

Fixing and/or adding translations helps localize Newsboat to different regions around the globe. Translations for the Newsboat interface can be found in po/ and related issues can be found under the i18n tag in the issue tracker.