Skip to content

Latest commit

 

History

History
55 lines (35 loc) · 3.09 KB

CONTRIBUTING.md

File metadata and controls

55 lines (35 loc) · 3.09 KB

Contributing

In general

Your contribution to the DryIoc project and extensions is highly appreciated, and will help to evolve the project.

You may help via:

  • Commenting on existing issues
  • Opening new issues for bugs, enhancements, and feature proposals
  • Creating Pull Requests with improvements, failed tests for the found bugs, and bug fixes
  • Correcting documentation errors and submitting new documentation topics
  • Asking and answering questions on StackOverflow, tagging your questions with dryioc tag for easy finding
  • Discussing the problems and ideas in Gitter or Slack rooms
  • Poking me on Twitter

How to report an issue step-by-step

If you found the problem with DryIoc:

  • Please check that you are using the latest DryIoc version.
  • Create new issue with problem description.
  • To get faster feedback, faster fixes, and generally to make me happy :-)
    • Fork DryIoc
    • Add failing tests reproducing your case to test\DryIoc.IssuesTests project. Check other files in the project for general guideline, but nothing is strict here.
    • Ignore the failing tests with [Ignore("todo: fix me")] attribute, so that CI build pass.
    • Commit your tests and create a Pull Request for me to review.

Thank you!

How to build and develop the DryIoc

Build from the command line

Before sending a Pull Request, please build solution with build.bat located in the root folder.

It will build all projects, run unit tests, and create NuGet packages. Make sure that there are no project build errors or failing tests.

Develop in Visual Studio 2017

  • Open DryIoc.sln solution and re-build it. If something is failing, you may try to close VS, open command line and run dotnet clean, then build.bat in solution folder, open VS and try to build again.
  • Projects in solution multi-target multiple platforms, e.g. DryIoc targets 6+ platforms which makes it slower to build. To speedup development you may:
    • Set <DevMode>true</DevMode> to true in Directory.Build.props file in solution root folder. This setting will set projects to target a single platform: .Net Standard for libraries and .Net Core for tests.
    • Re-build solution as described in step 1.
    • Don't forget to set <DevMode>false</DevMode> back to false when publishing your changes.

Productivity hint: Usually I am using NCrunch to build and run tests continuously, to get an immediate feedback, quickly find regressions, and generally experiment with code.

Develop in Visual Studio Code

It is possible to develop and even run tests (via plugin) in VS Code, but only with <DevMode>true</DevMode> set to true in Directory.Build.props file in solution root folder.