bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

bitreq: test all TLS feature combinations in CI - #662

Closed
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds
Closed

bitreq: test all TLS feature combinations in CI#662
satsfy wants to merge 3 commits into
rust-bitcoin:masterfrom
satsfy:test-tls-feature-builds

Conversation

@satsfy

@satsfysatsfy commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes#653

The test job only built bitreq with default features, so the optional TLS backends were never compiled. List each backend under rbmt exact_features so everyone gets built and tested.

The sync backends also need std in their set, or nothing is tested (cargo test -p bitreq --no-default-features --features https-rustls --test main -> running 0 tests).

rustls alone is excluded because it has no trust roots (say, use it with webpki-roots), so test_https fails (I think this test gate should change, but that is follow-up territory).

Using this required bumping rbmt to 0.5.1 (it was on 0.2.0).

Note that this makes the CI run for longer.

@satsfysatsfy changed the title bitreq: test all feature combinations in CIbitreq: test all TLS feature combinations in CIJul 14, 2026
@satsfy

satsfy commented Jul 14, 2026

Copy link
Copy Markdown
ContributorAuthor

After inspecting the logs I have noticed that the amount of ran features has not changed at all. I think CI already handled all jobs by default. Will draft until resolved.

@satsfy
satsfy marked this pull request as draft July 14, 2026 18:57
@nyonson

nyonson commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

At the very end of a test job, for example stable/minimal, rbmt prints a summary. But I think the issue here is that the sample_strategy was added in 0.4.0.

Example from this PR
 [1480](https://github.com/rust-bitcoin/corepc/actions/runs/29347149288/job/87133726541?pr=662#step:5:11481)
Test Summary
Commit: 33ed9f25b81edcca565f758fdcc93665c7f96ef1
Package: corepc-client
Examples : (none)
Individual features: client-sync, jsonrpc
Sampled subsets : [client-sync]
Exact sets : (none)
No-std check : skipped
Package: jsonrpc
Examples : (none)
Individual features: base64, bitreq, bitreq_http, bitreq_http_async, client_async, proxy, simple_http, simple_tcp, simple_uds, socks
Sampled subsets : [base64, bitreq, bitreq_http, client_async, proxy, simple_http, simple_tcp, simple_uds, socks], [bitreq, client_async, simple_http, simple_tcp, socks], [base64, bitreq_http_async, proxy, simple_http, simple_uds, socks], [base64, proxy, simple_http, simple_tcp, simple_uds]
Exact sets : (none)
No-std check : skipped
Package: bitreq
Examples : (none)
Individual features: async, async-https, async-https-native-tls, async-https-rustls, async-https-rustls-probe, base64, https, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio, tokio-native-tls, tokio-rustls, webpki-roots
Sampled subsets : [async-https-native-tls, async-https-rustls, base64, log, proxy, rustls-webpki, webpki-roots], [async, https, https-rustls, log, native-tls, rustls-native-certs, rustls-webpki, tokio-native-tls], [async, async-https, async-https-native-tls, async-https-rustls, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls, serde, serde_json, tokio, tokio-native-tls, tokio-rustls], [async-https, base64, https-native-tls, https-rustls, https-rustls-probe, json-using-serde, log, native-tls, proxy, rustls-native-certs, rustls-webpki, serde, serde_json, std, tokio-native-tls, webpki-roots], [async, async-https-rustls, https-native-tls, https-rustls, log, native-tls, proxy, rustls, rustls-native-certs, serde, tokio]
Exact sets : (none)
No-std check : skipped
Package: corepc-types
Examples : (none)
Individual features: serde-deny-unknown-fields, std
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped
Package: jsonrpc-fuzz
Examples : (none)
Individual features: (none)
Sampled subsets : (none)
Exact sets : (none)
No-std check : skipped

satsfy added 3 commits July 17, 2026 17:02
Bump cargo-rbmt 0.5.1.
0.5 names lockfile flag onto each subcommand and folded docsrs
into docs, with --no-docsrs selecting the stable build.
Two entries in allowed_duplicates no longer show up as duplicate deps,
so cargo-rbmt lint flags them as unused. Drop base64 and getrandom to
match cargo-rbmt 0.5.
The test job only built bitreq with default features, so the optional
TLS backends were never compiled or tested. List each backend under
`exact_features` so cargo-rbmt builds and tests them one by one.
Bare `rustls` has no trust roots and fails `test_https`, so exclude it
from the discovered-feature runs. The three sync backends also need
`std` on their feature set, otherwise the test binary is empty and
`test_https` never runs. The async backends pull `std` in via `async`.
@satsfy
satsfyforce-pushed the test-tls-feature-builds branch from 557fd89 to 06d3ea2CompareJuly 17, 2026 20:02
@satsfy
satsfy marked this pull request as ready for review July 17, 2026 20:30
@satsfy
satsfy requested a review from tcharding as a code ownerJuly 17, 2026 20:30
@satsfy

Copy link
Copy Markdown
ContributorAuthor

Reworked the PR: bumped rbmt to 0.5.1 (because sample_strategy needs 0.4.0+), dropped sample_strategy = all for an explicit exact_features list so each TLS backend actually gets tested.

@tcharding

Copy link
Copy Markdown
Member

Please note development has migrated to https://git.rust-bitcoin.org/rust-bitcoin/corepc. Any further comments or pushes here on github may be ignored or lost. Closing since I know @satsfy can handle the migration.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bitreq: CI does not test all features

3 participants

@satsfy@nyonson@tcharding