Skip to content

Fix component sizes not calculated or pushed to README.md on push to main#36

Merged
konard merged 3 commits intomainfrom
issue-35-9c4d8d6cb0f2
Jan 31, 2026
Merged

Fix component sizes not calculated or pushed to README.md on push to main#36
konard merged 3 commits intomainfrom
issue-35-9c4d8d6cb0f2

Conversation

@konard
Copy link
Member

@konard konard commented Jan 30, 2026

Summary

Fixes #35 - Component sizes were not being calculated or pushed to README.md on push to main branch.

Root Causes Identified

Three interacting root causes were discovered through CI log analysis:

  1. Incomplete workflow path triggers — The measure-disk-space.yml workflow only triggered on changes to scripts/ubuntu-24-server-install.sh, Dockerfile, and the workflow file itself. Changes to scripts/measure-disk-space.sh (the actual measurement script) did not trigger the workflow. This meant the issue-31 sed delimiter fix was never executed.

  2. Fragile sed-based JSON manipulation — The add_measurement() function used sed to build JSON, which broke on component names containing special characters like C/C++ Tools. Even with the | delimiter fix from issue-31, this approach remained fragile.

  3. Pipeline masking script failures — The workflow step piped the script through tee without pipefail, so when the script crashed, tee still exited 0, hiding the failure.

Changes

  • .github/workflows/measure-disk-space.yml: Added scripts/measure-disk-space.sh and scripts/update-readme-sizes.sh to path triggers; added set -o pipefail to measurement step
  • scripts/measure-disk-space.sh: Replaced sed-based JSON manipulation with Python's json module for robustness
  • docs/case-studies/issue-35/README.md: Full case study with timeline, root cause analysis, and evidence from CI logs
  • experiments/test-json-manipulation.sh: Test script verifying the fix works with all component names
  • .changeset/fix-measurement-workflow.md: Changeset for patch release

Test plan

  • Local test with experiments/test-json-manipulation.sh passes — all 13 components including C/C++ Tools (CMake, Clang, LLVM, LLD) recorded correctly
  • CI checks pass on PR
  • After merge, measure-disk-space workflow triggers and completes successfully

🤖 Generated with Claude Code

Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: #35
@konard konard self-assigned this Jan 30, 2026
…main

Three root causes identified and fixed:

1. Workflow path triggers missing measurement scripts - changes to
   measure-disk-space.sh and update-readme-sizes.sh did not re-trigger
   the workflow, so the issue-31 sed fix was never executed.

2. Fragile sed-based JSON manipulation - replaced with Python's json
   module which handles all special characters correctly (C/C++, etc.).

3. Pipeline masking script failures - added set -o pipefail so script
   crashes propagate through the tee pipeline.

Includes case study documentation and test script.

Fixes #35

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard konard changed the title [WIP] Components sizes are not calculated or pushed to README.md on push to main branch Fix component sizes not calculated or pushed to README.md on push to main Jan 30, 2026
@konard konard marked this pull request as ready for review January 30, 2026 23:31
@konard
Copy link
Member Author

konard commented Jan 30, 2026

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $5.568060 USD
  • Calculated by Anthropic: $4.192785 USD
  • Difference: $-1.375275 (-24.70%)
    📎 Log file uploaded as Gist (893KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard konard merged commit e513802 into main Jan 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Components sizes are not calculated or pushed to README.md on push to main branch

1 participant