Skip to content

Streamline CI and expose brand profiles#1386

Merged
oferchen merged 2 commits into
masterfrom
prepare-for-production-release-optimization
Oct 28, 2025
Merged

Streamline CI and expose brand profiles#1386
oferchen merged 2 commits into
masterfrom
prepare-for-production-release-optimization

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • add a resolve_brand_profile helper that returns the resolved BrandProfile and document it with examples
  • extend the branding tests to cover the new helper
  • simplify the CI workflow to run linting/tests on Linux and cross-compile oc-rsync/oc-rsyncd for Linux, macOS, and Windows targets

Testing

  • cargo test -p rsync-core branding::tests::resolve_brand_profile_delegates_to_detect_brand

https://chatgpt.com/codex/tasks/task_e_6900e2126e2083239d9311cf1ac4c1d2

@oferchen oferchen merged commit 0973498 into master Oct 28, 2025
@oferchen oferchen deleted the prepare-for-production-release-optimization branch October 28, 2025 15:41
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci.yml
Comment on lines 325 to +329
with:
name: oc-rsync-packages
path: |
target/debian/*.deb
target/release/rpms/*.rpm
target/sbom/oc-rsync.cdx.json

target/${{ matrix.target }}/release/oc-rsync*
target/${{ matrix.target }}/release/oc-rsyncd*
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Fix undefined matrix reference in package artifact upload

The package-linux job is no longer a matrix job, yet the upload step still interpolates matrix.target to form the artifact paths. In GitHub Actions this expression is undefined in a non-matrix job, so the workflow will error out before artifacts are uploaded (“Unrecognized named-value: 'matrix'”) and the packages/SBOM are never published. Replace these expressions with concrete paths or add a matrix to the job before referencing matrix.*.

Useful? React with 👍 / 👎.

oferchen added a commit that referenced this pull request May 5, 2026
Mirrors the IoUringDiskBatch and IocpDiskBatch shape so the disk-commit
thread keeps a single calling convention across platforms; covers the
kqueue model, AsyncFileWriter trait mapping, dispatch wiring, limits
vs io_uring, and the migration sequence through #1657 / #1659 / #1386.
oferchen added a commit that referenced this pull request May 7, 2026
Define workloads, metrics, and platform matrix needed to quantify the
performance gap between Linux io_uring writes, macOS clonefile, and
Windows CopyFileExW + IOCP. Plan only; no measurements taken.
oferchen added a commit that referenced this pull request May 17, 2026
#1386) (#4258)

Adds platform_copy_gap, a single bench file that runs DefaultPlatformCopy
on every host (FICLONE/copy_file_range on Linux, clonefile/fcopyfile on
macOS, CopyFileExW/ReFS reflink on Windows) against std::fs::copy. Each
host produces a platform_copy/std_baseline ratio per cell; the ratio is
the kernel-fast-path win on that host and is the unit that can be
compared across hosts. Records the chosen CopyMethod per cell on stderr
so the Criterion report can be cross-referenced to the actual syscall.

Cells: 4 KiB/64 KiB/1 MiB (100 files), 16 MiB (10 files), 256 MiB
(2 files), sized so no cell exceeds ~30 s wall-clock on a typical CI
runner. Independent of the kernel-async IOCP-vs-io_uring bench (#1868)
which exercises a different syscall family.
oferchen added a commit that referenced this pull request May 18, 2026
Mirrors the IoUringDiskBatch and IocpDiskBatch shape so the disk-commit
thread keeps a single calling convention across platforms; covers the
kqueue model, AsyncFileWriter trait mapping, dispatch wiring, limits
vs io_uring, and the migration sequence through #1657 / #1659 / #1386.
oferchen added a commit that referenced this pull request May 18, 2026
Define workloads, metrics, and platform matrix needed to quantify the
performance gap between Linux io_uring writes, macOS clonefile, and
Windows CopyFileExW + IOCP. Plan only; no measurements taken.
oferchen added a commit that referenced this pull request May 18, 2026
#1386) (#4258)

Adds platform_copy_gap, a single bench file that runs DefaultPlatformCopy
on every host (FICLONE/copy_file_range on Linux, clonefile/fcopyfile on
macOS, CopyFileExW/ReFS reflink on Windows) against std::fs::copy. Each
host produces a platform_copy/std_baseline ratio per cell; the ratio is
the kernel-fast-path win on that host and is the unit that can be
compared across hosts. Records the chosen CopyMethod per cell on stderr
so the Criterion report can be cross-referenced to the actual syscall.

Cells: 4 KiB/64 KiB/1 MiB (100 files), 16 MiB (10 files), 256 MiB
(2 files), sized so no cell exceeds ~30 s wall-clock on a typical CI
runner. Independent of the kernel-async IOCP-vs-io_uring bench (#1868)
which exercises a different syscall family.
oferchen added a commit that referenced this pull request May 18, 2026
#1386) (#4258)

Adds platform_copy_gap, a single bench file that runs DefaultPlatformCopy
on every host (FICLONE/copy_file_range on Linux, clonefile/fcopyfile on
macOS, CopyFileExW/ReFS reflink on Windows) against std::fs::copy. Each
host produces a platform_copy/std_baseline ratio per cell; the ratio is
the kernel-fast-path win on that host and is the unit that can be
compared across hosts. Records the chosen CopyMethod per cell on stderr
so the Criterion report can be cross-referenced to the actual syscall.

Cells: 4 KiB/64 KiB/1 MiB (100 files), 16 MiB (10 files), 256 MiB
(2 files), sized so no cell exceeds ~30 s wall-clock on a typical CI
runner. Independent of the kernel-async IOCP-vs-io_uring bench (#1868)
which exercises a different syscall family.
Sign up for free to 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.

1 participant