Skip to content

Latest commit

History

History
85 lines (70 loc) 路 6.57 KB

File metadata and controls

85 lines (70 loc) 路 6.57 KB

How to contribute to Pure.DI

Thank you for your interest in contributing to the Pure.DI project! If you are planning a big change or feature, please open an issue first. That way, we can coordinate and understand whether the change fits current priorities and whether we can commit to reviewing and merging it within a reasonable timeframe. We do not want you to spend your valuable time on something that may not align with the direction of Pure.DI.

Contribution prerequisites: .NET SDK 10.0 or later installed.

This repository contains the following directories and files:

馃搧 .github                       GitHub related files and main.yml for building using GitGub actions
馃搧 .logs                         temporary files for generating the README.md file
馃搧 .run                          configuration files for the Rider IDE
馃搧 benchmarks                    projects for performance measurement
馃搧 build                         application for building locally and using CI/CD
馃搧 docs                          resources for the README.md file
馃搧 readme                        sample scripts and examples of application implementations
馃搧 samples                       sample projects
馃搧 src                           source codes of the code generator and all libraries
|- 馃搨 Pure.DI                    source code generator project
|- 馃搨 Pure.DI.Abstractions       abstraction library for Pure.DI
|- 馃搨 Pure.DI.Core               basic implementation of the source code generator
|- 馃搨 Pure.DI.MS                 project for integration with Microsoft DI
|- 馃搨 Pure.DI.Templates          project templates for creating .NET projects using Pure.DI
|- 馃搫 Directory.Build.props      common MSBUILD properties for all source code generator projects
|- 馃搫 Library.props              common MSBUILD properties for library projects such as Pure.DI.Abstractions
馃搧 tests                         contains projects for testing
|- 馃搨 Pure.DI.Example            project for testing some integration scenarios
|- 馃搨 Pure.DI.IntegrationTests   integration tests
|- 馃搨 Pure.DI.Tests              unit tests for basic functionality
|- 馃搨 Pure.DI.UsageTests         usage tests, used for examples in README.md
|- 馃搫 Directory.Build.props      common MSBUILD properties for all test projects
馃搫 LICENSE                       license file
馃搫 build.cmd                     Windows script file to run one of the build steps, see description below
馃搫 build.sh                      Linux/Mac OS script file to run one of the build steps, see description below
馃搫 .space.kts                    build file using JetBrains space actions
馃搫 README.md                     this README.md file
馃搫 SECURITY.md                   policy file for handling security bugs and vulnerabilities
馃搫 Directory.Build.props         basic MSBUILD properties for all projects
馃搫 Pure.DI.sln                   .NET solution file

The build logic is a regular .NET console application. You can use build.cmd and build.sh with the appropriate command parameters to perform all basic actions on the project, for example:

Commands Description
Generate AI context
bm Run benchmarks
c Compatibility checks
dp Package deployment
e Create examples
g Build and test the source code generator
i Install templates
l Build and test libraries
p Create NuGet packages
perf Performance tests
pb Publish the balazor web sssembly example
r Generate README.md
rel Get release information
t Create and deploy templates
te Test examples
u Upgrading the internal version of DI to the latest public version

For example, to build and test the source code generator:

./build.sh generator

or to run benchmarks:

./build.cmd benchmarks

If you are using the Rider IDE, it already has a set of configurations to run these commands. This project uses C# interactive build automation system for .NET. This tool helps to make .NET builds more efficient.

State of build

Tests Examples Performance
Tests Examples Performance

Thanks!