Skip to content

chore: release v2.0.0 - #101

Closed
1313 wants to merge 12 commits into
mainfrom
release-plz-2025-11-28T08-32-01Z
Closed

chore: release v2.0.0#101
1313 wants to merge 12 commits into
mainfrom
release-plz-2025-11-28T08-32-01Z

Conversation

@1313

@1313 1313 commented Nov 28, 2025

Copy link
Copy Markdown
Collaborator

🤖 New release

  • screencapturekit: 1.1.0 -> 2.0.0
Changelog

2.0.0 - 2025-11-28

Added

  • [breaking] implement synchronous error propagation for stream operations
  • add AsyncSCScreenshotManager for async screenshot capture

Fixed

  • add macOS 14.0 availability check for updateConfiguration
  • (ffi) add backticks to doc comments for clippy
  • (tests) initialize CoreGraphics for headless CI environments
  • resolve clippy warnings with --all-features
  • add semicolon to satisfy clippy lint
  • resolve all clippy warnings
  • use correct FFI function for async shareable content

Other

  • separate lint job from per-platform build matrix
  • fix formatting issues
  • replace builder pattern with mutable configuration
  • update content_sharing_picker to use SyncCompletion
  • unify async completion patterns with AsyncCompletion
  • unify sync completion patterns across codebase
  • fix formatting issues
  • consolidate workflows into single CI pipeline
  • replace mpsc channel with Mutex+Condvar in content sharing picker
  • replace mpsc channel with Mutex+Condvar in screenshot manager
  • update version to 1.1 in README


This PR was generated with release-plz.

@1313
1313 force-pushed the release-plz-2025-11-28T08-32-01Z branch from 4435b8b to d2551ab Compare November 28, 2025 08:48
@1313 1313 changed the title chore: release v1.1.1 chore: release v1.2.0 Nov 28, 2025
@1313
1313 force-pushed the release-plz-2025-11-28T08-32-01Z branch from d2551ab to 8b86bba Compare November 28, 2025 08:58
- Add context pointer to FFI callbacks for proper state correlation
- Implement completion callback mechanism using Arc<(Mutex, Condvar)>
- Stream methods now block until operation completes and propagate errors
- Update Swift bridge to pass context through async callbacks
- start_capture returns CaptureStartFailed on error
- stop_capture returns CaptureStopFailed on error
- update_configuration and update_content_filter return StreamError

BREAKING CHANGE: FFI callback signatures now include context pointer
@1313
1313 force-pushed the release-plz-2025-11-28T08-32-01Z branch from 8b86bba to 55f6a60 Compare November 28, 2025 09:48
1313 added 11 commits November 28, 2025 10:49
- Add SyncCompletion<T> utility for generic async-to-sync FFI callbacks
- Add UnitCompletion type alias with pre-built callback for void results
- Update sc_stream.rs to use UnitCompletion for stream operations
- Update screenshot_manager.rs to use SyncCompletion for captures
- Update shareable_content to use callback pattern instead of Swift semaphore
- Add comprehensive tests for sync_completion module
- Remove duplicate code across modules (~90 lines reduced)
- Add AsyncCompletion<T> and AsyncCompletionFuture<T> for Future-based callbacks
- Update async_api.rs to use AsyncCompletion for shareable content
- Update async_api.rs to use AsyncCompletion for screenshot manager
- Remove duplicate ShareableContentState, ScreenshotState structs
- Reduce async_api.rs by ~90 lines through code reuse
- Add test for async completion immediate resolution
- Replace custom SyncPicker/SyncPickerState with SyncCompletion<T>
- Remove 34 lines of duplicate completion handling code
- Consistent pattern across all sync FFI callbacks
SCStreamConfiguration now uses mutable set_* methods instead of builder.

Before:
  let config = SCStreamConfiguration::builder()
      .width(1920)
      .height(1080)
      .build();

After:
  let mut config = SCStreamConfiguration::default();
  config.set_width(1920);
  config.set_height(1080);

- Remove SCStreamConfigurationBuilder type
- Change set_* methods to take &mut self
- Update all examples, tests, and documentation
- Replace redundant closures with tuple variant constructors
- Add missing semicolon for consistent formatting
Add sc_initialize_core_graphics() FFI function that calls CGMainDisplayID()
to prevent CGS_REQUIRE_INIT assertion crashes on headless systems.

Called via cg_init_for_headless_ci() in content_filter_tests.
- Add independent 'lint' job for clippy and fmt checks (runs once)
- Build job now only runs build and tests per platform
- Downstream jobs (docs, release) now depend on both lint and build
SCStream.updateConfiguration(_:) is only available on macOS 14.0+.
On macOS 13, the async call would hang indefinitely because the method
doesn't exist. Now returns an error on unsupported versions instead.
@1313 1313 changed the title chore: release v1.2.0 chore: release v2.0.0 Nov 28, 2025
@1313
1313 force-pushed the release-plz-2025-11-28T08-32-01Z branch from 55f6a60 to 34443f2 Compare November 28, 2025 15:00
@1313 1313 closed this Nov 28, 2025
@1313
1313 deleted the release-plz-2025-11-28T08-32-01Z branch May 18, 2026 05:43
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