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
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!
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.
- Open
DryIoc.sln
solution and re-build it. If something is failing, you may try to close VS, open command line and rundotnet clean
, thenbuild.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>
totrue
inDirectory.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 tofalse
when publishing your changes.
- Set
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.
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.