In general, your code should:
- Maintain the quality, style and standard of code for contributions to any existing repository and/or establish them based on commonly used/accepted standards.
- Always build with the assumption that other teams or individuals will contribute to your codebase. Write your code in a way that is easy to understand and collobrate with others on.
- Consider overall design and architecture - features are not built in isolation.
- Code must not introduce any unintentional regressions, meaning it should not break anything that is already fully functional. If regressions are introduced, these should be clearly documented, along with reasons as to why.
- Where approriate, be well tested.
- Where appropriate, have user-facing documentation that is written in a concise and easy to read manner for the intended user.
- How will developers or existing Flow users benefit from your solution?
- Is your solution well documented and written in a way that makes it easy for others to understand and contribute?
- Is your solution clear, accurate, and comprehensive to the problem you are solving?
- How easy is your solution to use and/or integrate (if applicable)?
- Is your solution written in a way that is (or considers) stability, maintainability, and extensibility?
- Does your code contain best practices of the language used? Does it adhere to the standards and contribution guidelines of the maintainers?
Along with the above criteria, each individual issue has its own set of requirements which must be followed.