Menu

DevelopmentOverview

Christoph Schwarz

Development overview

The project structure

  • Project management defines processes, tasks and milestones
  • Merge manager ensures that source code stays in sync with the original Valgrind
  • Developers carry out individual tasks
  • Testers verify completed tasks
  • Release manager creates and publishes releases as soon as milestones have been reached

The tools used

  • Wiki for technical and process documentation
  • Timeline, Roadmap, Task tickets for project management
  • Defect and Enhancement tickets for support
  • Mailing list for communication
  • SVN as source code repository

Development guidelines

  • subscribe to the valgrind4win-developers mailing list
    • this is the preferred method of communication
    • send all questions regarding this project to the mailing list
  • code is to stay in sync with the main valgrind trunk, which means changes to the valgrind trunk will be merged into Valgrind for Windows repository from time to time. Therefore:
    • do not make any changes for other platforms, such changes must be made in the main Valgrind trunk and then synced over to Valgrind for Windows trunk
    • stick with the formatting rules in use, if possible use the Eclipse project that comes with defined formatters
    • do not reformat existing code
    • do not make changes to files that are not on the list of [CreatedAndModifiedFiles], without prior consultation with project management
  • code must compile with zero warnings
    • -Werror is in place, which means that every warning is an error and needs to be fixed in code
    • printf format checking using GNU formats is in place (use macros PRwx, PRdx, PRlx, ...)
  • code must build with both MinGW32 and MinGW64 tool chains
    • standard MinGW32 is used to create release versions for 32 bit Windows
    • MinGW64 (TDM-GCC) is used to create release versions for 64 bit Windows
    • if you are using MinGW64 as your primary build environment: check out a second source tree and configure it to produce 32 bit binaries only with gcc from MinGW rather than MinGW64/TDM-GCC (use the MinGW shell to for building this second source tree)
  • check the ticket system for current tasks
    • pick a task that is not taken yet
    • or come up with your own task and announce it to the mailing list. project management will then create an appropriate task

Related

Wiki: CommitPolicy
Wiki: CreatedAndModifiedFiles
Wiki: Home