Skip to content

Conversation

@darktorres
Copy link
Member

No description provided.

darktorres and others added 10 commits September 19, 2025 15:18
- Fix spacing and formatting in BUILD.md files (EN, ES, PT-BR)
- Improve CLAUDE.md documentation structure and readability
- Apply consistent markdown style across all documentation files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Remove TODO.md file as all tasks have been migrated to GitHub project
- Add roadmap sections to all README files linking to project tracker
- Provide users visibility into planned features and development status

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Create CONTRIBUTING.md with development setup instructions
- Include code style, testing, and PR process guidelines
- Add translation workflow and documentation standards
- Provide multiple contribution pathways for diverse community
- Link to GitHub project roadmap and Weblate platform

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Update GitHub Actions workflows to use valid PEP 440 syntax
- Fix BUILD documentation files for consistency
- Enable automatic updates to aqtinstall 3.3+ versions
- Follow proper pip version specification standards

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Add DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON to all platform builds
- Enable LTO for main application builds (Ubuntu, Windows, macOS)
- Enable LTO for Sentry SDK compilation across platforms
- Improve release binary performance and reduce size

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
Replace `<QtWidgets/QtWidgets>` with specific Qt includes in 5 UI headers:
- mainwindow_ui.h: 17 specific includes instead of 200+ classes
- elementeditor_ui.h: 11 specific includes
- lengthdialog_ui.h: 6 specific includes
- clockdialog_ui.h: 6 specific includes
- bewaveddolphin_ui.h: 8 specific includes

Also add missing QApplication include to bewaveddolphin.cpp.

Performance Impact:
- Build time: 342.30s → 92.98s (72.8% improvement)
- Compilation units: 194 → 108
- Eliminates ~200 unnecessary Qt class definitions per include

Analysis tools: include-what-you-use, clang-build-analyzer
Based on comprehensive build performance analysis identifying
monolithic includes as primary compilation bottleneck.

🤖 Generated with [Claude Code](https://claude.ai/code)

perf: optimize header dependencies for additional 16.9% build improvement

Header-specific optimizations:
- Move QPixmapCache include from graphicelement.h to mainwindow.cpp
  (reduces include overhead for 42 files including graphicelement.h)
- Remove unused QObject include from common.h
  (reduces include overhead for 21 files including common.h)

Performance Impact:
- Additional improvement: 92.98s → 77.26s (16.9% faster)
- Total cumulative improvement: 342.30s → 77.26s (77.4% faster)

Analysis: Follow-up IWYU optimization targeting high-frequency headers
identified through systematic include dependency analysis.

🤖 Generated with [Claude Code](https://claude.ai/code)

Update scene.h

Update graphicelement.h

Co-Authored-By: Claude <[email protected]>
- Add comprehensive PCH including Qt headers, STL containers, and expensive project headers
- Replace ccache-based PCH logic with ENABLE_PCH option (default ON)
- Include most expensive headers based on ClangBuildAnalyzer data:
  * app/graphicelement.h (was 288.4s total)
  * app/enums.h (was 264.7s total)
  * app/logicelement.h (was 123.0s total)
- Add forward declarations to reduce header dependencies
- PCH compilation cost: 5.48s, total savings: 643.8s (11,700% ROI)

Performance improvements:
- Frontend parsing: 805.4s → 161.6s (80% faster)
- Total build time: 889.1s → 249.0s (72% faster)
- Expensive headers no longer appear in top performance bottlenecks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Add CMakePresets.json with 12 configure presets covering all use cases:
  * Basic builds: debug, release, relwithdebinfo
  * Development: coverage, asan, tsan, msan, ubsan
  * Platform-specific: windows-qt, macos-universal
  * Deployment: sentry-crashpad, sentry-breakpad
- Add corresponding build and test presets for consistent workflow
- Migrate all CMake commands across entire repository to use presets:
  * Documentation: README (3 languages), BUILD (3 languages), CONTRIBUTING
  * Scripts: coverage.sh, devcontainer setup
  * CI/CD: All GitHub workflows (build, coverage, codeql, deploy)
  * Project docs: CLAUDE.md

Benefits:
- Users no longer need to remember build directory or complex flags
- Consistent Ninja generator and build settings across all platforms
- Platform-specific presets auto-activate based on OS
- Simplified commands: cmake --preset release && cmake --build --preset release
- Better IDE integration with preset discovery

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
…egration

- Implement multi-stage Docker build separating Qt installation from runtime
- Add UTF-8 locale configuration to prevent Qt encoding warnings
- Remove LLVM/Clang toolchain, keep GCC (wiRedPanda uses GCC via CMake)
- Add essential tools: GitHub CLI, Node.js 20.x, lcov coverage, mold linker
- Configure zsh with Oh My Zsh for developer user with sudo access
- Remove QML components and debug files to reduce image size
- Clean environment variable definitions to eliminate Docker warnings
- Update devcontainer.json to use pre-built Docker Hub image
- Remove features section to prevent VS Code from rebuilding layers
- Reduce image size from 6+ GB to ~4 GB while maintaining full functionality

The devcontainer now pulls darktorres/wiredpanda-devcontainer:ubuntu22.04
from Docker Hub, enabling instant setup for all contributors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
Update README.md, README_pt_BR.md, and README_es.md to include complete
build requirements instead of listing only Ninja. Added CMake 3.16+,
Qt 5.15+/6.2+ with modules, and C++20 compiler requirements for clarity.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@darktorres darktorres merged commit 84310aa into master Sep 19, 2025
13 checks passed
@darktorres darktorres deleted the devops branch September 19, 2025 19:09
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.

2 participants