{"id":21530673,"url":"https://github.com/dailydevops/defaults","last_synced_at":"2026-01-05T01:06:45.379Z","repository":{"id":263460529,"uuid":"890446538","full_name":"dailydevops/defaults","owner":"dailydevops","description":"Source Only package, which provides the standard configurations and settings for the NetEvolve projects. Such as `.editorconfig`, build props and targets.","archived":false,"fork":false,"pushed_at":"2025-04-09T05:46:35.000Z","size":271,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-10T00:13:09.220Z","etag":null,"topics":["codingstandards","configurations","dotnet","editorconfig","props","targets"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dailydevops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["dailydevops"]}},"created_at":"2024-11-18T15:26:06.000Z","updated_at":"2025-04-09T05:42:50.000Z","dependencies_parsed_at":"2024-11-18T17:58:44.651Z","dependency_job_id":"95ab816e-3542-475f-96b4-394672688a22","html_url":"https://github.com/dailydevops/defaults","commit_stats":null,"previous_names":["dailydevops/defaults"],"tags_count":35,"template":false,"template_full_name":"dailydevops/dotnet-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dailydevops%2Fdefaults","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dailydevops%2Fdefaults/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dailydevops%2Fdefaults/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dailydevops%2Fdefaults/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dailydevops","download_url":"https://codeload.github.com/dailydevops/defaults/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131315,"owners_count":21052819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codingstandards","configurations","dotnet","editorconfig","props","targets"],"created_at":"2024-11-24T02:09:37.287Z","updated_at":"2026-01-05T01:06:45.374Z","avatar_url":"https://github.com/dailydevops.png","language":"C#","readme":"# NetEvolve.Defaults\n\nNetEvolve.Defaults is a comprehensive enterprise-grade build automation and configuration platform that establishes consistent development standards across all NetEvolve projects. It provides unified build properties, standardized configuration files, integrated code analysis, and development guidelines that enforce quality, consistency, and best practices throughout your entire project ecosystem.\n\n## Overview\n\nThis repository contains a complete infrastructure for maintaining code quality and consistency across distributed teams and projects. It encompasses:\n\n### Core Components\n\n- **[NetEvolve.Defaults](https://www.nuget.org/packages/NetEvolve.Defaults)**: The foundational build configuration package providing MSBuild properties, targets, and shared settings\n- **[NetEvolve.Defaults.Analyzer](https://www.nuget.org/packages/NetEvolve.Defaults.Analyzer)**: A comprehensive Roslyn-based diagnostic analyzer enforcing NuGet package quality standards\n- **Build \u0026 Configuration Files**: Centralized editor configuration, version management, and continuous integration settings\n\n### Key Features\n\n- **Centralized Build Configuration**: Unified project settings and compilation options for single and multi-targeted projects\n- **Code Analysis \u0026 Quality Enforcement**: Automated static analysis with Roslyn analyzers and code style enforcement via `.editorconfig`\n- **Modern Language Features**: C# 13 language features with nullable reference types, implicit usings, and file-scoped namespaces\n- **Continuous Integration Support**: Automatic detection and optimization for CI/CD environments with GitVersion integration\n- **NuGet Security Auditing**: Integrated vulnerability scanning for package dependencies via NuGet Audit\n- **Semantic Versioning**: Automated semantic versioning powered by GitVersion for consistent version management\n- **Package Quality Standards**: Enforced NuGet metadata validation ensuring professional package documentation and discoverability\n- **Multi-Framework Support**: Seamless configuration for projects targeting multiple .NET frameworks\n\n## Quick Start\n\n### Installation\n\nInstall the core package in your project:\n\n```bash\ndotnet add package NetEvolve.Defaults\n```\n\nFor enhanced package quality validation, also add the analyzer:\n\n```bash\ndotnet add package NetEvolve.Defaults.Analyzer\n```\n\n### Manual Configuration\n\nAdd to your project file (`.csproj`, `.fsproj`, or `.vbproj`):\n\n```xml\n\u003cItemGroup\u003e\n  \u003cPackageReference Include=\"NetEvolve.Defaults\" Version=\"x.x.x\" PrivateAssets=\"all\" /\u003e\n  \u003cPackageReference Include=\"NetEvolve.Defaults.Analyzer\" Version=\"x.x.x\" PrivateAssets=\"all\" /\u003e\n\u003c/ItemGroup\u003e\n```\n\nThe `PrivateAssets=\"all\"` attribute ensures that these build utilities are only applied to your project and not propagated to consumers of your packages.\n\n## Repository Structure\n\n```\ndefaults/\n├── src/\n│   ├── NetEvolve.Defaults/           # Core build configuration package\n│   └── NetEvolve.Defaults.Analyzer/  # NuGet package quality analyzer\n├── tests/\n│   └── NetEvolve.Defaults.Tests.Integration/  # Integration tests\n├── docs/\n│   └── usage/                        # Diagnostic rule documentation\n├── decisions/                        # Architectural decision records\n├── .github/                          # GitHub workflows and instructions\n├── Directory.Packages.props          # Centralized NuGet version management\n├── Directory.Build.props             # Global MSBuild properties\n├── Directory.Build.targets           # Global MSBuild targets\n└── GitVersion.yml                    # Semantic versioning configuration\n```\n\n## Included Packages\n\n### NetEvolve.Defaults\n\nThe foundational package providing standardized build settings:\n\n- **MSBuild Properties \u0026 Targets**: Consistent compilation configuration across all projects\n- **Editor Configuration**: Standardized code style rules via `.editorconfig`\n- **Analyzer Settings**: Pre-configured Roslyn analyzer rules matching enterprise standards\n- **NuGet Audit Integration**: Automated security vulnerability scanning\n- **Language Configuration**: Modern C# language features with sensible defaults\n\n[Learn more about NetEvolve.Defaults →](https://www.nuget.org/packages/NetEvolve.Defaults)\n\n### NetEvolve.Defaults.Analyzer\n\nComprehensive diagnostic analyzer for NuGet package quality:\n\n- **Package Metadata Validation**: Ensures complete and professional package information\n- **Repository Configuration**: Validates repository URLs, issue trackers, and licensing\n- **Build Standards Enforcement**: Verifies compliance with modern build patterns\n- **Real-Time Diagnostics**: Immediate feedback during development with actionable fixes\n- **9+ Diagnostic Rules**: Covering critical package configuration aspects\n\n[Learn more about NetEvolve.Defaults.Analyzer →](https://www.nuget.org/packages/NetEvolve.Defaults.Analyzer)\n\n## Diagnostic Rules\n\nThe analyzer package enforces standardized quality checks via diagnostic rules. For detailed documentation on all rules and remediation steps:\n\n- [NED0001-NED0009 Rules Documentation](https://github.com/dailydevops/defaults/tree/main/docs/usage)\n- [Diagnostic Configuration Guide](https://github.com/dailydevops/defaults/tree/main/src/NetEvolve.Defaults.Analyzer#diagnostic-rules)\n\n## Configuration \u0026 Customization\n\nAll settings can be customized through:\n\n1. **Project File Properties**: Override specific settings in individual `.csproj` files\n2. **Directory.Build.props**: Apply settings across all projects in a solution\n3. **.editorconfig**: Customize code style and formatting rules\n4. **.github/instructions**: Apply project-specific guidelines and conventions\n\n### Common Customizations\n\n**Enable Preview Language Features:**\n```xml\n\u003cPropertyGroup\u003e\n  \u003cLangVersion\u003epreview\u003c/LangVersion\u003e\n\u003c/PropertyGroup\u003e\n```\n\n**Disable Nullable Reference Types (Not Recommended):**\n```xml\n\u003cPropertyGroup\u003e\n  \u003cNullable\u003edisable\u003c/Nullable\u003e\n\u003c/PropertyGroup\u003e\n```\n\n**Customize Target Frameworks:**\n```xml\n\u003cPropertyGroup\u003e\n  \u003cTargetFrameworks\u003enet8.0;net9.0\u003c/TargetFrameworks\u003e\n\u003c/PropertyGroup\u003e\n```\n\n## Best Practices\n\n1. **Use PrivateAssets=\"all\"**: Ensures build tools don't leak into package consumers\n2. **Enable Nullable Reference Types**: Improves type safety and reduces null reference exceptions\n3. **Use Implicit Usings**: Reduces boilerplate and improves code readability\n4. **Configure Complete Metadata**: Ensure all NuGet package properties are set for discoverability\n5. **Run Analyzers Regularly**: Address diagnostics during development, not at release time\n6. **Test Multi-Framework Projects**: Verify code works across all target frameworks\n\n## Architectural Decisions\n\nThis project follows architectural principles documented in the [decisions/](https://github.com/dailydevops/defaults/tree/main/decisions) folder. Key decision areas include:\n\n- **Folder Structure \u0026 Naming Conventions**: Consistent project organization\n- **Centralized Package Management**: Single source of truth for NuGet versions\n- **English as Project Language**: All code, documentation, and comments in English\n- **.NET 10 \u0026 C# 13 Adoption**: Modern language features and runtime support\n- **Conventional Commits**: Structured commit messages for automated versioning\n- **GitVersion Integration**: Automated semantic versioning from git history\n\nFor more details, see [Architectural Decisions](https://github.com/dailydevops/defaults/tree/main/decisions).\n\n## Contributing\n\nContributions are welcome! When contributing to this project:\n\n1. Follow the existing code style and conventions\n2. Ensure all diagnostic analyzers pass without warnings\n3. Update relevant documentation\n4. Follow [Conventional Commits](https://www.conventionalcommits.org/) format for commit messages\n5. Add tests for new functionality\n\n## Support\n\nFor issues, feature requests, or questions:\n\n- [GitHub Issues](https://github.com/dailydevops/defaults/issues)\n- [GitHub Discussions](https://github.com/dailydevops/defaults/discussions)\n\n## Documentation\n\n- [NetEvolve.Defaults Documentation](https://www.nuget.org/packages/NetEvolve.Defaults)\n- [NetEvolve.Defaults.Analyzer Documentation](https://www.nuget.org/packages/NetEvolve.Defaults.Analyzer)\n- [Diagnostic Rules Reference](https://github.com/dailydevops/defaults/tree/main/docs/usage)\n- [Architectural Decisions](https://github.com/dailydevops/defaults/tree/main/decisions)\n\n## License\n\nThis project is licensed under the [MIT License](https://github.com/dailydevops/defaults/blob/main/LICENSE).","funding_links":["https://github.com/sponsors/dailydevops"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdailydevops%2Fdefaults","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdailydevops%2Fdefaults","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdailydevops%2Fdefaults/lists"}