Commit graph

197 commits

Author SHA1 Message Date
GitLab CI
06cd70d1ed perf: Update aggregated performance analysis [ci skip] 2026-01-23 06:46:38 -05:00
GitLab CI
988aa721b6 perf - Add performance report for 4.2.10 [ci skip] 2026-01-23 06:46:22 -05:00
3b843c5099 chore: bump version to 4.2.10 2026-01-23 06:35:46 -05:00
2add5f5eee feat: add pool metrics collector for CPU, memory, and latency
Collects from /cluster and /pools endpoints during test runs:
- Load average (1m, 5m, 15m)
- Memory (used_gb, available_gb, used_percent)
- Container availability (available, allocated, spawning)
- API latency (ms)
- Per-pool breakdown

Usage:
  scripts/collect-pool-metrics.sh start   # Start background collector
  scripts/collect-pool-metrics.sh stop    # Stop collector
  scripts/collect-pool-metrics.sh report  # Generate JSON report
  scripts/collect-pool-metrics.sh snapshot # One-shot current state
2026-01-23 06:35:39 -05:00
d17f326f34 fix: resolve merge conflict markers in aggregated performance report 2026-01-23 05:51:41 -05:00
GitLab CI
d3e2c99111 perf: Update aggregated performance analysis [ci skip] 2026-01-23 05:05:55 -05:00
GitLab CI
ad6923aae8 perf - Add performance report for 4.2.9 [ci skip] 2026-01-23 05:05:38 -05:00
GitLab CI
1e6f06845c perf: Update aggregated performance analysis [ci skip] 2026-01-23 05:01:59 -05:00
GitLab CI
d593a671aa perf - Add performance report for 4.2.8 [ci skip] 2026-01-23 05:01:41 -05:00
0251e66249 chore: bump version to 4.2.9 2026-01-23 04:52:39 -05:00
1150796500 fix: separate csharp and dotnet hello code
csharp (Mono) needs classic class syntax while dotnet (.NET 10) uses
top-level statements
2026-01-23 04:52:34 -05:00
bc80b16e82 chore: bump version to 4.2.8 2026-01-23 04:51:56 -05:00
8e6f6534a5 fix: add dotnet SDK mapping to test script
The dotnet language was missing from get_sdk_file() causing tests to skip
in 5 seconds instead of running the actual SDK at clients/dotnet/sync/src/Un.cs
2026-01-23 04:51:47 -05:00
GitLab CI
646d980f08 perf: Update aggregated performance analysis [ci skip] 2026-01-23 04:36:41 -05:00
GitLab CI
7751529896 perf - Add performance report for 4.2.7 [ci skip] 2026-01-23 04:36:23 -05:00
3360422575 chore: bump version to 4.2.7 2026-01-23 04:27:31 -05:00
8e6b3e58a3 fix: add retry logic with exponential backoff for HTTP 429 errors in CI tests
When fanning out SDK tests in CI, concurrent executions can hit the API's
concurrency limit (HTTP 429). Instead of immediately failing, the test
runner now retries up to 42 times with exponential backoff (2s, 4s, 8s...
capped at 30s) until the execution completes.
2026-01-22 17:07:52 -05:00
7e56327056 feat: add unfreeze_on_demand to remaining 35 SDKs
Updated awk, bash, clojure, cobol, cpp, crystal, csharp, dart, dotnet,
d, elixir, erlang, fortran, fsharp, groovy, haskell, julia, kotlin,
lisp, lua, nim, objective-c, ocaml, perl, php (sync+async), powershell,
prolog, raku, r, scheme, swift, tcl, v, and zig SDKs:

