add anti-paterrns for code review

The developers of OpenBMC do not get 100% of decisions right 100% of the
time.  That, combined with the fact that software development is often
an exercise in copying and pasting, results in mistakes happening over
and over again.

Add a page that aims to document some of the anti-patterns that exist in
OpenBMC to ease the job of those reviewing code.  If an anti-pattern is
spotted, rather that repeating the same explanations over and over, a
link to this document can be provided.

Change-Id: Ie5efc1ef61a0b948330fa576eca09d5b6fa64751
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
1 file changed
tree: 792f43e3d0adff3f1c0bee08801d4bf5a530651c
  1. code-update/
  2. designs/
  3. development/
  4. logo/
  5. meetings/
  6. security/
  7. style/
  8. userguide/
  9. anti-patterns.md
  10. cheatsheet.md
  11. code-of-conduct.md
  12. console.md
  13. CONTRIBUTING.md
  14. cpp-style-and-conventions.md
  15. glossary.md
  16. host-management.md
  17. ipmi-architecture.md
  18. kernel-development.md
  19. LED-architecture.md
  20. LICENSE
  21. maintainer-workflow.md
  22. MAINTAINERS
  23. Makefile
  24. object-mapper.md
  25. openbmc-conversion.md
  26. openbmc-systemd.md
  27. README.md
  28. REDFISH-cheatsheet.md
  29. release_process.md
  30. rest-api.md
  31. REST-cheatsheet.md
  32. run-test-docker.md
  33. sensor-architecture.md
  34. subtree.md
  35. user_management.md
  36. yocto-development.md
README.md

OpenBMC documentation

This repository contains documentation for OpenBMC as a whole. There may be component-specific documentation in the repository for each component.

OpenBMC Usage

These documents describe how to use OpenBMC, including using the programmatic interfaces to an OpenBMC system.

OpenBMC Development

These documents contain details on developing OpenBMC code itself

OpenBMC Goals

The OpenBMC project's aim is to create a highly extensible framework for BMC software and implement for data-center computer systems.

We have a few high-level objectives:

  • The OpenBMC framework must be extensible, easy to learn, and usable in a variety of programming languages.

  • Provide a REST API for external management, and allow for "pluggable" interfaces for other types of management interactions.

  • Provide a remote host console, accessible over the network

  • Persist network configuration settable from REST interface and host

  • Provide a robust solution for RTC management, exposed to the host.

  • Compatible with host firmware implementations for basic IPMI communication between host and BMC

  • Provide a flexible and hierarchical inventory tracking component

  • Maintain a sensor database and track thresholds

Technical Steering Committee

  • Brad Bishop (chair), IBM
  • Nancy Yuen, Google
  • Sai Dasari, Facebook
  • James Mihm, Intel
  • Ali Larijani, Microsoft