Skip to content
This repository was archived by the owner on Feb 14, 2022. It is now read-only.

Latest commit

 

History

History
54 lines (36 loc) · 2.37 KB

File metadata and controls

54 lines (36 loc) · 2.37 KB

Contributing to StackInjector


Hello! If you're reading this it means you're interested in contributing to my repository!

First of all, thanks!

Principles

  • 📝 Always open an issue; or a discussion for a more open ended confrontation
  • Keep it simple. That's the philosophy i tried to follow when designing this library and it's what i hope will make it great to use!
  • Divide et impera. When it seems like too much, divide it into many small tasks!
  • Test driven. We do test-driven development. So write a test, and develop around it! Then write some more!

Branch naming rules

naming description examples
master default branch for documentation and major releases
rel/M holds pre and minor releases rel/2, rel/3
dev/** for development of a specific feature. Could be named after an issue dev/#69, dev/cleanup, dev/feature-name
fix/** used for bug fixing. Should be named after an issue fix/#70
doc/** used for documentation. Must be linear and merged with master. doc/README, doc/reorg

Code style

We follow Microsoft's coding conventions.

  • give explanatory and complete names
  • fields start with lowercase myFieldName
  • properties, classes and methods with uppercase SomeCoolMethod()
  • interfaces MUST start with an I
  • use tabs for indentation, spaces for alignment
  • APIs implementations must be internal

Tests

You can also help writing a new test! Find bugs! Try to break things!

Tests structure:

  • BlackBox: how the user would use the classes, without knowing the internal state
    • Features: tests for secondary features of StackWrappers
    • Use Cases: tests for possible irl use cases
  • External Assembly: an external empty project to test external assembly imports