- Add set_unfreeze_on_demand function (PATCH /services/:id)
- Add --unfreeze-on-demand flag for service creation
- Add --set-unfreeze-on-demand command for existing services
2026-01-22 17:01:19 -05:00
e58adcd5fe feat: add unfreeze_on_demand support to all SDKs
Updated Python, JavaScript, Go, Rust, Ruby, Java, and TypeScript SDKs:
- Add unfreeze_on_demand field to Service struct/class
- Add setUnfreezeOnDemand function to toggle setting via PATCH /services/:id
- Add unfreeze_on_demand parameter to createService function
2026-01-22 16:40:36 -05:00
04060aa4da feat: add .NET 10 CLI implementation
- Single-file Un.cs using modern C# features
- Top-level statements, HttpClient, System.Text.Json
- Full feature parity with Mono version (648 lines vs 1260)
- Supports execute, session, service, service env, key commands
2026-01-22 16:36:38 -05:00
a6aad7ec7b feat: add unfreeze_on_demand support to un CLI
- Add --auto-unfreeze / --no-auto-unfreeze commands to toggle setting
- Add --unfreeze-on-demand flag for service create
- Display Auto-Unfreeze status in service --info output
- Add field to unsandbox_service_t struct and API function in un.h
2026-01-22 16:27:14 -05:00
63b41b571e feat: add modern .NET 10 implementation alongside Mono
- Add dotnet/ directory with modern .NET 10 implementation
- Use HttpClient, async/await, and System.Text.Json
- Update Makefile to build both Mono and .NET versions
- Add comprehensive README documenting differences
- Both versions now supported in unsandbox-ubuntu container
2026-01-20 14:05:58 -05:00
fbd9273c3d feat: update all clients to use api.unsandbox.com/keys/validate
Change key validation endpoint from portal to API across all clients:
- C: Update PORTAL_BASE to API_BASE in validate_api_key()
- Python (sync/async): Change PORTAL_BASE to API_BASE
- Perl: Change $PORTAL_BASE to $API_BASE
- Rust (sync/async): Change hardcoded URL to api.unsandbox.com

