serialbench 0.1.2 → 0.1.3
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.
- checksums.yaml +4 -4
- data/.github/workflows/benchmark.yml +273 -228
- data/.github/workflows/rake.yml +11 -0
- data/.github/workflows/windows-debug.yml +171 -0
- data/.gitignore +32 -0
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +274 -0
- data/Gemfile +13 -1
- data/README.adoc +36 -0
- data/data/schemas/result.yml +29 -0
- data/docs/PLATFORM_VALIDATION_FIX.md +79 -0
- data/docs/SYCK_YAML_FIX.md +91 -0
- data/docs/WEBSITE_COMPLETION_PLAN.md +440 -0
- data/docs/WINDOWS_LIBXML_FIX.md +136 -0
- data/docs/WINDOWS_SETUP.md +122 -0
- data/lib/serialbench/benchmark_runner.rb +3 -3
- data/lib/serialbench/cli/benchmark_cli.rb +74 -1
- data/lib/serialbench/cli/environment_cli.rb +3 -3
- data/lib/serialbench/cli/resultset_cli.rb +72 -26
- data/lib/serialbench/cli/ruby_build_cli.rb +75 -88
- data/lib/serialbench/cli/validate_cli.rb +88 -0
- data/lib/serialbench/cli.rb +6 -2
- data/lib/serialbench/config_manager.rb +15 -26
- data/lib/serialbench/models/benchmark_config.rb +12 -0
- data/lib/serialbench/models/benchmark_result.rb +39 -3
- data/lib/serialbench/models/environment_config.rb +3 -2
- data/lib/serialbench/models/platform.rb +56 -4
- data/lib/serialbench/models/result.rb +28 -1
- data/lib/serialbench/models/result_set.rb +8 -0
- data/lib/serialbench/ruby_build_manager.rb +19 -23
- data/lib/serialbench/runners/asdf_runner.rb +1 -1
- data/lib/serialbench/runners/docker_runner.rb +2 -4
- data/lib/serialbench/runners/local_runner.rb +71 -0
- data/lib/serialbench/serializers/base_serializer.rb +1 -1
- data/lib/serialbench/serializers/json/rapidjson_serializer.rb +1 -1
- data/lib/serialbench/serializers/toml/base_toml_serializer.rb +0 -2
- data/lib/serialbench/serializers/toml/toml_rb_serializer.rb +1 -1
- data/lib/serialbench/serializers/toml/tomlib_serializer.rb +1 -1
- data/lib/serialbench/serializers/xml/libxml_serializer.rb +4 -8
- data/lib/serialbench/serializers/xml/nokogiri_serializer.rb +2 -2
- data/lib/serialbench/serializers/xml/oga_serializer.rb +4 -8
- data/lib/serialbench/serializers/xml/ox_serializer.rb +2 -2
- data/lib/serialbench/serializers/xml/rexml_serializer.rb +3 -3
- data/lib/serialbench/serializers/yaml/psych_serializer.rb +1 -1
- data/lib/serialbench/serializers/yaml/syck_serializer.rb +1 -1
- data/lib/serialbench/serializers.rb +2 -2
- data/lib/serialbench/site_generator.rb +180 -2
- data/lib/serialbench/templates/assets/css/format_based.css +1 -53
- data/lib/serialbench/templates/assets/css/themes.css +5 -4
- data/lib/serialbench/templates/assets/js/chart_helpers.js +44 -14
- data/lib/serialbench/templates/assets/js/dashboard.js +14 -15
- data/lib/serialbench/templates/format_based.liquid +480 -252
- data/lib/serialbench/version.rb +1 -1
- data/lib/serialbench/yaml_validator.rb +36 -0
- data/serialbench.gemspec +11 -2
- metadata +34 -23
- data/.github/workflows/ci.yml +0 -74
- data/.github/workflows/docker.yml +0 -272
|
@@ -108,7 +108,9 @@ class SerialBenchDashboard {
|
|
|
108
108
|
|
|
109
109
|
if (this.data.environments) {
|
|
110
110
|
Object.values(this.data.environments).forEach(env => {
|
|
111
|
-
|
|
111
|
+
// Use os-arch combination instead of ruby_platform
|
|
112
|
+
const platformKey = `${env.os}-${env.arch}`;
|
|
113
|
+
platforms.add(platformKey);
|
|
112
114
|
rubyVersions.add(env.ruby_version);
|
|
113
115
|
});
|
|
114
116
|
}
|
|
@@ -120,7 +122,7 @@ class SerialBenchDashboard {
|
|
|
120
122
|
Array.from(platforms).sort().forEach(platform => {
|
|
121
123
|
const option = document.createElement('option');
|
|
122
124
|
option.value = platform;
|
|
123
|
-
option.textContent =
|
|
125
|
+
option.textContent = platform;
|
|
124
126
|
platformSelect.appendChild(option);
|
|
125
127
|
});
|
|
126
128
|
}
|
|
@@ -148,15 +150,6 @@ class SerialBenchDashboard {
|
|
|
148
150
|
}
|
|
149
151
|
}
|
|
150
152
|
|
|
151
|
-
formatPlatformName(platform) {
|
|
152
|
-
const platformMap = {
|
|
153
|
-
'aarch64-linux': 'ARM64 Linux',
|
|
154
|
-
'x86_64-linux': 'x64 Linux',
|
|
155
|
-
'x86_64-darwin': 'x64 macOS',
|
|
156
|
-
'aarch64-darwin': 'ARM64 macOS'
|
|
157
|
-
};
|
|
158
|
-
return platformMap[platform] || platform;
|
|
159
|
-
}
|
|
160
153
|
|
|
161
154
|
setupFilterEventListeners() {
|
|
162
155
|
// Platform filter
|
|
@@ -213,7 +206,9 @@ class SerialBenchDashboard {
|
|
|
213
206
|
// Set all platforms and versions by default
|
|
214
207
|
if (this.data.environments) {
|
|
215
208
|
Object.values(this.data.environments).forEach(env => {
|
|
216
|
-
|
|
209
|
+
// Use os-arch combination instead of ruby_platform
|
|
210
|
+
const platformKey = `${env.os}-${env.arch}`;
|
|
211
|
+
this.filters.platforms.add(platformKey);
|
|
217
212
|
this.filters.rubyVersions.add(env.ruby_version);
|
|
218
213
|
});
|
|
219
214
|
}
|
|
@@ -336,8 +331,10 @@ class SerialBenchDashboard {
|
|
|
336
331
|
shouldIncludeEnvironment(env) {
|
|
337
332
|
if (!env) return false;
|
|
338
333
|
|
|
334
|
+
// Use os-arch combination for platform matching
|
|
335
|
+
const platformKey = `${env.os}-${env.arch}`;
|
|
339
336
|
const platformMatch = this.filters.platforms.size === 0 ||
|
|
340
|
-
this.filters.platforms.has(
|
|
337
|
+
this.filters.platforms.has(platformKey);
|
|
341
338
|
const versionMatch = this.filters.rubyVersions.size === 0 ||
|
|
342
339
|
this.filters.rubyVersions.has(env.ruby_version);
|
|
343
340
|
|
|
@@ -634,8 +631,10 @@ class SerialBenchDashboard {
|
|
|
634
631
|
// Show all environments, but apply platform and version filters only (not format)
|
|
635
632
|
const filteredEnvs = Object.entries(this.data.environments)
|
|
636
633
|
.filter(([key, env]) => {
|
|
634
|
+
// Use os-arch combination for platform matching
|
|
635
|
+
const platformKey = `${env.os}-${env.arch}`;
|
|
637
636
|
const platformMatch = this.filters.platforms.size === 0 ||
|
|
638
|
-
this.filters.platforms.has(
|
|
637
|
+
this.filters.platforms.has(platformKey);
|
|
639
638
|
const versionMatch = this.filters.rubyVersions.size === 0 ||
|
|
640
639
|
this.filters.rubyVersions.has(env.ruby_version);
|
|
641
640
|
return platformMatch && versionMatch;
|
|
@@ -649,7 +648,7 @@ class SerialBenchDashboard {
|
|
|
649
648
|
container.innerHTML = filteredEnvs.map(([key, env]) => `
|
|
650
649
|
<div class="environment-card fade-in-up">
|
|
651
650
|
<h3 class="environment-card-title">
|
|
652
|
-
Ruby ${env.ruby_version} on ${
|
|
651
|
+
Ruby ${env.ruby_version} on ${env.os}-${env.arch}
|
|
653
652
|
</h3>
|
|
654
653
|
<p><strong>Source:</strong> ${env.source_file ? env.source_file.split('/').pop() : 'Unknown'}</p>
|
|
655
654
|
<p><strong>Timestamp:</strong> ${new Date(env.timestamp).toLocaleString()}</p>
|