Skip to content

Commit 99d262e

Browse files
authored
Merge branch 'main' into cel-aws-dyn-kconfig
2 parents e2707d9 + a74f718 commit 99d262e

File tree

13 files changed

+1360
-353
lines changed

13 files changed

+1360
-353
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,4 @@ terraform/lambdalabs/.terraform_api_key
118118
.cloud.initialized
119119

120120
scripts/__pycache__/
121+
docs/contrib/kdevops_contributions*

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@ include scripts/archive.Makefile
274274
include scripts/defconfig.Makefile
275275
include scripts/style.Makefile
276276

277+
PHONY += contrib-graph
278+
contrib-graph:
279+
$(Q)python3 scripts/contrib_graph.py $(if $(YEAR),--year $(YEAR)) $(if $(MONTH),--month $(MONTH))
280+
277281
PHONY += clean
278282
clean:
279283
$(Q)$(MAKE) -f scripts/build.Makefile $@

PROMPTS.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ to help test things we can simply add a basic test so that
147147
target block device for just one simple workflow.
148148

149149
**AI:** Claude Code
150-
**Commit:** TDB
150+
**Commit:** [`6d23d4bfbd2b`](https://github.com/linux-kdevops/kdevops/commit/6d23d4bfbd2b05e6ac122b059c9f6c9d9dac7161)
151151
**Result:** Excellent implementation with comprehensive workflow structure.
152152
**Grading:** 90%
153153

@@ -179,7 +179,7 @@ SPDX for my top header files with the copyleft-next license as is done with
179179
tons of code on kdevops.
180180

181181
**AI:** Claude Code
182-
**Commit:** TDB
182+
**Commit:** [`6d23d4bfbd2b`](https://github.com/linux-kdevops/kdevops/commit/6d23d4bfbd2b05e6ac122b059c9f6c9d9dac7161)
183183
**Result:** Comprehensive graphing implementation with proper licensing.
184184
**Grading:** 95%
185185

@@ -212,7 +212,7 @@ origin story. Also extend PROMPTS.md with the few prompts I've given you to
212212
help add support for fio-tests and graphing support.
213213

214214
**AI:** Claude Code
215-
**Commit:** TDB
215+
**Commit:** [`6d23d4bfbd2b`](https://github.com/linux-kdevops/kdevops/commit/6d23d4bfbd2b05e6ac122b059c9f6c9d9dac7161)
216216
**Result:** Comprehensive documentation with examples and troubleshooting.
217217
**Grading:** 90%
218218

@@ -255,7 +255,7 @@ diffs and hurt my eyes. Extend CLAUDE.md to understand styling for these rules
255255
about not wanting lines ending in white space for styling.
256256

257257
**AI:** Claude Code
258-
**Commit:** [To be determined]
258+
**Commit:** [`7f25db722a2b`](https://github.com/linux-kdevops/kdevops/commit/7f25db722a2ba80b052a463db7415fad6c0bf63f)
259259
**Result:** Complete A/B kernel testing implementation with comprehensive configuration options.
260260
**Grading:** 70%
261261

@@ -298,7 +298,7 @@ cloud-config as a new target which is dynamic which is a subset of make
298298
dynconfig ; OK! good luck
299299

300300
**AI:** Claude Code (Opus 4.1)
301-
**Commit:** [To be determined]
301+
**Commit:** [`3c4ba3293ba4`](https://github.com/linux-kdevops/kdevops/commit/3c4ba3293ba4316aaec7ad37f6fd7eda4b1d1720), [`535726de9d71`](https://github.com/linux-kdevops/kdevops/commit/535726de9d7114a4c3c348331dc638b91ff543a8)
302302
**Result:** Complete Lambda Labs integration with dynamic Kconfig generation.
303303
**Grading:** 75%
304304

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,29 @@ See [viewing kdevops archived results](docs/viewing-fstests-results.md) to see
413413
more details about how to see results. We should add simple wrappers for this
414414
in the future.
415415

416+
# kdevops contribution analysis
417+
418+
kdevops includes built-in tools for analyzing project contribution patterns
419+
and development activity. These visualizations provide insights into contributor
420+
activity, development patterns, and project health over time.
421+
422+
Generate comprehensive contribution analysis dashboards:
423+
424+
```bash
425+
# Generate graphs for a specific year
426+
make contrib-graph YEAR=2025
427+
428+
# Generate graphs for all project history
429+
make contrib-graph
430+
```
431+
432+
The generated visualizations include contributor rankings, activity patterns,
433+
monthly trends, and project statistics. All graphs automatically respect
434+
temporal boundaries (no future commits shown) and handle contributor name
435+
overlapping for better readability.
436+
437+
For detailed documentation, see [docs/contrib/README.md](docs/contrib/README.md).
438+
416439
# Video presentations on kdevops or related
417440

418441
* [March 24, 2025 kdevops: Automating Linux kernel testing](https://www.youtube.com/watch?v=VF-jr_ZE-9Y&list=PLjaT52x3HVboZtdwZnONSHQHM8217ELcc) and [slides](https://docs.google.com/presentation/d/e/2PACX-1vSyM8ol_ZFwmJ6YCI2sYU9xH8MPCLPZT1PfsDHId__xbUq2aSh7mAeMLTGZFGfvjogY6ccxww2GqOTe/pub?start=false&loop=false&delayms=3000)

docs/contrib/README.md

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# kdevops Contribution Analysis
2+
3+
This directory contains contribution visualization tools and generated reports for the kdevops project.
4+
5+
## Overview
6+
7+
The contribution analysis provides comprehensive insights into kdevops development patterns, contributor activity, and project health over time. These visualizations help understand:
8+
9+
- **Contributor Activity**: Who is actively contributing to the project
10+
- **Development Patterns**: When and how frequently contributions occur
11+
- **Project Health**: Overall activity levels and contributor diversity
12+
- **Timeline Analysis**: How the project has evolved over time
13+
14+
## Quick Start
15+
16+
Generate contribution graphs using the built-in make target:
17+
18+
```bash
19+
# Generate graphs for a specific year
20+
make contrib-graph YEAR=2025
21+
22+
# Generate graphs for all project history
23+
make contrib-graph
24+
```
25+
26+
## Generated Files
27+
28+
The visualization tool creates comprehensive 7-panel dashboards saved as:
29+
30+
### For Specific Year
31+
- `kdevops_contributions_YYYY.png` - High-resolution image (300 DPI)
32+
- `kdevops_contributions_YYYY.pdf` - Vector format for scalability
33+
34+
### For All Time
35+
- `kdevops_contributions_all_time.png` - High-resolution image
36+
- `kdevops_contributions_all_time.pdf` - Vector format
37+
38+
## Visualization Components
39+
40+
Each generated dashboard includes seven analytical panels:
41+
42+
### 1. Total Commits Bar Chart
43+
Shows the overall contribution ranking by commit count. Names are automatically shortened for contributors with fewer commits to prevent overlapping labels.
44+
45+
### 2. Contribution Distribution Pie Chart
46+
Displays the percentage distribution of contributions among top contributors, with smaller contributors grouped as "Others" for clarity.
47+
48+
### 3. Monthly Activity Heatmap
49+
Visual representation of when contributors are most active throughout the year. Intensity indicates commit volume.
50+
51+
### 4. Monthly Timeline Graph
52+
Line graph showing total project activity over time, with actual commit counts labeled on data points.
53+
54+
### 5. Top Contributors Timeline
55+
Individual activity patterns for the top 3 contributors, showing their monthly contribution patterns.
56+
57+
### 6. Statistics Summary
58+
Key metrics including:
59+
- Total commits and contributors
60+
- Average commits per person
61+
- Most active month
62+
- Top contributor
63+
- Analysis period and generation timestamp
64+
- Generated-by tag usage share
65+
66+
### 7. Generated-by Tag Adoption Trend
67+
Shows how often commits include the `Generated-by:` trailer each month. This timeline highlights adoption of automated contribution tags and makes it easy to spot growth in AI-assisted commit generation.
68+
69+
## Technical Details
70+
71+
### Date Handling
72+
- **Smart Filtering**: Only shows data up to the current date (no future commits)
73+
- **Period Accuracy**: Respects actual time boundaries (e.g., if run on July 31, 2025, won't show August-December data)
74+
- **Validation**: Prevents analysis of invalid years (too early or future years)
75+
76+
### Data Sources
77+
All data is extracted directly from the git repository using:
78+
- `git log` for commit history
79+
- Author information from git commit metadata
80+
- Date filtering for accurate time period analysis
81+
- No synthetic or fabricated data
82+
83+
### Dependencies
84+
The visualization tool requires:
85+
- Python 3.x
86+
- matplotlib
87+
- seaborn
88+
- pandas
89+
- numpy
90+
91+
These are automatically installed via system packages when running the tool.
92+
93+
## Usage Examples
94+
95+
### Annual Review
96+
```bash
97+
# Generate 2025 contribution report
98+
make contrib-graph YEAR=2025
99+
```
100+
101+
### Project History
102+
```bash
103+
# Generate complete project history
104+
make contrib-graph
105+
```
106+
107+
### Specific Year Analysis
108+
```bash
109+
# Analyze any specific year
110+
make contrib-graph YEAR=2024
111+
make contrib-graph YEAR=2023
112+
```
113+
114+
## Error Handling
115+
116+
The tool includes comprehensive error checking:
117+
118+
- **Future Years**: Prevents analysis of years beyond current date
119+
- **Invalid Years**: Validates year format and reasonable ranges
120+
- **Git Repository**: Ensures tool is run from within a git repository
121+
- **Empty Data**: Handles periods with no commits gracefully
122+
123+
## Integration
124+
125+
The contribution analysis is integrated into the kdevops build system:
126+
127+
- **Makefile Target**: `make contrib-graph`
128+
- **Parameter Support**: Optional `YEAR=YYYY` parameter
129+
- **Output Location**: Files saved to `docs/contrib/`
130+
- **Style Compliance**: Follows kdevops coding standards
131+
132+
## Interpretation Guide
133+
134+
### High Activity Periods
135+
- **March Surge**: Often indicates major development phases
136+
- **Consistent Activity**: Shows healthy, sustained development
137+
- **Seasonal Patterns**: May reflect developer availability/schedules
138+
139+
### Contributor Patterns
140+
- **Core Contributors**: High commit counts, consistent activity
141+
- **Occasional Contributors**: Lower counts, sporadic activity
142+
- **New Contributors**: Recent activity increase
143+
144+
### Project Health Indicators
145+
- **Growing Contributor Base**: More contributors over time
146+
- **Sustained Activity**: Regular commits throughout periods
147+
- **Balanced Contributions**: Activity from multiple contributors
148+
- **Generated-by Adoption**: Visibility into automated tag usage trends
149+
150+
## Files in This Directory
151+
152+
- `README.md` - This documentation
153+
- `kdevops_contributions_*.png` - Generated visualization images
154+
- `kdevops_contributions_*.pdf` - Generated vector graphics
155+
- Historical contribution reports (accumulate over time)
156+
157+
## Troubleshooting
158+
159+
### Common Issues
160+
161+
**"No contributions found"**
162+
- Check that you're in a git repository
163+
- Verify the specified year has commits
164+
- Ensure date range is valid
165+
166+
**"Year is in the future"**
167+
- The tool prevents analysis of future dates
168+
- Use current or past years only
169+
170+
**Missing dependencies**
171+
- Run `sudo apt install python3-matplotlib python3-seaborn python3-pandas python3-numpy`
172+
- Or let the Makefile handle dependency installation
173+
174+
### Getting Help
175+
176+
For issues with the contribution analysis tool:
177+
1. Check that all dependencies are installed
178+
2. Verify you're in the kdevops git repository root
179+
3. Review error messages for specific guidance
180+
4. Consult the main project documentation
181+
182+
## Contributing
183+
184+
The contribution analysis tool itself can be improved:
185+
186+
- **Source**: `scripts/contrib_graph.py`
187+
- **Integration**: Makefile target definition
188+
- **Standards**: Follow kdevops coding and documentation standards
189+
- **Testing**: Verify with multiple years and edge cases
190+
191+
Suggestions for enhancements are welcome through the standard kdevops contribution process.

playbooks/roles/gen_nodes/templates/guestfs_q35.j2.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@
183183
<qemu:arg value='-global'/>
184184
<qemu:arg value='ICH9-LPC.disable_s4=0'/>
185185
<qemu:arg value='-device'/>
186+
<qemu:arg value='vmcoreinfo'/>
187+
<qemu:arg value='-device'/>
186188
<qemu:arg value='pxb-pcie,id=pcie.1,bus_nr=32,bus=pcie.0,addr=0x8'/>
187189
{% if libvirt_enable_gdb %}
188190
<qemu:arg value='-gdb'/>

0 commit comments

Comments
 (0)