We are excited that you are looking to contribute to memri! This document helps you to become a great member of our community.
Getting an overview
Memri has a lot of moving parts, to explain what they are we wrote an article about it.
To install memri, have a look at our getting started blogpost
How to help
Understand and improve what we have
Good ways to learn our codebase and help the community at the same time are:
- Writing usage examples
- Writing tests
- Writing documentation
Extend what we have
Other, maybe more interesting ways to help is extending the functionalities in our ecosystem.
- Writing the interface for your data
- Writing downloaders that download your data from external datasources to your pod
- Writing indexers that enrich your data by applying models to it
Merge request guidelines
- Aim to have one MR per problem, and use branches enable that. If you are solving a new problem before the current MR is closed, create a new MR which does not include the changes it the first MR. If you get a request for changes for a MR, don’t submit a new MR but proceed within the existing MR
- Only create MR’s that change functionality. Don’t combine them with style changes, like whitespaces, symbol naming, etc.
Codestyling is highly subjective, and there are many highly acceptable approaches. We would love to collaborate on code, instead of discussing style choices. Also, we would like to create an environment where contributors do not try to force code style changes for existing code to comply with some style guide other than this document. Repositories in the Memri ecosystem may have specific code style guides, and they may apply that style as part of the CI process.
Symbol naming suggestions
- If some constructs in your code are used often, prefer short names
- For Swift we use Camel Case Classes, lowerCamelCase for everything else
- Code should be less wide than the number of characters on a small laptop screen. That means around 160 characters. Following this rule will mean very few people will need to scroll sideways to see your code.
- We encourage you to put multiple lines of code that do a single thing on one line, as long as things don't get too cluttered.
- Avoid trailing whitespace
For questions, feel free to reach out to us on the forum