Michael Ekstrand edited this page Mar 13, 2017 · 28 revisions

LensKit is an open-source toolkit for building, researching, and studying recommender systems. This is the entry point for LensKit's general documentation, both for using it and developing it.

This wiki focuses on documentation related to developing LensKit. For information on downloading and using LensKit, see the LensKit home page.

We love to receive contributions to LensKit. There are many ways you can help:

  • Write documentation in the wiki (here)
  • Fix bugs
  • Write and clean up API documentation
  • Implement new algorithms, either in the LensKit source tree or as external add-ons (which we highly encourage)

If you want to fix a bug or make an improvement to LensKit, do the following:

  1. Fork LensKit under your account on GitHub.
  2. Create a feature branch to contain your change. We generally start the names of such branches with feature/.
  3. Implement your change. If it addresses bugs, please mention the bug numbers in your commit messages (e.g. #556).
  4. Make sure all the tests pass - run ./gradlew check.
  5. Push the change to your GitHub repository.
  6. Submit a pull request from your feature branch to the LensKit master branch.

If you're looking for somewhere to start, we maintain a list of easy tickets that are good starting points for newcomers to the LensKit code base. We encourage you to just get started and submit pull requests - we'll catch design & style issues in code review. And feel free to discuss issues in their comments or on the mailing list.

We also have a variety of documents that are hopefully useful for contributors:

  • The README describes how to get the LensKit source code what is needed to start working with it.
  • The LensKit branching model (based on git-flow).
  • Code guidelines, describing the coding style we use.
  • Key Patterns we use in the LensKit code base (includes some naming convention notes).
  • DevStart describes how to set up an environment to work on the LensKit code.

If you want to make a code contribution, fork the main LensKit repository and submit a pull request. When submitting a pull request via GitHub, you warrant that you either own the code or have appropriate authority to submit it, and license your changes under LensKit's copyright license (LGPLv2.1+).