Contributing

How changes are proposed, the rules the code follows, and how to become a contributor.

Opensolr Photos is open source because we want it to get better in more hands than ours. Bug reports, fixes, features and documentation are all welcome.

Become a contributor

To join Opensolr Photos, or any other Opensolr open source project, write to support@opensolr.com. Tell us who you are, which project, and what you would like to work on. Anyone can open issues and pull requests on GitHub without asking first.

01 · How a change gets in
  1. Open an issue on GitHub describing the bug or the idea, so nobody does the same work twice.
  2. Fork the repository and create a branch for that one change.
  3. Make the change, following the conventions below, and build it (./gradlew assembleDebug) with no new warnings.
  4. Try it on a real phone: sign in, sync, search, and whatever your change touches.
  5. Update the documentation in docs/ in the same pull request when behaviour changes.
  6. Open a pull request saying what changed, why, and how you checked it.
02 · Conventions
  • Kotlin official style, 4-space indentation.
  • Documentation comments only: every class and function has a KDoc comment saying what it does and why; no comments inside function bodies. If a line needs explaining, give it a function with a good name.
  • Keep the layers: screens never talk to the network, net/ never touches the UI, and a photo's id is only ever computed by MediaScanner.photoId().
  • No new dependency without a reason in the pull request, and never one that sends data anywhere.
  • The design stays flat: two-pixel corners, one accent colour, hairlines instead of shadows, text no smaller than 14.
  • No attribution to code generators in commits, comments or documentation.
03 · Security rules every change keeps
  • User text reaches Solr only as a bound parameter; filter values only through the term parser with a bound value.
  • Secrets are stored only through SecureStore, and never logged, never put in a URL.
  • HTTPS only; no redirects followed on credentialed calls.
  • No analytics, advertising, tracking or crash-reporting code, ever.
  • The app only reads photos; it never writes, moves or deletes them.
  • A vulnerability is reported privately to support@opensolr.com, not in a public issue.
04 · Where to start

The project structure explains every folder and where each kind of change goes. Building from source gets the app onto your phone.

Opensolr Photos is open source and MIT licensed. Questions about your Opensolr account, index or plan go to opensolr.com/contact; questions about the app itself belong on GitHub.

Opensolr Photos Documentation