Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: launchdarkly/python-server-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 9.12.3
Choose a base ref
...
head repository: launchdarkly/python-server-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 9.13.0
Choose a head ref
  • 16 commits
  • 40 files changed
  • 2 contributors

Commits on Nov 4, 2025

  1. Configuration menu
    Copy the full SHA
    94990ad View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2025

  1. Configuration menu
    Copy the full SHA
    16769c5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ef80078 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1dbf5ff View commit details
    Browse the repository at this point in the history
  4. chore: Add FDv2-compatible contract test support (#362)

    <!-- CURSOR_SUMMARY -->
    > [!NOTE]
    > Introduces FDv2 data system configuration and robust synchronizer
    lifecycle (start/stop), integrates SSE streaming with payload filter,
    implements an in-memory feature store, and updates tests and contract
    client accordingly.
    > 
    > - **FDv2/Data System**:
    > - Add `Synchronizer.stop()` to interface and implement stop/lifecycle
    management in `StreamingDataSource` and `PollingDataSource`.
    > - Enhance `FDv2` to track/stop the active synchronizer safely with
    locks; ensure threads shut down cleanly.
    > - Add `datasystem.config` builders (`polling_ds_builder`,
    `streaming_ds_builder`), expose `fdv1_fallback_synchronizer` in config.
    > - **Streaming**:
    > - Switch to `ld_eventsource.SSEClient`; include payload filter in
    stream URI.
    > - Handle stream errors by interrupting/closing SSE; stop on
    unrecoverable errors; ensure closure on exit.
    > - **Polling**:
    >   - Add stoppable sync loop with `_stop` flag and `stop()` method.
    > - **Store**:
    > - Implement thread-safe `InMemoryFeatureStore` with basic CRUD, init,
    and diagnostics; integrate with `Store`.
    > - **Contract tests**:
    > - Support FDv2 `dataSystem` config (initializers/synchronizers,
    payloadFilter) in `client_entity.py`.
    > - **Tests**:
    > - Update streaming synchronizer tests for new SSE client usage and
    stop/interrupt behavior.
    > 
    > <sup>Written by [Cursor
    Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
    e87daa0. This will update automatically
    on new commits. Configure
    [here](https://cursor.com/dashboard?tab=bugbot).</sup>
    <!-- /CURSOR_SUMMARY -->
    keelerm84 committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    94227e2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    eb8be43 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    15848b9 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7f78595 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    eda897b View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    91b6144 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    009b499 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    8c0fa6b View commit details
    Browse the repository at this point in the history
  12. chore: Separate status check from synchronizer functionality (#373)

    In the previous setup, we would only check the fallback or recovery
    conditions once the synchronizer returned an update. If the synchronizer
    was stuck, or nothing was changing in the environment, we would never
    check the conditions.
    
    This configuration also exposed an interesting behavior. If the
    synchronizer cannot connect, it will emit error updates. Each time we
    receive an error, we check if we have failed to initialize for the last
    10 seconds. If so, we re-create the primary synchronizer.
    
    When it continues to fail, the first update will trigger the condition
    check. And since it has still failed for 10 seconds, it will immediately
    error out. With this change, we can be assured a synchronizer is given
    at least 10 seconds to try before the condition is evaluated.
    keelerm84 committed Nov 19, 2025
    Configuration menu
    Copy the full SHA
    f628b72 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    aad6457 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    0e7c32b View commit details
    Browse the repository at this point in the history
  15. chore(main): release 9.13.0 (#377)

    🤖 I have created a release *beep* *boop*
    ---
    
    
    ##
    [9.13.0](9.12.3...9.13.0)
    (2025-11-19)
    
    
    ### Features
    
    * **experimental:** Release EAP support for FDv2 data system
    ([#376](#376))
    ([0e7c32b](0e7c32b))
    
    ---
    This PR was generated with [Release
    Please](https://github.com/googleapis/release-please). See
    [documentation](https://github.com/googleapis/release-please#release-please).
    github-actions[bot] authored Nov 19, 2025
    Configuration menu
    Copy the full SHA
    85947d6 View commit details
    Browse the repository at this point in the history
Loading