All other languages (Go, Java, Kotlin, C#, Ruby, PHP, JavaScript) already
use their makeRequest() function with API_BASE, so no changes needed.

The key subcommand already exists and continues to work with the new endpoint.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-20 03:51:38 -05:00
63ed81e5da Revert "Reapply "chore: Remove reports directory""
This reverts commit 9cf253fb19.
2026-01-19 15:27:04 -05:00
9cf253fb19 Reapply "chore: Remove reports directory"
This reverts commit 7319c005d6.
2026-01-19 15:26:25 -05:00
7319c005d6 Revert "chore: Remove reports directory"
This reverts commit f775c86fb2.
2026-01-19 15:26:09 -05:00
f775c86fb2 chore: Remove reports directory 2026-01-19 15:25:28 -05:00
b37ce346d2 Update aggregated performance analysis with 4.2.6 release
Now analyzing 5 releases: 4.2.0, 4.2.3, 4.2.4, 4.2.5, 4.2.6

Key findings with 4.2.6 included:
- Haskell now shows 509.5% variance (21s → 128s)
- V shows 418.2% variance (22s → 114s)
- Elixir remains highly variable at 425.0% (20s → 105s)
- Average duration for 4.2.6: 54s (improvement from 4.2.5's 67s)
- Still shows non-deterministic scheduling patterns

Updated charts reflect 5-release trend analysis.
2026-01-19 15:24:52 -05:00
GitLab CI
12ea3f77f6 perf: Update aggregated performance analysis [ci skip] 2026-01-19 15:22:43 -05:00
GitLab CI
208e552927 perf - Add performance report for 4.2.6 [ci skip] 2026-01-19 15:22:27 -05:00
f68a78684b chore: Bump version to 4.2.6 2026-01-19 15:17:01 -05:00
824a555974 fix(ci): Use git stash to preserve artifacts before checking out main
Fixed perf-aggregate-report job failure caused by artifact files
conflicting with git checkout.

The issue:
- Job downloads artifacts from perf-report (reports/4.2.5/*)
- Tries to checkout main with 'git checkout -B main origin/main'
- Fails because artifact files would be overwritten

The solution:
1. Stash all artifact files and generated content
2. Checkout main branch cleanly
3. Pull latest changes from origin/main
4. Pop stash to restore artifacts
5. Add and commit aggregated report

This preserves the artifact files while properly syncing with remote main.
2026-01-19 14:15:18 -05:00
GitLab CI
106e2014d5 perf - Add performance report for 4.2.5 [ci skip] 2026-01-19 14:10:31 -05:00
27e3ee5ffa chore: Bump version to 4.2.5 2026-01-19 14:02:38 -05:00
03529310c6 Fix GitLab CI YAML syntax for perf-aggregate-report job
Convert complex shell commands to multi-line blocks to fix YAML parsing:
- Changed `test -z "$VAR" && ... || true` patterns to proper if/else blocks
- Used `|` syntax for multi-line shell scripts
- Fixed variable expansion in $FILES for build/un command
- Separated git diff --cached logic into if/else block

This resolves the error:
"jobs:perf-aggregate-report:script config should be a string or
a nested array of strings up to 10 levels deep"

YAML validated successfully with Python yaml.safe_load()
2026-01-19 14:01:05 -05:00
1f83eaf175 Add aggregated performance analysis with dynamic version discovery
- Add perf-aggregate-report CI job to analyze variance across releases
- Implement dynamic version discovery using git tags (ever-growing)
- Generate charts via UN sandbox using matplotlib
- Create AGGREGATED-PERFORMANCE.md with comprehensive methodology
- Add Makefile target for local report generation
- Include 3 visualization charts showing variance trends

Key findings: 2-3x performance variance due to orchestrator placement
on CPU-bound pool causing non-deterministic scheduling.
2026-01-19 13:13:22 -05:00
GitLab CI
1def22d14d perf - Add performance report for 4.2.4 [ci skip] 2026-01-19 07:02:22 -05:00
GitLab CI
627338cdf1 perf - Add performance report for 4.2.3 [ci skip] 2026-01-19 06:58:57 -05:00
0f6f6282d5 chore: Bump version to 4.2.4 2026-01-19 06:56:18 -05:00
c078c21eb3 fix(ci): Handle empty grep results in cleanup-services
Store grep output in variable with || true to prevent exit code 1
when no test-* resources are found
2026-01-19 06:56:10 -05:00
c4ff92c523 chore: Bump version to 4.2.3 2026-01-19 06:53:05 -05:00
fe16333d28 fix(ci): Add 60s delay and fix git checkout for perf-report
- Wait 60s after test matrix completes for data to settle
- Checkout main branch BEFORE generating reports to avoid unstaged changes
- Use git checkout -B to force-create branch from origin/main
2026-01-19 06:52:41 -05:00
252bdffca2 fix(tests): Fix GitHub Actions test failures
- bash: Add file existence check before reading
- bash: Improve exit code handling for invalid JSON results
- bash: Expand detect_language to support all 42 languages
- python: Use detect_language() instead of non-existent EXT_MAP
- python: Remove exit_on_error param that doesn't exist
- python: Replace read_file test with validate_keys existence check
2026-01-19 06:40:49 -05:00
1cd5dc5b1f chore: Bump version to 4.2.2 2026-01-19 06:25:56 -05:00
612088732a fix(ci): Expand cleanup to sessions, snapshots, images
Only targets resources matching test-* pattern to avoid
destroying real services. Cleans up:
- test-* services
- test-* sessions
- test-* snapshots
- test-* images
2026-01-19 06:25:51 -05:00
fcd7e618c8 chore: Bump version to 4.2.1 2026-01-19 06:22:43 -05:00
cdb1be4b35 fix(ci): Cleanup orphaned test services before fan-out
Adds cleanup-services stage to child pipeline that destroys any
existing test services before the 42-language parallel test matrix
runs. Prevents concurrency limit failures from orphaned services.
2026-01-19 06:22:16 -05:00
be38af7ace feat(ci): Auto-generate enhanced perf.md with embedded charts
Updates generate-perf-report.sh to produce markdown with:
- Embedded chart images for all 6 visualizations
- Dynamic observations pulled from actual performance data
- Slowest/fastest language names extracted from JSON
- Raw data table at the end

The markdown now matches the manual report format and will be
generated automatically on each tagged release.
2026-01-18 20:08:38 -05:00
1d08dc0de5 perf: Add charts for 4.2.0 performance report [ci skip] 2026-01-18 19:58:26 -05:00
2dea39875f Add un.h symlink to root for consistency with other clients 2026-01-18 18:32:21 -05:00