Skip to content

merge queue: checking main (8684911) and #209 together - #211

Closed
mergify[bot] wants to merge 8 commits into
mainfrom
mergify/merge-queue/f1f99ab9bd
Closed

mergify[bot] wants to merge 8 commits into
mainfrom
mergify/merge-queue/f1f99ab9bd

Conversation

@mergify

@mergify mergify Bot commented Jul 5, 2026 •

Copy link
Copy Markdown
Contributor

🎉 This pull request has been checked successfully and will be merged soon. 🎉

Branch main (8684911) and #209 are queued together for merge.

This pull request has been created by Mergify to check the mergeability of #209.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Required conditions of queue rule default for merge:

  • check-success = coverage
  • check-success = msrv (stable minus 1 releases)
  • check-success = msrv (stable minus 2 releases)
  • check-success = msrv (stable minus 3 releases)
  • check-success = msrv (stable minus 4 releases)
  • check-success = msrv (stable)
  • check-success = quality
  • check-success = test
  • check-success = test-cross-platform (macos-latest, macOS)
  • check-success = test-cross-platform (ubuntu-latest, Linux)
  • check-success = test-cross-platform (windows-latest, Windows)
  • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule main]
  • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
  • github-review-approved [🛡 GitHub repository ruleset rule main]
  • github-review-approved [🛡 GitHub repository ruleset rule ossf_best_practices]
  • all of [🛡 Merge Protections rule Do not merge outdated PRs]:
  • all of [🛡 Merge Protections rule Enforce conventional commit]:
  • all of [🛡 Merge Protections rule Full CI must pass]:
    • check-success = coverage
    • check-success = msrv (stable minus 1 releases)
    • check-success = msrv (stable minus 2 releases)
    • check-success = msrv (stable minus 3 releases)
    • check-success = msrv (stable minus 4 releases)
    • check-success = msrv (stable)
    • check-success = quality
    • check-success = test
    • check-success = test-cross-platform (macos-latest, macOS)
    • check-success = test-cross-platform (ubuntu-latest, Linux)
    • check-success = test-cross-platform (windows-latest, Windows)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-neutral = @mergify/Mergify Merge Protections
    • check-skipped = @mergify/Mergify Merge Protections
    • check-success = @mergify/Mergify Merge Protections

Required conditions to stay in the queue:

---
checking_base_sha: 8684911a3730b126b437f5f825a0e7c06a85b917
previous_check_retries: []
previous_failed_batches: []
pull_requests:
  - number: 209
    scopes: []
scopes: []
...

unclesp1d3r and others added 8 commits July 4, 2026 22:23
Add three boolean shorthands for the most common reverse-engineering tag
filters: --imports (import), --exports (export), --symbols (demangled
symbols). Each is behaviorally equivalent to the corresponding --only-tags
value, conflicts with --only-tags and --raw at parse time, and composes
with --no-tags via a resolved include set (Cli::resolved_include_tags).

The runtime include/exclude overlap check and its error message are
generalized to cover the resolved include set, not just --only-tags.

Closes #208.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
Move the resolved include-tag vec into with_include_tags instead of
cloning it (the earlier overlap borrow is dead under NLL), and drop the
inline comment that restated the helper's doc comment. No behavior change.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
Move the --imports/--exports/--symbols tests into a dedicated
integration_cli_convenience_flags.rs (keeps integration_cli.rs under the
500-line guideline). Run equivalence tests against test_binary_elf, which
has non-zero import (81) and export (9) rows -- the previous PE fixture had
zero exports, making the export/union assertions vacuous. Guard --symbols
against aliasing --imports/--exports (no fixture has demangled rows), assert
non-empty output where tags exist, and cover all six flag/conflict pairs.
Sync the mdBook CLI reference with the three new flags.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
Add fixture-independent unit tests for Cli::resolved_include_tags() so the
--symbols -> DemangledSymbol mapping (and the three-flag union) is falsifiable
even though no fixture yields demangled-tagged rows. Strengthen the --help test
to assert each flag's --only-tags shorthand line, and parameterize the --no-tags
compatibility test across all three flags. Document --raw's full conflict set
(now including the convenience flags) in AGENTS.md and the mdBook CLI reference,
and clarify the resolved_include_tags doc that the convenience mechanism may
combine several flags into a union.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
User-facing messages rendered tags with Debug (`Import`) instead of the CLI
form users type (`import`): the --no-tags overlap error and the TTY summary's
Top-tags line. Make Tag a clap ValueEnum so the canonical names live once in
#[value(name = ...)] attributes; route FromStr through ValueEnum (single source)
and add a Display impl that renders the canonical name via PossibleValue. Switch
both Debug display sites to Display, and collapse the duplicate 25-arm
tag_to_display_string helper (identical output) onto Display so the table,
summary, error message, and parser all share one mapping.

The arg parsers keep value_parser = <Tag as FromStr>::from_str, so --help and
parsing behavior are unchanged; JSON serde serialization is untouched.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- main.rs: switch --only-tags/--no-tags to clap value_enum now that Tag derives
  ValueEnum (matches --enc); removes the hand-rolled from_str value_parser and the
  manual long_help tag list (clap now generates possible values). (CodeRabbit)
- main.rs: sort + dedup the overlap error's tag list so repeated --only-tags
  values produce a stable message. (Copilot)
- integration_flows_6_7.rs: tighten the TTY summary assertion to 'url:' so it
  can't match unrelated text. (Copilot)
- AGENTS.md, docs/src/cli.md: qualify the --no-tags compatibility note -- the
  convenience flags still fail when an excluded tag overlaps the include set;
  document the overlap check on the --no-tags row. (CodeRabbit)
- GOTCHAS.md: update the stale value_parser/from_str notes for value_enum.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- main.rs: collect the overlapping tag names into a BTreeSet<String> so they are
  sorted and de-duplicated in one pass, dropping the mutable Vec plus the separate
  sort()/dedup() calls. (CodeRabbit)

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
@codecov

codecov Bot commented Jul 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.11321% with 1 line in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/types/mod.rs 83.33% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@mergify mergify Bot closed this Jul 5, 2026
@mergify
mergify Bot deleted the mergify/merge-queue/f1f99ab9bd branch July 5, 2026 04:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant