Project

General

Profile

Actions

Contributing to Exiv2 » History » Revision 1

Revision 1/14 | Next »
Robin Mills, 12 Apr 2015 13:24
#1055


Contributing to Exiv2

All help is appreciated. And you don't need to be a C++ Expert. Testing, forum correspondance, documentation, build, test and other skills are all very useful.

Principles:
  1. Make code as simple as possible
  2. Shorter code is almost always better
  3. Every time you find a bug, update the code AND the test harness
  4. Every time you find a bug, consider if there are more instances of the same fault and fix them.
  5. Deal with things immediately. Avoid putting things off for another day. There will never be more time than today.
  6. Always inspect the build server when you've submitted code to be sure it has built and passed the test suite.
    http://exiv2.dyndns.org:8080
To apply these principles:
  1. Look for patterns in the code and refactor them into functions.
  2. Only use MACROs for simple things. (Professor Stoudstroup would say NEVER use macros).
  3. Eliminate constants in the code. Put them into the header file as a #define or enum to give it a symbolic name.
  4. Be consistent. (that mostly follows from refactoring into functions).
Asking for help and code review:
  1. Robin is available on Saturday afternoon in England for 1-to-1 with team members via Skype/Hangout/FaceTime.
  2. If you have to delay anything by more than a day, log an issue in Redmine to be certain it isn't forgotten.
  3. Read the Forum and contribute. Everybody who asks a question might become a contributor. Courtesy earns rewards.
Best Practice
  1. Most of the code in Exiv2 is beautiful and for that we have to thank Andreas. Read the code. Copy the style.
  2. If in doubt, please ask for help. Remember, Exiv2 is used by millions of people. As a team our strength comes from working together.

Updated by Robin Mills over 6 years ago · 1 revisions