Skip to content

Commit 70ffead

Browse files
Merge pull request #155 from SDNNetSim/release/6.0.0
release(v6.0.0): FUSION v6.0.0 stable release
2 parents 9af6e76 + d4b8dbb commit 70ffead

1,096 files changed

Lines changed: 629404 additions & 29461 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.DS_Store

10 KB
Binary file not shown.

.claude/settings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"claude_code_max_output_tokens": 64000
3+
}
4+

.github/COMMIT_MESSAGE_GUIDE.md

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
# Commit Message Guidelines
2+
3+
This project follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for consistent, readable commit messages.
4+
5+
## Format
6+
7+
```
8+
<type>(scope): <description>
9+
10+
[optional body]
11+
12+
[optional footer]
13+
```
14+
15+
## Commit Types
16+
17+
| Type | Purpose | Example |
18+
|------|---------|---------|
19+
| `feat` | New features | `feat(cli): add configuration validation` |
20+
| `fix` | Bug fixes | `fix(routing): resolve null pointer exception` |
21+
| `docs` | Documentation changes | `docs: update installation guide` |
22+
| `style` | Code style changes | `style(core): fix indentation and formatting` |
23+
| `refactor` | Code refactoring | `refactor(spectrum): simplify allocation logic` |
24+
| `perf` | Performance improvements | `perf(core): optimize request processing by 15%` |
25+
| `test` | Adding/updating tests | `test(routing): add unit tests for k-shortest path` |
26+
| `chore` | Maintenance tasks | `chore: update dependencies` |
27+
| `build` | Build system changes | `build: update webpack configuration` |
28+
| `ci` | CI/CD changes | `ci: add automated testing workflow` |
29+
30+
## Rules
31+
32+
### DO
33+
- **Start with letter** after colon (upper/lowercase both OK): `feat(cli): add new feature` or `feat(api): API integration`
34+
- **Be descriptive**: What you changed and why
35+
- **Keep subject line ≤100 characters total**
36+
- **Use imperative mood**: "add" not "added" or "adds"
37+
- **Include scope** when possible: `feat(config): ...`
38+
39+
### DON'T
40+
- Start with numbers or symbols after colon: ~~`feat(cli): 3 new features`~~
41+
- Add trailing period: ~~`feat(cli): add new feature.`~~
42+
- Be too vague: ~~`fix bug`~~ or ~~`update code`~~
43+
- Exceed 100 characters in subject line (entire line)
44+
- Use past tense: ~~`fixed bug`~~ (use `fix bug`)
45+
46+
### Special Case: Merge Commits
47+
Merge commits generated by Git are automatically valid and don't need to follow conventional commit format:
48+
- `Merge branch 'feature/awesome' into main`
49+
- `Merge pull request #123 from user/branch`
50+
- `Merge remote-tracking branch 'origin/main'`
51+
52+
## Writing Great Commit Messages
53+
54+
### Focus on WHAT and WHY, not HOW
55+
56+
**Good Examples:**
57+
```
58+
feat(auth): add JWT token authentication
59+
fix(db): resolve connection timeout during peak load
60+
perf(core): cache frequently accessed configuration data
61+
refactor(cli): extract argument validation into separate module
62+
refactor(gui): CLI integration for entry point
63+
docs: add troubleshooting guide for common installation issues
64+
```
65+
66+
**Bad Examples:**
67+
```
68+
Fixed bug # Too vague
69+
Update README.md # What specifically was updated?
70+
feat: fix # Contradictory type and description
71+
Added some changes # Not descriptive
72+
WIP: working on feature # Not a complete change
73+
```
74+
75+
## FUSION-Specific Scopes
76+
77+
Use these scopes to match the project architecture:
78+
79+
- `cli` - Command-line interface (`fusion/cli/`)
80+
- `config` - Configuration system (`fusion/configs/`)
81+
- `core` - Simulation core (`fusion/core/`)
82+
- `routing` - Routing algorithms (`fusion/modules/routing/`)
83+
- `spectrum` - Spectrum assignment (`fusion/modules/spectrum/`)
84+
- `snr` - SNR calculations (`fusion/modules/snr/`)
85+
- `rl` - Reinforcement learning (`fusion/modules/rl/`)
86+
- `ml` - Machine learning (`fusion/modules/ml/`)
87+
- `viz` - Visualization (`fusion/visualization/`)
88+
- `gui` - GUI interface (`fusion/gui/`)
89+
- `unity` - HPC integration (`fusion/unity/`)
90+
- `test` - Testing framework (`tests/`)
91+
92+
## Examples for Common Scenarios
93+
94+
### New Features
95+
```
96+
feat(cli): add support for custom configuration templates
97+
feat(routing): implement congestion-aware path selection
98+
feat(viz): add real-time performance monitoring dashboard
99+
```
100+
101+
### Bug Fixes
102+
```
103+
fix(spectrum): resolve allocation conflict in multi-core scenarios
104+
fix(config): handle missing configuration file gracefully
105+
fix(rl): correct reward calculation in training episodes
106+
```
107+
108+
### Performance Improvements
109+
```
110+
perf(core): reduce simulation startup time by 40%
111+
perf(routing): optimize k-shortest path algorithm
112+
perf(snr): cache SNR calculations for repeated requests
113+
```
114+
115+
### Refactoring
116+
```
117+
refactor(cli): simplify argument parsing with registry pattern
118+
refactor(core): extract metrics calculation into separate module
119+
refactor(config): migrate from INI to YAML configuration format
120+
```
121+
122+
### Documentation
123+
```
124+
docs: add comprehensive API reference
125+
docs(config): update configuration examples with new templates
126+
docs: fix typos in installation guide
127+
```
128+
129+
### With Detailed Bodies (Recommended for Complex Changes)
130+
```
131+
feat(config): add schema-based validation system
132+
133+
Implement comprehensive configuration validation using JSON Schema
134+
to catch errors early and provide helpful error messages. This
135+
addresses the frequent user confusion around invalid config files.
136+
137+
Changes include:
138+
- Add schema definitions for all config sections
139+
- Implement validation in ConfigManager class
140+
- Add detailed error messages with suggestions
141+
- Update CLI to show validation errors clearly
142+
143+
Resolves #123, #145, #167
144+
```
145+
146+
```
147+
fix(routing): resolve memory leak in k-shortest path algorithm
148+
149+
The previous implementation had a memory leak when processing large
150+
topologies due to unclosed graph resources. This fix ensures proper
151+
resource cleanup and reduces memory usage by 60% for large networks.
152+
153+
- Add proper resource disposal in PathCalculator
154+
- Implement connection pooling for graph operations
155+
- Add memory usage tests to prevent regression
156+
157+
Fixes #234
158+
```
159+
160+
## Testing Your Commit Messages
161+
162+
Before committing, test your message format:
163+
164+
```bash
165+
# Subject line validation (detailed body is allowed below):
166+
^(feat|fix|docs|style|refactor|perf|test|chore|build|ci)(\(.+\))?: [a-z].{4,}[^.]$
167+
# Total subject line length: ≤100 characters
168+
```
169+
170+
## Why These Standards?
171+
172+
1. **Consistency**: All commits follow the same format
173+
2. **Automation**: Tools can parse commit types for changelogs
174+
3. **Clarity**: Clear what changed and where
175+
4. **History**: Easy to understand project evolution
176+
5. **Reviews**: Faster PR reviews with structured information
177+
178+
---
179+
180+
**Remember**: Great commit messages help future you and your teammates understand the codebase evolution!

0 commit comments

Comments
 (0)