Skip to content

Commit a47464c

Browse files
committed
docs: Added READMEs
1 parent e259bb9 commit a47464c

3 files changed

Lines changed: 344 additions & 2 deletions

File tree

README.md

Lines changed: 154 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,154 @@
1-
# template-dotnet
2-
.NET template for repositories
1+
# ProjectBuilders
2+
3+
[![License](https://img.shields.io/github/license/dailydevops/projectbuilders.svg)](LICENSE)
4+
[![Build Status](https://img.shields.io/github/actions/workflow/status/dailydevops/projectbuilders/ci.yml?branch=main)](https://github.com/dailydevops/projectbuilders/actions)
5+
ProjectBuilders is a .NET solution providing libraries and utilities for programmatically building, managing, and testing .NET project structures. It is designed for developers, tool authors, and CI/CD engineers who need to automate .NET project scaffolding, configuration, and test environment setup. The solution aims to simplify the creation and management of .NET projects and their test environments, supporting modern .NET development workflows.
6+
7+
## Overview
8+
9+
This solution contains multiple projects organized into a cohesive architecture:
10+
11+
- **Core Libraries**: Foundation for project building and shared abstractions
12+
- **Test Utilities**: Helpers and fixtures for integration with TUnit and xUnit
13+
- **Test Projects**: Comprehensive unit and integration tests for all components
14+
15+
## Projects
16+
17+
### Core Libraries
18+
19+
- [**NetEvolve.ProjectBuilders**](src/NetEvolve.ProjectBuilders/README.md) - Core library for programmatic .NET project building and management
20+
21+
### Test Utilities
22+
23+
- [**NetEvolve.ProjectBuilders.TUnit**](src/NetEvolve.ProjectBuilders.TUnit/README.md) - Test utilities for TUnit-based projects
24+
- [**NetEvolve.ProjectBuilders.XUnit**](src/NetEvolve.ProjectBuilders.XUnit/README.md) - Test utilities for xUnit-based projects
25+
26+
### Tests
27+
28+
- **NetEvolve.ProjectBuilders.Tests.Unit** - Unit tests for core components
29+
- **NetEvolve.ProjectBuilders.Tests.Integration** - Integration tests for core components
30+
- **NetEvolve.ProjectBuilders.TUnit.Tests.Integration** - Integration tests for TUnit utilities
31+
- **NetEvolve.ProjectBuilders.XUnit.Tests.Integration** - Integration tests for xUnit utilities
32+
33+
## Features
34+
35+
- Programmatic creation and manipulation of .NET project files
36+
- Utilities for managing solution and project references
37+
- Helpers for test environment setup and teardown
38+
- Extensible abstractions for custom project builders
39+
40+
## Getting Started
41+
42+
### Prerequisites
43+
44+
- [.NET SDK 10.0](https://dotnet.microsoft.com/download) or higher
45+
- [Git](https://git-scm.com/) for version control
46+
- [Visual Studio 2022](https://visualstudio.microsoft.com/) or [Visual Studio Code](https://code.visualstudio.com/) (recommended)
47+
48+
### Installation
49+
50+
1. Clone the repository:
51+
52+
```bash
53+
git clone https://github.com/dailydevops/projectbuilders.git
54+
cd projectbuilders
55+
```
56+
57+
### Configuration
58+
59+
No additional configuration is required for basic usage.
60+
61+
## Development
62+
63+
### Building
64+
65+
```bash
66+
dotnet build
67+
```
68+
69+
### Running Tests
70+
71+
```bash
72+
# Run all tests
73+
dotnet test
74+
75+
# Run specific test project
76+
dotnet test tests/NetEvolve.ProjectBuilders.Tests.Unit
77+
```
78+
79+
### Code Formatting
80+
81+
```bash
82+
# Format code using CSharpier
83+
csharpier format .
84+
```
85+
86+
### Project Structure
87+
88+
```txt
89+
src/ # Production code
90+
├── NetEvolve.ProjectBuilders/ # Core library
91+
├── NetEvolve.ProjectBuilders.TUnit/ # TUnit test utilities
92+
└── NetEvolve.ProjectBuilders.XUnit/ # xUnit test utilities
93+
94+
tests/ # Test projects
95+
├── NetEvolve.ProjectBuilders.Tests.Unit/ # Unit tests
96+
├── NetEvolve.ProjectBuilders.Tests.Integration/ # Integration tests
97+
├── NetEvolve.ProjectBuilders.TUnit.Tests.Integration/ # TUnit integration tests
98+
└── NetEvolve.ProjectBuilders.XUnit.Tests.Integration/ # xUnit integration tests
99+
100+
decisions/ # Architecture Decision Records (ADRs)
101+
templates/ # Documentation and file templates
102+
```
103+
104+
## Architecture
105+
106+
This solution follows modern .NET architectural patterns and best practices:
107+
108+
- **Clean Architecture**: Clear separation of concerns with dependencies pointing inward
109+
- **Dependency Injection**: Built-in .NET dependency injection throughout
110+
- **Extensible Abstractions**: Interfaces and extension points for custom builders
111+
- **SOLID Principles**: Object-oriented design with SOLID principles
112+
113+
For detailed architectural decisions, see the [Architecture Decision Records](decisions/).
114+
115+
## Contributing
116+
117+
We welcome contributions from the community! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting a pull request.
118+
119+
Key points:
120+
121+
- Follow the [Conventional Commits](https://www.conventionalcommits.org/) format for commit messages
122+
- Write tests for new functionality
123+
- Follow existing code style and conventions
124+
- Update documentation as needed
125+
126+
## Code of Conduct
127+
128+
This project adheres to the Contributor Covenant [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [info@daily-devops.net](mailto:info@daily-devops.net).
129+
130+
## Documentation
131+
132+
- **[Architecture Decision Records](decisions/)** - Detailed architectural decisions and rationale
133+
- **[Contributing Guidelines](CONTRIBUTING.md)** - How to contribute to this project
134+
- **[Code of Conduct](CODE_OF_CONDUCT.md)** - Community standards and expectations
135+
- **[License](LICENSE)** - Project licensing information
136+
137+
## Versioning
138+
139+
This project uses [GitVersion](https://gitversion.net/) for automated semantic versioning based on Git history and [Conventional Commits](https://www.conventionalcommits.org/). Version numbers are automatically calculated during the build process.
140+
141+
## Support
142+
143+
- **Issues**: Report bugs or request features on [GitHub Issues](https://github.com/dailydevops/projectbuilders/issues)
144+
- **Documentation**: Read the full documentation in this repository
145+
146+
## License
147+
148+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
149+
150+
---
151+
152+
> [!NOTE]
153+
> **Made with ❤️ by the NetEvolve Team**
154+
> Visit us at [https://www.daily-devops.net](https://www.daily-devops.net) for more information about our services and solutions.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# NetEvolve.ProjectBuilders.TUnit
2+
3+
[![NuGet Version](https://img.shields.io/nuget/v/NetEvolve.ProjectBuilders.TUnit.svg)](https://www.nuget.org/packages/NetEvolve.ProjectBuilders.TUnit/)
4+
[![NuGet Downloads](https://img.shields.io/nuget/dt/NetEvolve.ProjectBuilders.TUnit.svg)](https://www.nuget.org/packages/NetEvolve.ProjectBuilders.TUnit/)
5+
[![License](https://img.shields.io/github/license/dailydevops/projectbuilders.svg)](https://github.com/dailydevops/projectbuilders/blob/main/LICENSE)
6+
7+
Test utilities for TUnit-based .NET projects, providing helpers for temporary directory management and test environment setup.
8+
9+
## Features
10+
11+
- Temporary directory management for integration tests
12+
- Utilities for test environment setup and teardown
13+
- Seamless integration with TUnit test framework
14+
15+
## Installation
16+
17+
### NuGet Package Manager
18+
19+
```powershell
20+
Install-Package NetEvolve.ProjectBuilders.TUnit
21+
```
22+
23+
### .NET CLI
24+
25+
```bash
26+
dotnet add package NetEvolve.ProjectBuilders.TUnit
27+
```
28+
29+
### PackageReference
30+
31+
```xml
32+
<PackageReference Include="NetEvolve.ProjectBuilders.TUnit" />
33+
```
34+
35+
## Quick Start
36+
37+
```csharp
38+
using NetEvolve.ProjectBuilders.TUnit;
39+
40+
// Use TemporaryDirectory in your TUnit tests
41+
using (var tempDir = new TemporaryDirectory())
42+
{
43+
// Arrange test files in tempDir.Path
44+
}
45+
```
46+
47+
## Usage
48+
49+
### Basic Example
50+
51+
```csharp
52+
// Create a temporary directory for a test
53+
using (var tempDir = new TemporaryDirectory())
54+
{
55+
// Use tempDir.Path for test files
56+
}
57+
```
58+
59+
## Requirements
60+
61+
- .NET 8.0 or higher
62+
- [TUnit](https://www.nuget.org/packages/TUnit/)
63+
64+
## Related Packages
65+
66+
- [**NetEvolve.ProjectBuilders**](https://www.nuget.org/packages/NetEvolve.ProjectBuilders/) - Core project builder utilities
67+
- [**NetEvolve.ProjectBuilders.XUnit**](https://www.nuget.org/packages/NetEvolve.ProjectBuilders.XUnit/) - Test utilities for xUnit
68+
69+
## Documentation
70+
71+
For complete documentation, please visit the [official documentation](https://github.com/dailydevops/projectbuilders/blob/main/README.md).
72+
73+
## Contributing
74+
75+
Contributions are welcome! Please read the [Contributing Guidelines](https://github.com/dailydevops/projectbuilders/blob/main/CONTRIBUTING.md) before submitting a pull request.
76+
77+
## Support
78+
79+
- **Issues**: Report bugs or request features on [GitHub Issues](https://github.com/dailydevops/projectbuilders/issues)
80+
- **Documentation**: Read the full documentation at [https://github.com/dailydevops/projectbuilders](https://github.com/dailydevops/projectbuilders)
81+
82+
## License
83+
84+
This project is licensed under the MIT License - see the [LICENSE](https://github.com/dailydevops/projectbuilders/blob/main/LICENSE) file for details.
85+
86+
---
87+
88+
> [!NOTE]
89+
> **Made with ❤️ by the NetEvolve Team**
90+
> Visit us at [https://www.daily-devops.net](https://www.daily-devops.net) for more information about our services and solutions.
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# NetEvolve.ProjectBuilders.XUnit
2+
3+
[![NuGet Version](https://img.shields.io/nuget/v/NetEvolve.ProjectBuilders.XUnit.svg)](https://www.nuget.org/packages/NetEvolve.ProjectBuilders.XUnit/)
4+
[![NuGet Downloads](https://img.shields.io/nuget/dt/NetEvolve.ProjectBuilders.XUnit.svg)](https://www.nuget.org/packages/NetEvolve.ProjectBuilders.XUnit/)
5+
[![License](https://img.shields.io/github/license/dailydevops/projectbuilders.svg)](https://github.com/dailydevops/projectbuilders/blob/main/LICENSE)
6+
7+
Test utilities for xUnit-based .NET projects, providing helpers for temporary directory management and test environment setup.
8+
9+
## Features
10+
11+
- Temporary directory management for integration tests
12+
- Utilities for test environment setup and teardown
13+
- Seamless integration with xUnit test framework
14+
15+
## Installation
16+
17+
### NuGet Package Manager
18+
19+
```powershell
20+
Install-Package NetEvolve.ProjectBuilders.XUnit
21+
```
22+
23+
### .NET CLI
24+
25+
```bash
26+
dotnet add package NetEvolve.ProjectBuilders.XUnit
27+
```
28+
29+
### PackageReference
30+
31+
```xml
32+
<PackageReference Include="NetEvolve.ProjectBuilders.XUnit" />
33+
```
34+
35+
## Quick Start
36+
37+
```csharp
38+
using NetEvolve.ProjectBuilders.XUnit;
39+
40+
// Use TemporaryDirectoryFixture in your xUnit tests
41+
public class MyTests : IClassFixture<TemporaryDirectoryFixture>
42+
{
43+
private readonly TemporaryDirectoryFixture _fixture;
44+
public MyTests(TemporaryDirectoryFixture fixture)
45+
{
46+
_fixture = fixture;
47+
}
48+
// Use _fixture.Directory for test files
49+
}
50+
```
51+
52+
## Usage
53+
54+
### Basic Example
55+
56+
```csharp
57+
// Use TemporaryDirectoryFixture in xUnit tests
58+
public class ExampleTests : IClassFixture<TemporaryDirectoryFixture>
59+
{
60+
private readonly TemporaryDirectoryFixture _fixture;
61+
public ExampleTests(TemporaryDirectoryFixture fixture)
62+
{
63+
_fixture = fixture;
64+
}
65+
// Use _fixture.Directory for test files
66+
}
67+
```
68+
69+
## Requirements
70+
71+
- .NET 8.0 or higher
72+
- [xUnit](https://www.nuget.org/packages/xunit/)
73+
74+
## Related Packages
75+
76+
- [**NetEvolve.ProjectBuilders**](https://www.nuget.org/packages/NetEvolve.ProjectBuilders/) - Core project builder utilities
77+
- [**NetEvolve.ProjectBuilders.TUnit**](https://www.nuget.org/packages/NetEvolve.ProjectBuilders.TUnit/) - Test utilities for TUnit
78+
79+
## Documentation
80+
81+
For complete documentation, please visit the [official documentation](https://github.com/dailydevops/projectbuilders/blob/main/README.md).
82+
83+
## Contributing
84+
85+
Contributions are welcome! Please read the [Contributing Guidelines](https://github.com/dailydevops/projectbuilders/blob/main/CONTRIBUTING.md) before submitting a pull request.
86+
87+
## Support
88+
89+
- **Issues**: Report bugs or request features on [GitHub Issues](https://github.com/dailydevops/projectbuilders/issues)
90+
- **Documentation**: Read the full documentation at [https://github.com/dailydevops/projectbuilders](https://github.com/dailydevops/projectbuilders)
91+
92+
## License
93+
94+
This project is licensed under the MIT License - see the [LICENSE](https://github.com/dailydevops/projectbuilders/blob/main/LICENSE) file for details.
95+
96+
---
97+
98+
> [!NOTE]
99+
> **Made with ❤️ by the NetEvolve Team**
100+
> Visit us at [https://www.daily-devops.net](https://www.daily-devops.net) for more information about our services and solutions.

0 commit comments

Comments
 (0)