NeverTooManyBooks is a free, open-source Android app licensed under the GNU General Public License v3.0 (GPL-3.0). All contributions — whether bug reports, feature suggestions, or code changes — are genuinely welcome. Because the project is GPL-3.0, any code you contribute must be compatible with that license: it must be something you have the right to share under the same copyleft terms. The preferred channels for all communication are GitHub Issues and GitHub Pull Requests; there is no mailing list or forum. Translations are primarily managed through Weblate, but pull requests containing translation files are also accepted directly on GitHub.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tfonteyn/NeverTooManyBooks/llms.txt
Use this file to discover all available pages before exploring further.
GitHub Issues
Report bugs, request features, or start a discussion before writing code.
GitHub Releases
Browse the full release history and download any past or current APK.
The maintainer is best reached by logging a GitHub Issue. This keeps all
conversation in one place and makes it easy to track progress — private
emails or social-media messages may go unanswered.
Reporting Bugs
A clear, reproducible bug report is one of the most valuable contributions you can make. Before opening a new issue, search existing ones to avoid duplicates. When filing a bug report, always include:- Android version — e.g. Android 14 (API 34)
- App version — found in the app’s About screen (e.g. 7.16.1)
- Steps to reproduce — numbered, specific, and minimal
- Expected behaviour and actual behaviour
- Any relevant error messages or screenshots
Where do I find the app version?
Where do I find the app version?
Open the app, tap the three-dot overflow menu, choose About. The version
number (e.g.
7.16.1) is displayed there. Include this exact string in your
bug report so the maintainer can correlate it with the release changelog.Requesting Features
Before writing any code for a new feature, log a GitHub Issue first to discuss the idea. This avoids wasted effort if the feature conflicts with the project’s direction, has already been considered, or needs design input. The maintainer may suggest an alternative approach or point you to related existing work.Code Style
The project is written in Java 11 with Android desugaring enabled. The style is enforced by Checkstyle — the configuration lives incheckstyle.xml at the repository root and targets the Android Open Source code-style guide.
Key rules enforced by the project style:
- Formatting
- Annotations
- Maximum line length: 100 characters
- No tab characters — spaces only
- Files must end with a newline
- Encoding: UTF-8 throughout
Pull Request Workflow
Fork the repository
Go to github.com/tfonteyn/NeverTooManyBooks
and click Fork. Clone your fork locally.
Make changes, run Checkstyle and tests
Edit the code, then verify style and tests pass locally before committing.Ensure all public method parameters and return types carry
@NonNull or
@Nullable, and that thread annotations (@WorkerThread, @MainThread,
@AnyThread) are applied wherever threads are relevant.Open a Pull Request against `main`
Push your branch to your fork, then open a PR on GitHub targeting the
main branch of the upstream repository. In the PR description:- Reference any related GitHub Issue (e.g.
Closes #123) - Briefly describe what changed and why
- Note any areas you’d like the reviewer to pay special attention to
Translations are primarily managed through Weblate,
which handles synchronisation with the repository automatically. Pull requests
containing translation files are also accepted on GitHub if you prefer to work
locally with Android string resource files.