You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: decisions/2025-07-10-decision-assets.md
+13-7Lines changed: 13 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,20 +31,23 @@ The current project structure includes a `decisions/` folder for storing archite
31
31
32
32
All decision-related assets MUST be stored in the `decisions/assets/` folder and MUST be directly linked within decision documents using relative paths.
33
33
34
-
### Storage Requirements:
34
+
### Storage Requirements
35
+
35
36
- All assets supporting architectural decisions (diagrams, images, PDFs, etc.) MUST be placed in `decisions/assets/`
36
37
- Asset filenames SHOULD use their original names without requiring any specific naming convention
37
38
- Assets MAY be organized into subdirectories within `decisions/assets/` if needed for better organization
38
39
39
-
### Linking Requirements:
40
+
### Linking Requirements
41
+
40
42
- All assets MUST be referenced using relative paths from the decision document
41
43
- Links MUST use the format: `[Asset Description](assets/filename.extension)` for files in the root assets folder
42
44
- For assets in subdirectories, use: `[Asset Description](assets/subdirectory/filename.extension)`
43
45
- Assets MUST be directly embedded or linked within the relevant decision document
44
46
- No external hosting or cloud storage links are permitted for decision assets
45
47
46
-
### Example Structure:
47
-
```
48
+
### Example Structure
49
+
50
+
```txt
48
51
decisions/
49
52
├── 2025-07-10-decision-assets.md
50
53
├── 2025-07-10-database-architecture.md
@@ -53,7 +56,8 @@ decisions/
53
56
├── performance-analysis.pdf
54
57
```
55
58
56
-
### Example Linking:
59
+
### Example Linking
60
+
57
61
```markdown
58
62
The proposed database schema is illustrated in the following diagram:
59
63
@@ -64,14 +68,16 @@ For detailed performance analysis, refer to the [Performance Analysis Report](as
64
68
65
69
## Consequences
66
70
67
-
### Positive Consequences:
71
+
### Positive Consequences
72
+
68
73
-**Centralized Asset Management**: All decision-related assets are stored in a single, predictable location
69
74
-**Version Control**: Assets are version-controlled alongside the decision documents
70
75
-**Accessibility**: Assets remain accessible even when working offline or in different environments
71
76
-**Maintenance**: Easier to maintain and update assets as they're co-located with decisions
72
77
-**Documentation Integrity**: Direct linking ensures assets and decisions remain connected
73
78
74
-
### Potential Risks:
79
+
### Potential Risks
80
+
75
81
-**Repository Size**: Large assets may increase repository size, though this is manageable with proper asset optimization
76
82
-**Binary File Management**: Git may not handle large binary files efficiently, but this can be mitigated with Git LFS if needed
77
83
-**Asset Duplication**: Same assets might be referenced by multiple decisions, though this ensures each decision remains self-contained
- **Mode**: `ManualDeployment` - Provides full control over when versions are incremented and tagged
50
52
- **Workflow**: `TrunkBased/preview1` - Optimized for trunk-based development with feature previews
51
53
- **MSBuild Integration**: `GitVersion.MsBuild` package automatically injects version information into all projects during build
52
54
- **Conventional Commits Integration**: Version bump rules are configured to parse conventional commit messages and determine appropriate semantic version increments
53
55
- **Target Framework Workaround**: Temporary configuration to use `net9.0` for GitVersion processing until full .NET 10 support is available
54
56
55
57
**Version Increment Rules:**
58
+
56
59
- **Major Version**: Triggered by breaking changes (commits with `!` or `BREAKING CHANGE:` footer)
57
60
- **Minor Version**: Triggered by `feat:` commits (new features)
- GitVersion.MsBuild automatically provides version properties to all projects
62
66
- Version information is embedded in assemblies, packages, and other artifacts
63
67
- No manual version management required in project files
64
68
65
69
## Consequences
66
70
67
71
**Positive Consequences:**
72
+
68
73
1. **Automated version calculation**: Version numbers are automatically calculated from git history and conventional commit messages, eliminating manual version management
69
74
2. **Consistent versioning**: All project artifacts automatically use the same calculated version, ensuring consistency across builds and deployments
70
75
3. **CI/CD integration**: Build pipelines can reliably access version information for package creation, tagging, and deployment processes
@@ -74,13 +79,15 @@ workflow: TrunkBased/preview1
74
79
7. **Audit trail**: Version increments are directly traceable to specific commits and their semantic meaning
75
80
76
81
**Potential Challenges:**
82
+
77
83
1. **Learning curve**: Developers need to understand how conventional commits impact version calculation
78
84
2. **Commit message discipline**: Incorrect commit message formats can lead to inappropriate version increments
79
85
3. **Build complexity**: Additional dependency in the build process that requires understanding for troubleshooting
80
86
4. **Preview versions**: Pre-release and preview version handling requires careful configuration and understanding
81
87
5. **Rollback scenarios**: Complex version rollback situations may require manual intervention
82
88
83
89
**Risk Mitigation:**
90
+
84
91
- Implement commit message validation to ensure proper conventional commit format
85
92
- Provide clear documentation and training on conventional commits and their version impact
86
93
- Configure appropriate branch and tag patterns for different deployment scenarios
0 commit comments