← Back to issue list

Output build times for each pip package built

View original Github issue

Metadata

Project
charmcraft
Number
#1842
Type
issue
State
open
Author
sed-i
Labels
Created
Updated
Closed

Current evaluation

Feature request to output per-package build times during charmcraft pack, since --no-binary builds can be very slow. Open 737 days with no labels, no comments, and no maintainer response. The --no-binary behavior is still active in the codebase.

Suggested action: needs triage

Reason: The issue has no labels, zero comments, and no maintainer interaction in 737 days, showing no sign of triage. However, the underlying problem remains relevant: charm_builder.py and the poetry plugin still use --no-binary=:all: (confirmed in current code), so per-package build timing would still help diagnose slow builds. It should be assessed and either scoped or deferred, not closed as stale.

Impact: 35 Quick Win: 21.0 Staleness: 75 Complexity: 40 Confidence: 70 Support Request: 10

Issue body

### What needs to get done During/after packing, please output the time it took to build each package. ### Why it needs to get done Since charmcraft packs with `--no-binary`, build times can be very long. It would be very useful for charm authors to know which parts of their deps contribute to build time. For example, we had no idea that it's `pydantic_core` that is the lengthy one and not `pydantic` itself. Such knowledge could help us in deciding if we want to keep a dep or drop it. For example, httpx takes a long time to build, so one might prefer using urllib instead. This could be either in a tree format similar to pipdeptree, or a flat list like strace. Either works :) ``` $ pipdeptree cosl==0.0.23 ├── ops [required: Any, installed: 2.15.0] │ ├── PyYAML [required: ==6.*, installed: 6.0.2] │ └── websocket-client [required: ==1.*, installed: 1.8.0] ├── pydantic [required: Any, installed: 2.8.2] │ ├── annotated-types [required: >=0.4.0, installed: 0.7.0] │ ├── pydantic_core [required: ==2.20.1, installed: 2.20.1] │ │ └── typing_extensions [required: >=4.6.0,!=4.7.0, installed: 4.12.2] │ └── typing_extensions [required: >=4.6.1, installed: 4.12.2] ├── PyYAML [required: Any, installed: 6.0.2] ├── tenacity [required: Any, installed: 9.0.0] └── typing_extensions [required: Any, installed: 4.12.2] ``` ``` $ strace -wc sleep 3 % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 99.93 3.000132 3000132 1 clock_nanosleep 0.02 0.000542 18 30 12 openat 0.01 0.000425 19 22 mmap 0.01 0.000321 16 20 close 0.01 0.000272 15 18 fstat 0.01 0.000241 240 1 execve 0.00 0.000054 17 3 mprotect 0.00 0.000042 13 3 brk 0.00 0.000041 13 3 read 0.00 0.000022 11 2 pread64 0.00 0.000021 20 1 munmap 0.00 0.000015 15 1 futex 0.00 0.000015 14 1 prlimit64 0.00 0.000015 14 1 arch_prctl 0.00 0.000014 14 1 getrandom 0.00 0.000014 14 1 set_tid_address 0.00 0.000014 14 1 rseq 0.00 0.000014 13 1 set_robust_list 0.00 0.000012 12 1 1 access ------ ----------- ----------- --------- --------- ---------------- 100.00 3.002227 26805 112 13 total ```

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 35
Quick Win: 21.0
Staleness: 75
Complexity: 40
Confidence: 70
Support Request: 10
needs triage Feature request to output per-package build times during charmcraft pack, since --no-binary builds can be very slow. Open 737 days with no labels, no comments, and no maintainer response. The --no-binary behavior is still active in the codebase.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 45
Confidence: 75
Support Request: 10
needs triage Feature request to log build times per pip package during packing to identify slow dependencies. Unlabelled, no maintainer response, inactive for over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 45
Confidence: 90
Support Request: 10
needs triage Feature request to output per-package build times during charmcraft packing to identify slow dependencies. Unlabelled with no maintainer comments or activity in over 10 months.
qwen3.6-35b-a3b-mtp-q6
Staleness: 85
Complexity: 45
Confidence: 90
Support Request: 15
needs triage Feature request to log per-package build times during charmcraft packing to identify slow dependencies. Currently unlabelled and awaiting maintainer review.
qwen3.6-35b-a3b-mtp-q6
Staleness: 75
Complexity: 30
Confidence: 85
Support Request: 0
needs triage Request to log per-package build times during packing to help authors identify slow dependencies when using --no-binary. Open, zero comments, inactive for 304 days, unassigned. Needs triage and assignment.

Update history

No update history recorded yet.

Related issues

No related issues found above the similarity threshold.