blockmine 1.24.0 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.en.md +427 -0
- package/README.md +40 -0
- package/backend/cli.js +1 -1
- package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
- package/backend/src/api/routes/bots.js +13 -0
- package/backend/src/api/routes/servers.js +14 -2
- package/backend/src/core/BotProcess.js +98 -2
- package/backend/src/core/PluginLoader.js +83 -3
- package/backend/src/core/PluginManager.js +75 -5
- package/backend/src/core/services/BotLifecycleService.js +186 -2
- package/backend/src/server.js +11 -1
- package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
- package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
- package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
- package/frontend/dist/flags/en.svg +32 -0
- package/frontend/dist/flags/ru.svg +5 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/locales/en/admin.json +100 -0
- package/frontend/dist/locales/en/api-keys.json +58 -0
- package/frontend/dist/locales/en/bots.json +110 -0
- package/frontend/dist/locales/en/common.json +47 -0
- package/frontend/dist/locales/en/configuration.json +22 -0
- package/frontend/dist/locales/en/console.json +10 -0
- package/frontend/dist/locales/en/dashboard.json +85 -0
- package/frontend/dist/locales/en/dialogs.json +70 -0
- package/frontend/dist/locales/en/event-graphs.json +50 -0
- package/frontend/dist/locales/en/graph-store.json +70 -0
- package/frontend/dist/locales/en/login.json +34 -0
- package/frontend/dist/locales/en/management.json +114 -0
- package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/en/nodes.json +1077 -0
- package/frontend/dist/locales/en/permissions.json +50 -0
- package/frontend/dist/locales/en/plugin-detail.json +49 -0
- package/frontend/dist/locales/en/plugins.json +110 -0
- package/frontend/dist/locales/en/proxies.json +81 -0
- package/frontend/dist/locales/en/servers.json +39 -0
- package/frontend/dist/locales/en/setup.json +17 -0
- package/frontend/dist/locales/en/sidebar.json +27 -0
- package/frontend/dist/locales/en/tasks.json +62 -0
- package/frontend/dist/locales/en/visual-editor.json +219 -0
- package/frontend/dist/locales/en/websocket.json +86 -0
- package/frontend/dist/locales/ru/admin.json +100 -0
- package/frontend/dist/locales/ru/api-keys.json +58 -0
- package/frontend/dist/locales/ru/bots.json +110 -0
- package/frontend/dist/locales/ru/common.json +49 -0
- package/frontend/dist/locales/ru/configuration.json +22 -0
- package/frontend/dist/locales/ru/console.json +10 -0
- package/frontend/dist/locales/ru/dashboard.json +85 -0
- package/frontend/dist/locales/ru/dialogs.json +70 -0
- package/frontend/dist/locales/ru/event-graphs.json +50 -0
- package/frontend/dist/locales/ru/graph-store.json +70 -0
- package/frontend/dist/locales/ru/login.json +34 -0
- package/frontend/dist/locales/ru/management.json +114 -0
- package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/ru/nodes.json +1077 -0
- package/frontend/dist/locales/ru/permissions.json +50 -0
- package/frontend/dist/locales/ru/plugin-detail.json +49 -0
- package/frontend/dist/locales/ru/plugins.json +110 -0
- package/frontend/dist/locales/ru/proxies.json +81 -0
- package/frontend/dist/locales/ru/servers.json +39 -0
- package/frontend/dist/locales/ru/setup.json +17 -0
- package/frontend/dist/locales/ru/sidebar.json +27 -0
- package/frontend/dist/locales/ru/tasks.json +62 -0
- package/frontend/dist/locales/ru/visual-editor.json +221 -0
- package/frontend/dist/locales/ru/websocket.json +86 -0
- package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
- package/frontend/package.json +4 -0
- package/package.json +1 -1
- package/screen/3dviewer.png +0 -0
- package/screen/console.png +0 -0
- package/screen/dashboard.png +0 -0
- package/screen/graph_collabe.png +0 -0
- package/screen/graph_live_debug.png +0 -0
- package/screen/language_selector.png +0 -0
- package/screen/management_command.png +0 -0
- package/screen/node_debug_trace.png +0 -0
- package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
- package/screen/websocket.png +0 -0
- package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
- package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
- package/.claude/agents/README.md +0 -469
- package/.claude/agents/auth-route-debugger.md +0 -118
- package/.claude/agents/auth-route-tester.md +0 -93
- package/.claude/agents/auto-error-resolver.md +0 -97
- package/.claude/agents/build-optimizer.md +0 -236
- package/.claude/agents/code-architect.md +0 -34
- package/.claude/agents/code-architecture-reviewer.md +0 -83
- package/.claude/agents/code-explorer.md +0 -51
- package/.claude/agents/code-refactor-master.md +0 -94
- package/.claude/agents/code-reviewer.md +0 -46
- package/.claude/agents/cost-optimizer.md +0 -134
- package/.claude/agents/deployment-orchestrator.md +0 -113
- package/.claude/agents/documentation-architect.md +0 -82
- package/.claude/agents/frontend-error-fixer.md +0 -77
- package/.claude/agents/iac-code-generator.md +0 -71
- package/.claude/agents/incident-responder.md +0 -346
- package/.claude/agents/infrastructure-architect.md +0 -31
- package/.claude/agents/kubernetes-specialist.md +0 -56
- package/.claude/agents/migration-planner.md +0 -181
- package/.claude/agents/network-architect.md +0 -196
- package/.claude/agents/plan-reviewer.md +0 -52
- package/.claude/agents/refactor-planner.md +0 -63
- package/.claude/agents/security-scanner.md +0 -102
- package/.claude/agents/web-research-specialist.md +0 -78
- package/.claude/commands/cost-analysis.md +0 -315
- package/.claude/commands/dev-docs-update.md +0 -55
- package/.claude/commands/dev-docs.md +0 -51
- package/.claude/commands/feature-dev.md +0 -125
- package/.claude/commands/incident-debug.md +0 -247
- package/.claude/commands/infra-plan.md +0 -81
- package/.claude/commands/migration-plan.md +0 -478
- package/.claude/commands/route-research-for-testing.md +0 -37
- package/.claude/commands/security-review.md +0 -66
- package/.claude/hooks/CONFIG.md +0 -448
- package/.claude/hooks/README.md +0 -163
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
- package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
- package/.claude/hooks/add-skill-activation-banners.ts +0 -132
- package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -222
- package/.claude/hooks/k8s-manifest-validator.sh +0 -56
- package/.claude/hooks/package-lock.json +0 -556
- package/.claude/hooks/package.json +0 -16
- package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
- package/.claude/hooks/post-tool-use-tracker.sh +0 -183
- package/.claude/hooks/security-policy-check.sh +0 -247
- package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
- package/.claude/hooks/skill-activation-prompt.sh +0 -10
- package/.claude/hooks/skill-activation-prompt.ts +0 -141
- package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
- package/.claude/hooks/terraform-validator.sh +0 -53
- package/.claude/hooks/test-input.json +0 -7
- package/.claude/hooks/test-skill-activation.ts +0 -427
- package/.claude/hooks/trigger-build-resolver.sh +0 -79
- package/.claude/hooks/tsc-check.sh +0 -173
- package/.claude/hooks/tsconfig.json +0 -19
- package/.claude/settings.json +0 -59
- package/.claude/settings.local.json +0 -67
- package/.claude/skills/README.md +0 -507
- package/.claude/skills/api-engineering/SKILL.md +0 -63
- package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
- package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
- package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
- package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
- package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
- package/.claude/skills/build-engineering/SKILL.md +0 -431
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
- package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
- package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
- package/.claude/skills/build-engineering/resources/build-security.md +0 -95
- package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
- package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
- package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
- package/.claude/skills/cloud-engineering/SKILL.md +0 -675
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
- package/.claude/skills/cybersecurity/SKILL.md +0 -409
- package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
- package/.claude/skills/database-engineering/SKILL.md +0 -61
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
- package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
- package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
- package/.claude/skills/devsecops/SKILL.md +0 -374
- package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
- package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
- package/.claude/skills/devsecops/resources/container-security.md +0 -915
- package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
- package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
- package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
- package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
- package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
- package/.claude/skills/devsecops/resources/security-testing.md +0 -203
- package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
- package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
- package/.claude/skills/documentation-as-code/SKILL.md +0 -323
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
- package/.claude/skills/engineering-management/SKILL.md +0 -356
- package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
- package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
- package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
- package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
- package/.claude/skills/error-tracking/SKILL.md +0 -379
- package/.claude/skills/frontend-design/SKILL.md +0 -42
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
- package/.claude/skills/general-it-engineering/SKILL.md +0 -393
- package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
- package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
- package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
- package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
- package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
- package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
- package/.claude/skills/network-engineering/SKILL.md +0 -385
- package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
- package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
- package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
- package/.claude/skills/network-engineering/resources/network-security.md +0 -921
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
- package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
- package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
- package/.claude/skills/node-development/SKILL.md +0 -317
- package/.claude/skills/observability-engineering/SKILL.md +0 -101
- package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
- package/.claude/skills/platform-engineering/SKILL.md +0 -555
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
- package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
- package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
- package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
- package/.claude/skills/release-engineering/SKILL.md +0 -393
- package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
- package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
- package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
- package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
- package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
- package/.claude/skills/route-tester/SKILL.md +0 -392
- package/.claude/skills/skill-developer/ADVANCED.md +0 -197
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
- package/.claude/skills/skill-developer/SKILL.md +0 -430
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
- package/.claude/skills/skill-rules.json +0 -2989
- package/.claude/skills/sre/SKILL.md +0 -464
- package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
- package/.claude/skills/sre/resources/capacity-planning.md +0 -226
- package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
- package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
- package/.claude/skills/sre/resources/incident-management.md +0 -436
- package/.claude/skills/sre/resources/observability-stack.md +0 -240
- package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
- package/.claude/skills/sre/resources/performance-optimization.md +0 -108
- package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
- package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
- package/.claude/skills/sre/resources/toil-reduction.md +0 -145
- package/.claude/skills/systems-engineering/SKILL.md +0 -648
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
- package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
- package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
- package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
- package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
- package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
- package/.claude/skills/technical-leadership/SKILL.md +0 -728
- package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
- package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
- package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# Build Security
|
|
2
|
-
|
|
3
|
-
Guide to supply chain security including SBOM generation, signed artifacts, and dependency attestation.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
Build security protects against supply chain attacks and ensures artifact integrity.
|
|
8
|
-
|
|
9
|
-
## SBOM Generation
|
|
10
|
-
|
|
11
|
-
### CycloneDX
|
|
12
|
-
```bash
|
|
13
|
-
# Generate SBOM
|
|
14
|
-
cyclonedx-cli generate -i . -o sbom.json
|
|
15
|
-
|
|
16
|
-
# Validate
|
|
17
|
-
cyclonedx-cli validate --input-file sbom.json
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### Syft
|
|
21
|
-
```bash
|
|
22
|
-
# Generate from image
|
|
23
|
-
syft packages myapp:latest -o cyclonedx-json > sbom.json
|
|
24
|
-
|
|
25
|
-
# Multiple formats
|
|
26
|
-
syft packages . -o table,json,cyclonedx
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Artifact Signing
|
|
30
|
-
|
|
31
|
-
### GPG Signing
|
|
32
|
-
```bash
|
|
33
|
-
# Sign artifact
|
|
34
|
-
gpg --armor --detach-sign artifact.jar
|
|
35
|
-
|
|
36
|
-
# Verify
|
|
37
|
-
gpg --verify artifact.jar.asc artifact.jar
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Cosign (Container)
|
|
41
|
-
```bash
|
|
42
|
-
# Sign image
|
|
43
|
-
cosign sign registry.io/myapp:v1.0
|
|
44
|
-
|
|
45
|
-
# Verify
|
|
46
|
-
cosign verify registry.io/myapp:v1.0
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Dependency Attestation
|
|
50
|
-
|
|
51
|
-
### SLSA Provenance
|
|
52
|
-
```yaml
|
|
53
|
-
# GitHub Actions
|
|
54
|
-
- name: Generate provenance
|
|
55
|
-
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v1.2.0
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Vulnerability Scanning
|
|
59
|
-
|
|
60
|
-
### Trivy
|
|
61
|
-
```bash
|
|
62
|
-
# Scan image
|
|
63
|
-
trivy image myapp:latest
|
|
64
|
-
|
|
65
|
-
# Scan filesystem
|
|
66
|
-
trivy fs .
|
|
67
|
-
|
|
68
|
-
# Generate report
|
|
69
|
-
trivy image --format json -o results.json myapp:latest
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Snyk
|
|
73
|
-
```bash
|
|
74
|
-
# Test dependencies
|
|
75
|
-
snyk test
|
|
76
|
-
|
|
77
|
-
# Monitor project
|
|
78
|
-
snyk monitor
|
|
79
|
-
|
|
80
|
-
# Test container
|
|
81
|
-
snyk container test myapp:latest
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Best Practices
|
|
85
|
-
|
|
86
|
-
1. **Generate SBOM** - For every release
|
|
87
|
-
2. **Sign artifacts** - Cryptographic signatures
|
|
88
|
-
3. **Scan dependencies** - Automated vulnerability scanning
|
|
89
|
-
4. **Pin versions** - Exact dependency versions
|
|
90
|
-
5. **Verify signatures** - Before deployment
|
|
91
|
-
6. **Audit build process** - Regular security reviews
|
|
92
|
-
7. **Least privilege** - Minimal build permissions
|
|
93
|
-
8. **Secure secrets** - Never commit secrets
|
|
94
|
-
9. **Provenance tracking** - Build metadata
|
|
95
|
-
10. **Regular updates** - Keep dependencies current
|
|
@@ -1,389 +0,0 @@
|
|
|
1
|
-
# Build Systems
|
|
2
|
-
|
|
3
|
-
Comprehensive comparison and guide for modern build systems including Make, Gradle, Maven, Bazel, npm/yarn/pnpm, and tool selection criteria.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Overview](#overview)
|
|
8
|
-
- [Make](#make)
|
|
9
|
-
- [Gradle](#gradle)
|
|
10
|
-
- [Maven](#maven)
|
|
11
|
-
- [Bazel](#bazel)
|
|
12
|
-
- [npm/yarn/pnpm](#npmyarnpnpm)
|
|
13
|
-
- [Comparison](#comparison)
|
|
14
|
-
- [Tool Selection](#tool-selection)
|
|
15
|
-
- [Best Practices](#best-practices)
|
|
16
|
-
|
|
17
|
-
## Overview
|
|
18
|
-
|
|
19
|
-
Build systems automate the process of converting source code into executable artifacts. Choosing the right build tool depends on language ecosystem, project size, team expertise, and build requirements.
|
|
20
|
-
|
|
21
|
-
**Key Capabilities:**
|
|
22
|
-
- Dependency management
|
|
23
|
-
- Incremental compilation
|
|
24
|
-
- Parallel execution
|
|
25
|
-
- Build caching
|
|
26
|
-
- Multi-platform support
|
|
27
|
-
- Plugin ecosystem
|
|
28
|
-
|
|
29
|
-
## Make
|
|
30
|
-
|
|
31
|
-
Classic build tool based on file dependencies and timestamps.
|
|
32
|
-
|
|
33
|
-
**Makefile:**
|
|
34
|
-
```makefile
|
|
35
|
-
CC = gcc
|
|
36
|
-
CFLAGS = -Wall -O2
|
|
37
|
-
TARGET = myapp
|
|
38
|
-
SOURCES = main.c utils.c
|
|
39
|
-
OBJECTS = $(SOURCES:.c=.o)
|
|
40
|
-
|
|
41
|
-
.PHONY: all clean
|
|
42
|
-
|
|
43
|
-
all: $(TARGET)
|
|
44
|
-
|
|
45
|
-
$(TARGET): $(OBJECTS)
|
|
46
|
-
$(CC) $(CFLAGS) -o $@ $^
|
|
47
|
-
|
|
48
|
-
%.o: %.c
|
|
49
|
-
$(CC) $(CFLAGS) -c $< -o $@
|
|
50
|
-
|
|
51
|
-
clean:
|
|
52
|
-
rm -f $(OBJECTS) $(TARGET)
|
|
53
|
-
|
|
54
|
-
install: $(TARGET)
|
|
55
|
-
install -m 755 $(TARGET) /usr/local/bin
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**Pros:**
|
|
59
|
-
- Universal, installed everywhere
|
|
60
|
-
- Simple for small projects
|
|
61
|
-
- Fast dependency checking
|
|
62
|
-
- Language agnostic
|
|
63
|
-
|
|
64
|
-
**Cons:**
|
|
65
|
-
- Complex syntax for large projects
|
|
66
|
-
- No built-in dependency management
|
|
67
|
-
- Platform-specific makefiles
|
|
68
|
-
- No standardized project structure
|
|
69
|
-
|
|
70
|
-
## Gradle
|
|
71
|
-
|
|
72
|
-
Flexible JVM build tool with Groovy/Kotlin DSL.
|
|
73
|
-
|
|
74
|
-
**build.gradle.kts:**
|
|
75
|
-
```kotlin
|
|
76
|
-
plugins {
|
|
77
|
-
kotlin("jvm") version "1.9.0"
|
|
78
|
-
application
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
group = "com.example"
|
|
82
|
-
version = "1.0.0"
|
|
83
|
-
|
|
84
|
-
repositories {
|
|
85
|
-
mavenCentral()
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
dependencies {
|
|
89
|
-
implementation("org.springframework.boot:spring-boot-starter-web:3.1.0")
|
|
90
|
-
testImplementation("org.junit.jupiter:junit-jupiter:5.9.3")
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
tasks.test {
|
|
94
|
-
useJUnitPlatform()
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
application {
|
|
98
|
-
mainClass.set("com.example.MainKt")
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Custom task
|
|
102
|
-
tasks.register("hello") {
|
|
103
|
-
doLast {
|
|
104
|
-
println("Hello from Gradle!")
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Parallel compilation
|
|
109
|
-
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
|
|
110
|
-
kotlinOptions {
|
|
111
|
-
jvmTarget = "17"
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
**Multi-Module Project:**
|
|
117
|
-
```kotlin
|
|
118
|
-
// settings.gradle.kts
|
|
119
|
-
rootProject.name = "myapp"
|
|
120
|
-
include("api", "core", "web")
|
|
121
|
-
|
|
122
|
-
// api/build.gradle.kts
|
|
123
|
-
dependencies {
|
|
124
|
-
implementation(project(":core"))
|
|
125
|
-
}
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
**Pros:**
|
|
129
|
-
- Flexible and powerful
|
|
130
|
-
- Excellent for multi-module projects
|
|
131
|
-
- Strong caching support
|
|
132
|
-
- Large plugin ecosystem
|
|
133
|
-
|
|
134
|
-
**Cons:**
|
|
135
|
-
- Steep learning curve
|
|
136
|
-
- Build scripts can become complex
|
|
137
|
-
- Slower than some alternatives
|
|
138
|
-
|
|
139
|
-
## Maven
|
|
140
|
-
|
|
141
|
-
Convention-over-configuration JVM build tool.
|
|
142
|
-
|
|
143
|
-
**pom.xml:**
|
|
144
|
-
```xml
|
|
145
|
-
<project xmlns="http://maven.apache.org/POM/4.0.0">
|
|
146
|
-
<modelVersion>4.0.0</modelVersion>
|
|
147
|
-
|
|
148
|
-
<groupId>com.example</groupId>
|
|
149
|
-
<artifactId>myapp</artifactId>
|
|
150
|
-
<version>1.0.0</version>
|
|
151
|
-
<packaging>jar</packaging>
|
|
152
|
-
|
|
153
|
-
<properties>
|
|
154
|
-
<java.version>17</java.version>
|
|
155
|
-
<maven.compiler.source>17</maven.compiler.source>
|
|
156
|
-
<maven.compiler.target>17</maven.compiler.target>
|
|
157
|
-
</properties>
|
|
158
|
-
|
|
159
|
-
<dependencies>
|
|
160
|
-
<dependency>
|
|
161
|
-
<groupId>org.springframework.boot</groupId>
|
|
162
|
-
<artifactId>spring-boot-starter-web</artifactId>
|
|
163
|
-
<version>3.1.0</version>
|
|
164
|
-
</dependency>
|
|
165
|
-
<dependency>
|
|
166
|
-
<groupId>org.junit.jupiter</groupId>
|
|
167
|
-
<artifactId>junit-jupiter</artifactId>
|
|
168
|
-
<version>5.9.3</version>
|
|
169
|
-
<scope>test</scope>
|
|
170
|
-
</dependency>
|
|
171
|
-
</dependencies>
|
|
172
|
-
|
|
173
|
-
<build>
|
|
174
|
-
<plugins>
|
|
175
|
-
<plugin>
|
|
176
|
-
<groupId>org.springframework.boot</groupId>
|
|
177
|
-
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
178
|
-
</plugin>
|
|
179
|
-
</plugins>
|
|
180
|
-
</build>
|
|
181
|
-
</project>
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**Multi-Module:**
|
|
185
|
-
```xml
|
|
186
|
-
<!-- Parent pom.xml -->
|
|
187
|
-
<modules>
|
|
188
|
-
<module>api</module>
|
|
189
|
-
<module>core</module>
|
|
190
|
-
<module>web</module>
|
|
191
|
-
</modules>
|
|
192
|
-
|
|
193
|
-
<!-- Child module -->
|
|
194
|
-
<parent>
|
|
195
|
-
<groupId>com.example</groupId>
|
|
196
|
-
<artifactId>parent</artifactId>
|
|
197
|
-
<version>1.0.0</version>
|
|
198
|
-
</parent>
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
**Pros:**
|
|
202
|
-
- Strong conventions
|
|
203
|
-
- Standardized structure
|
|
204
|
-
- Mature ecosystem
|
|
205
|
-
- Great for Java projects
|
|
206
|
-
|
|
207
|
-
**Cons:**
|
|
208
|
-
- XML verbose
|
|
209
|
-
- Less flexible than Gradle
|
|
210
|
-
- Slower build times
|
|
211
|
-
|
|
212
|
-
## Bazel
|
|
213
|
-
|
|
214
|
-
Hermetic, reproducible build system for monorepos.
|
|
215
|
-
|
|
216
|
-
**WORKSPACE:**
|
|
217
|
-
```python
|
|
218
|
-
workspace(name = "myapp")
|
|
219
|
-
|
|
220
|
-
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
221
|
-
|
|
222
|
-
http_archive(
|
|
223
|
-
name = "rules_jvm_external",
|
|
224
|
-
sha256 = "...",
|
|
225
|
-
url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/4.5/rules_jvm_external-4.5.tar.gz",
|
|
226
|
-
)
|
|
227
|
-
|
|
228
|
-
load("@rules_jvm_external//:defs.bzl", "maven_install")
|
|
229
|
-
|
|
230
|
-
maven_install(
|
|
231
|
-
artifacts = [
|
|
232
|
-
"com.google.guava:guava:31.1-jre",
|
|
233
|
-
"org.junit.jupiter:junit-jupiter:5.9.3",
|
|
234
|
-
],
|
|
235
|
-
repositories = [
|
|
236
|
-
"https://repo1.maven.org/maven2",
|
|
237
|
-
],
|
|
238
|
-
)
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**BUILD:**
|
|
242
|
-
```python
|
|
243
|
-
java_library(
|
|
244
|
-
name = "core",
|
|
245
|
-
srcs = glob(["src/main/java/**/*.java"]),
|
|
246
|
-
deps = [
|
|
247
|
-
"@maven//:com_google_guava_guava",
|
|
248
|
-
],
|
|
249
|
-
visibility = ["//visibility:public"],
|
|
250
|
-
)
|
|
251
|
-
|
|
252
|
-
java_binary(
|
|
253
|
-
name = "app",
|
|
254
|
-
srcs = ["Main.java"],
|
|
255
|
-
deps = [":core"],
|
|
256
|
-
main_class = "com.example.Main",
|
|
257
|
-
)
|
|
258
|
-
|
|
259
|
-
java_test(
|
|
260
|
-
name = "core_test",
|
|
261
|
-
srcs = glob(["src/test/java/**/*.java"]),
|
|
262
|
-
deps = [
|
|
263
|
-
":core",
|
|
264
|
-
"@maven//:org_junit_jupiter_junit_jupiter",
|
|
265
|
-
],
|
|
266
|
-
)
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
**Pros:**
|
|
270
|
-
- Truly reproducible builds
|
|
271
|
-
- Excellent for monorepos
|
|
272
|
-
- Multi-language support
|
|
273
|
-
- Powerful caching
|
|
274
|
-
|
|
275
|
-
**Cons:**
|
|
276
|
-
- Steep learning curve
|
|
277
|
-
- Complex configuration
|
|
278
|
-
- Requires infrastructure investment
|
|
279
|
-
|
|
280
|
-
## npm/yarn/pnpm
|
|
281
|
-
|
|
282
|
-
JavaScript/TypeScript package managers and build tools.
|
|
283
|
-
|
|
284
|
-
**package.json:**
|
|
285
|
-
```json
|
|
286
|
-
{
|
|
287
|
-
"name": "myapp",
|
|
288
|
-
"version": "1.0.0",
|
|
289
|
-
"scripts": {
|
|
290
|
-
"build": "tsc",
|
|
291
|
-
"test": "jest",
|
|
292
|
-
"lint": "eslint src/**/*.ts",
|
|
293
|
-
"start": "node dist/index.js"
|
|
294
|
-
},
|
|
295
|
-
"dependencies": {
|
|
296
|
-
"express": "^4.18.2"
|
|
297
|
-
},
|
|
298
|
-
"devDependencies": {
|
|
299
|
-
"@types/express": "^4.17.17",
|
|
300
|
-
"typescript": "^5.1.6",
|
|
301
|
-
"jest": "^29.6.1"
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
**pnpm Workspace:**
|
|
307
|
-
```yaml
|
|
308
|
-
# pnpm-workspace.yaml
|
|
309
|
-
packages:
|
|
310
|
-
- 'packages/*'
|
|
311
|
-
- 'apps/*'
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**Comparison:**
|
|
315
|
-
|
|
316
|
-
| Feature | npm | yarn | pnpm |
|
|
317
|
-
|---------|-----|------|------|
|
|
318
|
-
| Speed | Slow | Fast | Fastest |
|
|
319
|
-
| Disk Usage | High | High | Low (hard links) |
|
|
320
|
-
| Workspaces | Yes | Yes | Yes |
|
|
321
|
-
| Offline | No | Yes | Yes |
|
|
322
|
-
|
|
323
|
-
**Pros:**
|
|
324
|
-
- Native JavaScript ecosystem
|
|
325
|
-
- Large package registry
|
|
326
|
-
- Simple configuration
|
|
327
|
-
- Fast iteration
|
|
328
|
-
|
|
329
|
-
**Cons:**
|
|
330
|
-
- Dependency hell without lock files
|
|
331
|
-
- Security concerns
|
|
332
|
-
- No type safety in package.json
|
|
333
|
-
|
|
334
|
-
## Comparison
|
|
335
|
-
|
|
336
|
-
| Feature | Make | Gradle | Maven | Bazel | npm |
|
|
337
|
-
|---------|------|--------|-------|-------|-----|
|
|
338
|
-
| Learning Curve | Low | High | Medium | Very High | Low |
|
|
339
|
-
| Build Speed | Fast | Medium | Slow | Very Fast | Medium |
|
|
340
|
-
| Caching | Manual | Good | Limited | Excellent | Good |
|
|
341
|
-
| Incremental | Manual | Yes | Limited | Yes | Yes |
|
|
342
|
-
| Multi-language | Yes | Limited | No | Yes | No |
|
|
343
|
-
| Reproducibility | No | Medium | Medium | Excellent | Medium |
|
|
344
|
-
| Best For | C/C++ | JVM | Java | Monorepo | JS/TS |
|
|
345
|
-
|
|
346
|
-
## Tool Selection
|
|
347
|
-
|
|
348
|
-
**Choose Make when:**
|
|
349
|
-
- Building C/C++ projects
|
|
350
|
-
- Simple build requirements
|
|
351
|
-
- System-level projects
|
|
352
|
-
- Maximum portability needed
|
|
353
|
-
|
|
354
|
-
**Choose Gradle when:**
|
|
355
|
-
- JVM projects (Java, Kotlin, Scala)
|
|
356
|
-
- Need flexibility and customization
|
|
357
|
-
- Multi-module projects
|
|
358
|
-
- Android development
|
|
359
|
-
|
|
360
|
-
**Choose Maven when:**
|
|
361
|
-
- Standard Java projects
|
|
362
|
-
- Prefer convention over configuration
|
|
363
|
-
- Enterprise Java development
|
|
364
|
-
- Team familiar with Maven
|
|
365
|
-
|
|
366
|
-
**Choose Bazel when:**
|
|
367
|
-
- Large monorepo
|
|
368
|
-
- Need reproducible builds
|
|
369
|
-
- Multi-language projects
|
|
370
|
-
- Have infrastructure resources
|
|
371
|
-
|
|
372
|
-
**Choose npm/yarn/pnpm when:**
|
|
373
|
-
- JavaScript/TypeScript projects
|
|
374
|
-
- Frontend development
|
|
375
|
-
- Node.js applications
|
|
376
|
-
- Need quick iteration
|
|
377
|
-
|
|
378
|
-
## Best Practices
|
|
379
|
-
|
|
380
|
-
1. **Use dependency locking** - Lock files for reproducibility
|
|
381
|
-
2. **Enable caching** - Local and remote caching
|
|
382
|
-
3. **Parallelize builds** - Use tool's parallel features
|
|
383
|
-
4. **Version build tools** - Lock build tool versions
|
|
384
|
-
5. **Clean separation** - Separate build from runtime
|
|
385
|
-
6. **Monitor build times** - Track and optimize
|
|
386
|
-
7. **Use incremental builds** - Don't rebuild unnecessarily
|
|
387
|
-
8. **Document builds** - README with build instructions
|
|
388
|
-
9. **Automate in CI** - Same commands local and CI
|
|
389
|
-
10. **Keep it simple** - Don't over-engineer build scripts
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
# Compilation Optimization
|
|
2
|
-
|
|
3
|
-
Guide to optimizing compilation including compiler flags, incremental compilation, distributed builds, ccache, and parallel compilation strategies.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Overview](#overview)
|
|
8
|
-
- [Compiler Flags](#compiler-flags)
|
|
9
|
-
- [Incremental Compilation](#incremental-compilation)
|
|
10
|
-
- [Distributed Builds](#distributed-builds)
|
|
11
|
-
- [ccache](#ccache)
|
|
12
|
-
- [Parallel Compilation](#parallel-compilation)
|
|
13
|
-
- [Best Practices](#best-practices)
|
|
14
|
-
|
|
15
|
-
## Overview
|
|
16
|
-
|
|
17
|
-
Compilation optimization reduces build times through intelligent caching, parallelization, and compiler settings.
|
|
18
|
-
|
|
19
|
-
**Key Techniques:**
|
|
20
|
-
- Compiler optimization flags
|
|
21
|
-
- Incremental compilation
|
|
22
|
-
- Distributed compilation
|
|
23
|
-
- Compilation caching
|
|
24
|
-
- Parallel execution
|
|
25
|
-
- Precompiled headers
|
|
26
|
-
|
|
27
|
-
## Compiler Flags
|
|
28
|
-
|
|
29
|
-
### GCC/Clang Optimization Levels
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# No optimization (fast compile, slow runtime)
|
|
33
|
-
gcc -O0 source.c -o app
|
|
34
|
-
|
|
35
|
-
# Basic optimization
|
|
36
|
-
gcc -O1 source.c -o app
|
|
37
|
-
|
|
38
|
-
# Recommended for production
|
|
39
|
-
gcc -O2 source.c -o app
|
|
40
|
-
|
|
41
|
-
# Aggressive optimization (larger binaries)
|
|
42
|
-
gcc -O3 source.c -o app
|
|
43
|
-
|
|
44
|
-
# Size optimization
|
|
45
|
-
gcc -Os source.c -o app
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### Debug vs Release Flags
|
|
49
|
-
|
|
50
|
-
```makefile
|
|
51
|
-
# Debug build
|
|
52
|
-
CFLAGS_DEBUG = -g -O0 -DDEBUG -Wall -Wextra
|
|
53
|
-
|
|
54
|
-
# Release build
|
|
55
|
-
CFLAGS_RELEASE = -O2 -DNDEBUG -march=native
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Link-Time Optimization (LTO)
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
# GCC LTO
|
|
62
|
-
gcc -flto -O2 source.c -o app
|
|
63
|
-
|
|
64
|
-
# Clang LTO
|
|
65
|
-
clang -flto -O2 source.c -o app
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Incremental Compilation
|
|
69
|
-
|
|
70
|
-
### Java Incremental Compilation
|
|
71
|
-
|
|
72
|
-
```kotlin
|
|
73
|
-
// build.gradle.kts
|
|
74
|
-
tasks.withType<JavaCompile> {
|
|
75
|
-
options.isIncremental = true
|
|
76
|
-
}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### TypeScript Incremental
|
|
80
|
-
|
|
81
|
-
```json
|
|
82
|
-
{
|
|
83
|
-
"compilerOptions": {
|
|
84
|
-
"incremental": true,
|
|
85
|
-
"composite": true,
|
|
86
|
-
"tsBuildInfoFile": "./.tsbuildinfo"
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Rust Incremental
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
# Enable incremental compilation
|
|
95
|
-
export CARGO_INCREMENTAL=1
|
|
96
|
-
|
|
97
|
-
# Or in Cargo.toml
|
|
98
|
-
[profile.dev]
|
|
99
|
-
incremental = true
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Distributed Builds
|
|
103
|
-
|
|
104
|
-
### distcc (C/C++)
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
# Setup distcc hosts
|
|
108
|
-
export DISTCC_HOSTS="localhost/8 server1/4 server2/4"
|
|
109
|
-
|
|
110
|
-
# Use with Make
|
|
111
|
-
make -j16 CC="distcc gcc" CXX="distcc g++"
|
|
112
|
-
|
|
113
|
-
# Monitoring
|
|
114
|
-
distccmon-text 1
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### Bazel Remote Execution
|
|
118
|
-
|
|
119
|
-
```python
|
|
120
|
-
# .bazelrc
|
|
121
|
-
build --remote_executor=grpc://build-server:8980
|
|
122
|
-
build --remote_cache=grpc://cache-server:8980
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
## ccache
|
|
126
|
-
|
|
127
|
-
### Setup and Configuration
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
# Install
|
|
131
|
-
sudo apt-get install ccache
|
|
132
|
-
|
|
133
|
-
# Configure
|
|
134
|
-
export CC="ccache gcc"
|
|
135
|
-
export CXX="ccache g++"
|
|
136
|
-
|
|
137
|
-
# Set cache size
|
|
138
|
-
ccache -M 10G
|
|
139
|
-
|
|
140
|
-
# Statistics
|
|
141
|
-
ccache -s
|
|
142
|
-
|
|
143
|
-
# Clear cache
|
|
144
|
-
ccache -C
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### CMake Integration
|
|
148
|
-
|
|
149
|
-
```cmake
|
|
150
|
-
find_program(CCACHE_FOUND ccache)
|
|
151
|
-
if(CCACHE_FOUND)
|
|
152
|
-
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
|
153
|
-
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
|
154
|
-
endif()
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## Parallel Compilation
|
|
158
|
-
|
|
159
|
-
### Make Parallel Builds
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
# Use all CPU cores
|
|
163
|
-
make -j$(nproc)
|
|
164
|
-
|
|
165
|
-
# Specific number of jobs
|
|
166
|
-
make -j8
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### Gradle Parallel
|
|
170
|
-
|
|
171
|
-
```kotlin
|
|
172
|
-
// gradle.properties
|
|
173
|
-
org.gradle.parallel=true
|
|
174
|
-
org.gradle.workers.max=8
|
|
175
|
-
org.gradle.caching=true
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### npm Parallel
|
|
179
|
-
|
|
180
|
-
```json
|
|
181
|
-
{
|
|
182
|
-
"scripts": {
|
|
183
|
-
"build": "npm-run-all --parallel build:*",
|
|
184
|
-
"build:client": "webpack",
|
|
185
|
-
"build:server": "tsc"
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## Best Practices
|
|
191
|
-
|
|
192
|
-
1. **Use incremental compilation** - Only rebuild changed files
|
|
193
|
-
2. **Enable caching** - ccache, sccache for native, gradle cache
|
|
194
|
-
3. **Parallelize** - Use -j flag, parallel build options
|
|
195
|
-
4. **Optimize flags** - -O2 for production, -O0 for debug
|
|
196
|
-
5. **Use LTO** - Better optimization, smaller binaries
|
|
197
|
-
6. **Distribute builds** - For large codebases
|
|
198
|
-
7. **Monitor metrics** - Track compilation times
|
|
199
|
-
8. **Precompiled headers** - For C++ projects
|
|
200
|
-
9. **Clean periodically** - Remove stale artifacts
|
|
201
|
-
10. **Profile builds** - Identify bottlenecks
|