Skip to content

Tags

Tags give the ability to mark specific points in history as being important
This project is mirrored from https://github.com/element-hq/synapse. Pull mirroring updated .
  • v0.28.0-rc1
    Changes in synapse v0.28.0-rc1 (2018-04-24)
    ===========================================
    
    Minor performance improvement to federation sending and bug fixes.
    
    (Note: This release does not include state resolutions discussed in matrix live)
    
    Features:
    
    * Add metrics for event processing lag (PR #3090)
    * Add metrics for ResponseCache (PR #3092)
    
    Changes:
    
    * Synapse on PyPy (PR #2760) Thanks to @Valodim!
    * move handling of auto_join_rooms to RegisterHandler (PR #2996) Thanks to @krombel!
    * Improve handling of SRV records for federation connections (PR #3016) Thanks to @silkeh!
    * Document the behaviour of ResponseCache (PR #3059)
    * Preparation for py3 (PR #3061, #3073, #3074, #3075, #3103, #3104, #3106, #3107, #3109, #3110) Thanks to @NotAFile!
    * update prometheus dashboard to use new metric names (PR #3069) Thanks to @krombel!
    * use python3-compatible prints (PR #3074) Thanks to @NotAFile!
    * Send federation events concurrently (PR #3078)
    * Limit concurrent event sends for a room (PR #3079)
    * Improve R30 stat definition (PR #3086)
    * Send events to ASes concurrently (PR #3088)
    * Refactor ResponseCache usage (PR #3093)
    * Clarify that SRV may not point to a CNAME (PR #3100) Thanks to @silkeh!
    * Use str(e) instead of e.message (PR #3103) Thanks to @NotAFile!
    * Use six.itervalues in some places (PR #3106) Thanks to @NotAFile!
    * Refactor store.have_events (PR #3117)
    
    Bug Fixes:
    
    * Return 401 for invalid access_token on logout (PR #2938) Thanks to @dklug!
    * Return a 404 rather than a 500 on rejoining empty rooms (PR #3080)
    * fix federation_domain_whitelist (PR #3099)
    * Avoid creating events with huge numbers of prev_events (PR #3113)
    * Reject events which have lots of prev_events (PR #3118)
  • v0.27.4
    Changes in synapse v0.27.4 (2018-04-13)
    
    Update canonicaljson dependency (#3095)
  • v0.27.3
    Changes in synapse v0.27.3 (2018-04-11)
    =======================================
    
    Bug fixes:
    
    * URL quote path segments over federation (#3082)
    
    Changes in synapse v0.27.3-rc2 (2018-04-09)
    ==========================================
    
    v0.27.3-rc1 used a stale version of the develop branch so the changelog overstates
    the functionality. v0.27.3-rc2 is up to date, rc1 should be ignored.
    
    Changes in synapse v0.27.3-rc1 (2018-04-09)
    =======================================
    
    Notable changes include API support for joinability of groups. Also new metrics
    and phone home stats. Phone home stats include better visibility of system usage
    so we can tweak synpase to work better for all users rather than our own experience
    with matrix.org. Also, recording 'r30' stat which is the measure we use to track
    overal growth of the Matrix ecosystem. It is defined as:-
    
    Counts the number of native 30 day retained users, defined as:-
             * Users who have created their accounts more than 30 days
             * Where last seen at most 30 days ago
             * Where account creation and last_seen are > 30 days"
    
    Features:
    
    * Add joinability for groups (PR #3045)
    * Implement group join API (PR #3046)
    * Add counter metrics for calculating state delta (PR #3033)
    * R30 stats (PR #3041)
    * Measure time it takes to calculate state group ID (PR #3043)
    * Add basic performance statistics to phone home (PR #3044)
    * Add response size metrics (PR #3071)
    * phone home cache size configurations (PR #3063)
    
    Changes:
    
    * Add a blurb explaining the main synapse worker (PR #2886) Thanks to @turt2live!
    * Replace old style error catching with 'as' keyword (PR #3000) Thanks to @NotAFile!
    * Use .iter* to avoid copies in StateHandler (PR #3006)
    * Linearize calls to _generate_user_id (PR #3029)
    * Remove last usage of ujson (PR #3030)
    * Use simplejson throughout (PR #3048)
    * Use static JSONEncoders (PR #3049)
    * Remove uses of events.content (PR #3060)
    * Improve database cache performance (PR #3068)
    
    Bug fixes:
    
    * Add room_id to the response of `rooms/{roomId}/join` (PR #2986) Thanks to @jplatte!
    * Fix replication after switch to simplejson (PR #3015)
    * Fix replication after switch to simplejson (PR #3015)
    * 404 correctly on missing paths via NoResource (PR #3022)
    * Fix error when claiming e2e keys from offline servers (PR #3034)
    * fix tests/storage/test_user_directory.py (PR #3042)
    * use PUT instead of POST for federating groups/m.join_policy (PR #3070) Thanks to @krombel!
    * postgres port script: fix state_groups_pkey error (PR #3072)
  • v0.27.3-rc2
    41e06118 · remove errant print ·
  • v0.27.3-rc1
    072fb594 · bump version ·
  • v0.27.2
    Changes in synapse v0.27.2 (2018-03-26)
    =======================================
    
    Bug fixes:
    
    * Fix bug which broke TCP replication between workers (PR #3015)
    
  • v0.27.1
    01f72e2f · Fix date ·
    Changes in synapse v0.27.1 (2018-03-26)
    =======================================
    
    Meta release as v0.27.0 temporarily pointed to the wrong commit
    
  • v0.27.0
    Changes in synapse v0.27.0 (2018-03-26)
    =======================================
    
    No changes since v0.27.0-rc2
    
    Changes in synapse v0.27.0-rc2 (2018-03-19)
    ===========================================
    
    Pulls in v0.26.1
    
    Bug fixes:
    
    * Fix bug introduced in v0.27.0-rc1 that causes much increased memory usage in state cache (PR #3005)
    
    Changes in synapse v0.27.0-rc1 (2018-03-14)
    ===========================================
    
    The common case for running Synapse is not to run separate workers, but for those that do, be aware that synctl no longer starts the main synapse when using ``-a`` option with workers. A new worker file should be added with ``worker_app: synapse.app.homeserver``.
    
    This release also begins the process of renaming a number of the metrics
    reported to prometheus. See `docs/metrics-howto.rst <docs/metrics-howto.rst#block-and-response-metrics-renamed-for-0-27-0>`_.
    Note that the v0.28.0 release will remove the deprecated metric names.
    
    Features:
    
    * Add ability for ASes to override message send time (PR #2754)
    * Add support for custom storage providers for media repository (PR #2867, #2777, #2783, #2789, #2791, #2804, #2812, #2814, #2857, #2868, #2767)
    * Add purge API features, see `docs/admin_api/purge_history_api.rst <docs/admin_api/purge_history_api.rst>`_ for full details (PR #2858, #2867, #2882, #2946, #2962, #2943)
    * Add support for whitelisting 3PIDs that users can register. (PR #2813)
    * Add ``/room/{id}/event/{id}`` API (PR #2766)
    * Add an admin API to get all the media in a room (PR #2818) Thanks to @turt2live!
    * Add ``federation_domain_whitelist`` option (PR #2820, #2821)
    
    Changes:
    
    * Continue to factor out processing from main process and into worker processes. See updated `docs/workers.rst <docs/metrics-howto.rst>`_ (PR #2892 - #2904, #2913, #2920 - #2926, #2947, #2847, #2854, #2872, #2873, #2874, #2928, #2929, #2934, #2856, #2976 - #2984, #2987 - #2989, #2991 - #2993, #2995, #2784)
    * Ensure state cache is used when persisting events (PR #2864, #2871, #2802, #2835, #2836, #2841, #2842, #2849)
    * Change the default config to bind on both IPv4 and IPv6 on all platforms (PR #2435) Thanks to @silkeh!
    * No longer require a specific version of saml2 (PR #2695) Thanks to @okurz!
    * Remove ``verbosity``/``log_file`` from generated config (PR #2755)
    * Add and improve metrics and logging (PR #2770, #2778, #2785, #2786, #2787, #2793, #2794, #2795, #2809, #2810, #2833, #2834, #2844, #2965, #2927, #2975, #2790, #2796, #2838)
    * When using synctl with workers, don't start the main synapse automatically (PR #2774)
    * Minor performance improvements (PR #2773, #2792)
    * Use a connection pool for non-federation outbound connections (PR #2817)
    * Make it possible to run unit tests against postgres (PR #2829)
    * Update pynacl dependency to 1.2.1 or higher (PR #2888) Thanks to @bachp!
    * Remove ability for AS users to call /events and /sync (PR #2948)
    * Use bcrypt.checkpw (PR #2949) Thanks to @krombel!
    
    Bug fixes:
    
    * Fix broken ``ldap_config`` config option (PR #2683) Thanks to @seckrv!
    * Fix error message when user is not allowed to unban (PR #2761) Thanks to @turt2live!
    * Fix publicised groups GET API (singular) over federation (PR #2772)
    * Fix user directory when using ``user_directory_search_all_users`` config option (PR #2803, #2831)
    * Fix error on ``/publicRooms`` when no rooms exist (PR #2827)
    * Fix bug in quarantine_media (PR #2837)
    * Fix url_previews when no Content-Type is returned from URL (PR #2845)
    * Fix rare race in sync API when joining room (PR #2944)
    * Fix slow event search, switch back from GIST to GIN indexes (PR #2769, #2848)
    
  • v0.27.0-rc2
    f5aa027c · Update CHANGES.rst ·
    Changes in synapse v0.27.0-rc2 (2018-03-19)
    ===========================================
    
    Pulls in v0.26.1
    
    Bug fixes:
    
    * Fix bug introduced in v0.27.0-rc1 that causes much increased memory
      usage in state cache (PR #3005)
    
    Changes in synapse v0.26.1 (2018-03-15)
    =======================================
    
    Bug fixes:
    
    * Fix bug where an invalid event caused server to stop functioning
      correctly, due to parsing and serializing bugs in ujson library
      (PR #3008)
    
  • v0.26.1
    Changes in synapse v0.26.1 (2018-03-15)
    =======================================
    
    Bug fixes:
    
    * Fix bug where an invalid event caused server to stop functioning
      correctly, due to parsing and serializing bugs in ujson library.
    
  • v0.27.0-rc1
    ddb00efc · Bump version number ·
    Changes in synapse v0.27.0-rc1 (2018-03-14)
    ===========================================
    
    The common case for running Synapse is not to run separate workers, but for those that do, be aware that synctl no longer starts the main synapse when using ``-a`` option with workers. A new worker file should be added with ``worker_app: synapse.app.homeserver``.
    
    This release also begins the process of renaming a number of the metrics
    reported to prometheus. See `docs/metrics-howto.rst <docs/metrics-howto.rst#block-and-response-metrics-renamed-for-0-27-0>`_.
    Note that the v0.28.0 release will remove the deprecated metric names.
    
    Features:
    
    * Add ability for ASes to override message send time (PR #2754)
    * Add support for custom storage providers for media repository (PR #2867, #2777, #2783, #2789, #2791, #2804, #2812, #2814, #2857, #2868, #2767)
    * Add purge API features, see `docs/admin_api/purge_history_api.rst <docs/admin_api/purge_history_api.rst>`_ for full details (PR #2858, #2867, #2882, #2946, #2962, #2943)
    * Add support for whitelisting 3PIDs that users can register. (PR #2813)
    * Add ``/room/{id}/event/{id}`` API (PR #2766)
    * Add an admin API to get all the media in a room (PR #2818) Thanks to @turt2live!
    * Add ``federation_domain_whitelist`` option (PR #2820, #2821)
    
    Changes:
    
    * Continue to factor out processing from main process and into worker processes. See updated `docs/workers.rst <docs/metrics-howto.rst>`_ (PR #2892 - #2904, #2913, #2920 - #2926, #2947, #2847, #2854, #2872, #2873, #2874, #2928, #2929, #2934, #2856, #2976 - #2984, #2987 - #2989, #2991 - #2993, #2995, #2784)
    * Ensure state cache is used when persisting events (PR #2864, #2871, #2802, #2835, #2836, #2841, #2842, #2849)
    * Change the default config to bind on both IPv4 and IPv6 on all platforms (PR #2435) Thanks to @silkeh!
    * No longer require a specific version of saml2 (PR #2695) Thanks to @okurz!
    * Remove ``verbosity``/``log_file`` from generated config (PR #2755)
    * Add and improve metrics and logging (PR #2770, #2778, #2785, #2786, #2787, #2793, #2794, #2795, #2809, #2810, #2833, #2834, #2844, #2965, #2927, #2975, #2790, #2796, #2838)
    * When using synctl with workers, don't start the main synapse automatically (PR #2774)
    * Minor performance improvements (PR #2773, #2792)
    * Use a connection pool for non-federation outbound connections (PR #2817)
    * Make it possible to run unit tests against postgres (PR #2829)
    * Update pynacl dependency to 1.2.1 or higher (PR #2888) Thanks to @bachp!
    * Remove ability for AS users to call /events and /sync (PR #2948)
    * Use bcrypt.checkpw (PR #2949) Thanks to @krombel!
    
    Bug fixes:
    
    * Fix broken ``ldap_config`` config option (PR #2683) Thanks to @seckrv!
    * Fix error message when user is not allowed to unban (PR #2761) Thanks to @turt2live!
    * Fix publicised groups GET API (singular) over federation (PR #2772)
    * Fix user directory when using ``user_directory_search_all_users`` config option (PR #2803, #2831)
    * Fix error on ``/publicRooms`` when no rooms exist (PR #2827)
    * Fix bug in quarantine_media (PR #2837)
    * Fix url_previews when no Content-Type is returned from URL (PR #2845)
    * Fix rare race in sync API when joining room (PR #2944)
    * Fix slow event search, switch back from GIST to GIN indexes (PR #2769, #2848)
    
  • v0.26.0
    Changes in synapse v0.26.0 (2018-01-05)
    =======================================
    
    No changes since v0.26.0-rc1
    
    Changes in synapse v0.26.0-rc1 (2017-12-13)
    ===========================================
    
    Features:
    
    * Add ability for ASes to publicise groups for their users (PR #2686)
    * Add all local users to the user_directory and optionally search them (PR
      #2723)
    * Add support for custom login types for validating users (PR #2729)
    
    Changes:
    
    * Update example Prometheus config to new format (PR #2648) Thanks to
      @krombel!
    * Rename redact_content option to include_content in Push API (PR #2650)
    * Declare support for r0.3.0 (PR #2677)
    * Improve upserts (PR #2684, #2688, #2689, #2713)
    * Improve documentation of workers (PR #2700)
    * Improve tracebacks on exceptions (PR #2705)
    * Allow guest access to group APIs for reading (PR #2715)
    * Support for posting content in federation_client script (PR #2716)
    * Delete devices and pushers on logouts etc (PR #2722)
    
    Bug fixes:
    
    * Fix database port script (PR #2673)
    * Fix internal server error on login with ldap_auth_provider (PR #2678) Thanks
      to @jkolo!
    * Fix error on sqlite 3.7 (PR #2697)
    * Fix OPTIONS on preview_url (PR #2707)
    * Fix error handling on dns lookup (PR #2711)
    * Fix wrong avatars when inviting multiple users when creating room (PR #2717)
    * Fix 500 when joining matrix-dev (PR #2719)
    
  • v0.26.0-rc1
    80573e39 · Fix rc version number ·
    Changes in synapse v0.26.0-rc1 (2017-12-13)
    ===========================================
    
    Features:
    
    * Add ability for ASes to publicise groups for their users (PR #2686)
    * Add all local users to the user_directory and optionally search them (PR
      #2723)
    * Add support for custom login types for validating users (PR #2729)
    
    Changes:
    
    * Update example Prometheus config to new format (PR #2648) Thanks to
      @krombel!
    * Rename redact_content option to include_content in Push API (PR #2650)
    * Declare support for r0.3.0 (PR #2677)
    * Improve upserts (PR #2684, #2688, #2689, #2713)
    * Improve documentation of workers (PR #2700)
    * Improve tracebacks on exceptions (PR #2705)
    * Allow guest access to group APIs for reading (PR #2715)
    * Support for posting content in federation_client script (PR #2716)
    * Delete devices and pushers on logouts etc (PR #2722)
    
    Bug fixes:
    
    * Fix database port script (PR #2673)
    * Fix internal server error on login with ldap_auth_provider (PR #2678) Thanks
      to @jkolo!
    * Fix error on sqlite 3.7 (PR #2697)
    * Fix OPTIONS on preview_url (PR #2707)
    * Fix error handling on dns lookup (PR #2711)
    * Fix wrong avatars when inviting multiple users when creating room (PR #2717)
    * Fix 500 when joining matrix-dev (PR #2719)
    
  • v0.25.1
    Changes in synapse v0.25.1 (2017-11-17)
    =======================================
    
    Bug fixes:
    
    * Fix login with LDAP and other password provider modules (PR #2678). Thanks to
      @jkolo!
    
  • v0.25.0
    Changes in synapse v0.25.0 (2017-11-15)
    =======================================
    
    Bug fixes:
    
    * Fix port script (PR #2673)
    
    Changes in synapse v0.25.0-rc1 (2017-11-14)
    ===========================================
    
    Features:
    
    * Add is_public to groups table to allow for private groups (PR #2582)
    * Add a route for determining who you are (PR #2668) Thanks to
      @turt2live!
    * Add more features to the password providers (PR #2608, #2610, #2620,
      #2622, #2623, #2624, #2626, #2628, #2629)
    * Add a hook for custom rest endpoints (PR #2627)
    * Add API to update group room visibility (PR #2651)
    
    Changes:
    
    * Ignore <noscript> tags when generating URL preview descriptions (PR
      #2576) Thanks to @maximevaillancourt!
    * Register some /unstable endpoints in /r0 as well (PR #2579) Thanks to
      @krombel!
    * Support /keys/upload on /r0 as well as /unstable (PR #2585)
    * Front-end proxy: pass through auth header (PR #2586)
    * Allow ASes to deactivate their own users (PR #2589)
    * Remove refresh tokens (PR #2613)
    * Automatically set default displayname on register (PR #2617)
    * Log login requests (PR #2618)
    * Always return `is_public` in the `/groups/:group_id/rooms` API (PR
      #2630)
    * Avoid no-op media deletes (PR #2637) Thanks to @spantaleev!
    * Fix various embarrassing typos around user_directory and add some doc.
      (PR #2643)
    * Return whether a user is an admin within a group (PR #2647)
    * Namespace visibility options for groups (PR #2657)
    * Downcase UserIDs on registration (PR #2662)
    * Cache failures when fetching URL previews (PR #2669)
    
    Bug fixes:
    
    * Fix port script (PR #2577)
    * Fix error when running synapse with no logfile (PR #2581)
    * Fix UI auth when deleting devices (PR #2591)
    * Fix typo when checking if user is invited to group (PR #2599)
    * Fix the port script to drop NUL values in all tables (PR #2611)
    * Fix appservices being backlogged and not receiving new events due to a
      bug in notify_interested_services (PR #2631) Thanks to @xyzz!
    * Fix updating rooms avatar/display name when modified by admin (PR
      #2636) Thanks to @farialima!
    * Fix bug in state group storage (PR #2649)
    * Fix 500 on invalid utf-8 in request (PR #2663)
    
  • v0.25.0-rc1
    Changes in synapse v0.25.0-rc1 (2017-11-14)
    ===========================================
    
    Features:
    
    * Add is_public to groups table to allow for private groups (PR #2582)
    * Add a route for determining who you are (PR #2668) Thanks to
      @turt2live!
    * Add more features to the password providers (PR #2608, #2610, #2620,
      #2622, #2623, #2624, #2626, #2628, #2629)
    * Add a hook for custom rest endpoints (PR #2627)
    * Add API to update group room visibility (PR #2651)
    
    Changes:
    
    * Ignore <noscript> tags when generating URL preview descriptions (PR
      #2576) Thanks to @maximevaillancourt!
    * Register some /unstable endpoints in /r0 as well (PR #2579) Thanks to
      @krombel!
    * Support /keys/upload on /r0 as well as /unstable (PR #2585)
    * Front-end proxy: pass through auth header (PR #2586)
    * Allow ASes to deactivate their own users (PR #2589)
    * Remove refresh tokens (PR #2613)
    * Automatically set default displayname on register (PR #2617)
    * Log login requests (PR #2618)
    * Always return `is_public` in the `/groups/:group_id/rooms` API (PR
      #2630)
    * Avoid no-op media deletes (PR #2637) Thanks to @spantaleev!
    * Fix various embarrassing typos around user_directory and add some doc.
      (PR #2643)
    * Return whether a user is an admin within a group (PR #2647)
    * Namespace visibility options for groups (PR #2657)
    * Downcase UserIDs on registration (PR #2662)
    * Cache failures when fetching URL previews (PR #2669)
    
    Bug fixes:
    
    * Fix port script (PR #2577)
    * Fix error when running synapse with no logfile (PR #2581)
    * Fix UI auth when deleting devices (PR #2591)
    * Fix typo when checking if user is invited to group (PR #2599)
    * Fix the port script to drop NUL values in all tables (PR #2611)
    * Fix appservices being backlogged and not receiving new events due to a
      bug in notify_interested_services (PR #2631) Thanks to @xyzz!
    * Fix updating rooms avatar/display name when modified by admin (PR
      #2636) Thanks to @farialima!
    * Fix bug in state group storage (PR #2649)
    * Fix 500 on invalid utf-8 in request (PR #2663)
    
  • v0.24.1
    Changes in synapse v0.24.1 (2017-10-24)
    =======================================
    
    Bug fixes:
    
    * Fix updating group profiles over federation (PR #2567)
    
  • v0.24.0
    Changes in synapse v0.24.0 (2017-10-23)
    =======================================
    
    No changes since v0.24.0-rc1
    
    Changes in synapse v0.24.0-rc1 (2017-10-19)
    ===========================================
    
    Features:
    
    * Add Group Server (PR #2352, #2363, #2374, #2377, #2378, #2382, #2410,
      #2426, #2430, #2454, #2471, #2472, #2544)
    * Add support for channel notifications (PR #2501)
    * Add basic implementation of backup media store (PR #2538)
    * Add config option to auto-join new users to rooms (PR #2545)
    
    Changes:
    
    * Make the spam checker a module (PR #2474)
    * Delete expired url cache data (PR #2478)
    * Ignore incoming events for rooms that we have left (PR #2490)
    * Allow spam checker to reject invites too (PR #2492)
    * Add room creation checks to spam checker (PR #2495)
    * Spam checking: add the invitee to user_may_invite (PR #2502)
    * Process events from federation for different rooms in parallel (PR
      #2520)
    * Allow error strings from spam checker (PR #2531)
    * Improve error handling for missing files in config (PR #2551)
    
    Bug fixes:
    
    * Fix handling SERVFAILs when doing AAAA lookups for federation (PR
      #2477)
    * Fix incompatibility with newer versions of ujson (PR #2483) Thanks to
      @jeremycline!
    * Fix notification keywords that start/end with non-word chars (PR
      #2500)
    * Fix stack overflow and logcontexts from linearizer (PR #2532)
    * Fix 500 error when fields missing from power_levels event (PR #2552)
    * Fix 500 error when we get an error handling a PDU (PR #2553)
    
  • v0.24.0-rc1
    60706477 · Correctly bump version ·
    Changes in synapse v0.24.0-rc1 (2017-10-19)
    ===========================================
    
    Features:
    
    * Add Group Server (PR #2352, #2363, #2374, #2377, #2378, #2382, #2410,
      #2426, #2430, #2454, #2471, #2472, #2544)
    * Add support for channel notifications (PR #2501)
    * Add basic implementation of backup media store (PR #2538)
    * Add config option to auto-join new users to rooms (PR #2545)
    
    Changes:
    
    * Make the spam checker a module (PR #2474)
    * Delete expired url cache data (PR #2478)
    * Ignore incoming events for rooms that we have left (PR #2490)
    * Allow spam checker to reject invites too (PR #2492)
    * Add room creation checks to spam checker (PR #2495)
    * Spam checking: add the invitee to user_may_invite (PR #2502)
    * Process events from federation for different rooms in parallel (PR
      #2520)
    * Allow error strings from spam checker (PR #2531)
    * Improve error handling for missing files in config (PR #2551)
    
    Bug fixes:
    
    * Fix handling SERVFAILs when doing AAAA lookups for federation (PR
      #2477)
    * Fix incompatibility with newer versions of ujson (PR #2483) Thanks to
      @jeremycline!
    * Fix notification keywords that start/end with non-word chars (PR
      #2500)
    * Fix stack overflow and logcontexts from linearizer (PR #2532)
    * Fix 500 error when fields missing from power_levels event (PR #2552)
    * Fix 500 error when we get an error handling a PDU (PR #2553)
    
  • v0.23.1
    Changes in synapse v0.23.1 (2017-10-02)
    =======================================
    
    Changes:
    
    * Make 'affinity' package optional, as it is not supported on some platforms