Skip to content

Comments

XEP-0402 PEP Native Bookmarks#4545

Merged
jacekwegr merged 8 commits intomasterfrom
pep-native-bookmarks
Jul 16, 2025
Merged

XEP-0402 PEP Native Bookmarks#4545
jacekwegr merged 8 commits intomasterfrom
pep-native-bookmarks

Conversation

@chrzaszcz
Copy link
Member

@chrzaszcz chrzaszcz commented Jul 3, 2025

The goal of this PR is to ensure support for XEP-0402 PEP Native Bookmarks used to store a private list of MUC rooms in a PEP node.

Main Changes:

  • Ensure item retraction is broadcasted in PEP.
  • Support the value max of the max_items option.
  • Verify item retraction in pubsub_tools.
  • Add a test for XEP-0402.

Details in commit messages.

@mongoose-im
Copy link
Collaborator

mongoose-im commented Jul 3, 2025

elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / bdd409e
Reports root/ big
OK: 683 / Failed: 0 / User-skipped: 72 / Auto-skipped: 0


small_tests_26 / small_tests / bdd409e
Reports root / small


small_tests_27 / small_tests / bdd409e
Reports root / small


small_tests_27_arm64 / small_tests / bdd409e
Reports root / small


ldap_mnesia_26 / ldap_mnesia / bdd409e
Reports root/ big
OK: 2333 / Failed: 0 / User-skipped: 1187 / Auto-skipped: 0


ldap_mnesia_27 / ldap_mnesia / bdd409e
Reports root/ big
OK: 2333 / Failed: 0 / User-skipped: 1352 / Auto-skipped: 0


dynamic_domains_mysql_redis_27 / mysql_redis / bdd409e
Reports root/ big
OK: 5164 / Failed: 0 / User-skipped: 154 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / bdd409e
Reports root/ big
OK: 5034 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


internal_mnesia_27 / internal_mnesia / bdd409e
Reports root/ big
OK: 2467 / Failed: 0 / User-skipped: 1218 / Auto-skipped: 0


pgsql_cets_27 / pgsql_cets / bdd409e
Reports root/ big
OK: 5286 / Failed: 0 / User-skipped: 188 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / bdd409e
Reports root/ big
OK: 5199 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


mysql_redis_27 / mysql_redis / bdd409e
Reports root/ big
OK: 5568 / Failed: 0 / User-skipped: 149 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / bdd409e
Reports root/ big
OK: 5424 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


cockroachdb_cets_27 / cockroachdb_cets / bdd409e
Reports root/ big
OK: 5295 / Failed: 6 / User-skipped: 188 / Auto-skipped: 0

pubsub_SUITE:dag+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3773@localhost/res1">>,
          escalus_tcp,<0.118140.0>,
          [{event_manager,<0.118130.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3773">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.118130.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3773">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3773">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3773">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"536f7ddcb659ce13">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3829@localhost/res1">>,
          escalus_tcp,<0.119427.0>,
          [{event_manager,<0.119423.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3829">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.119423.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3829">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3829">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3829">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"30df1651b0927acb">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3831@localhost/res1">>,
          escalus_tcp,<0.119502.0>,
          [{event_manager,<0.119491.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3831">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.119491.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3831">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3831">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3831">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"6c7d4ad6356dd326">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3835@localhost/res1">>,
          escalus_tcp,<0.119580.0>,
          [{event_manager,<0.119577.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3835">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.119577.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3835">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3835">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3835">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"0f23cc4a57c69edb">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3837@localhost/res1">>,
          escalus_tcp,<0.119658.0>,
          [{event_manager,<0.119645.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3837">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.119645.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3837">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3837">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3837">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"8ebe3b670a50369d">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3841@localhost/res1">>,
          escalus_tcp,<0.119733.0>,
          [{event_manager,<0.119731.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3841">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.119731.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3841">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3841">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3841">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"5bde48c4b0f56feb">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log


pgsql_mnesia_27 / pgsql_mnesia / bdd409e
Reports root/ big
OK: 5589 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


mssql_mnesia_27 / odbc_mssql_mnesia / bdd409e
Reports root/ big
OK: 5584 / Failed: 0 / User-skipped: 133 / Auto-skipped: 0


cockroachdb_cets_27 / cockroachdb_cets / bdd409e
Reports root/ big
OK: 123 / Failed: 3 / User-skipped: 2 / Auto-skipped: 0

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_122@localhost/res1">>,
          escalus_tcp,<0.3606.0>,
          [{event_manager,<0.3594.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_122">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.3594.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_122">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_122">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_122">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"c75117658fb7edc6">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_check_respon...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_125@localhost/res1">>,
          escalus_tcp,<0.3682.0>,
          [{event_manager,<0.3672.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_125">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.3672.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_125">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_125">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_125">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"0b66469ae6a03ce3">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_check_respon...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_128@localhost/res1">>,
          escalus_tcp,<0.3762.0>,
          [{event_manager,<0.3750.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_128">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.3750.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_128">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_128">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_128">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"8d2679c02602970d">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_check_respon...

Report log

@codecov
Copy link

codecov bot commented Jul 3, 2025

Codecov Report

Attention: Patch coverage is 72.72727% with 3 lines in your changes missing coverage. Please review.

Project coverage is 85.93%. Comparing base (dd0d681) to head (813cbb7).
Report is 11 commits behind head on master.

Files with missing lines Patch % Lines
src/pubsub/mod_pubsub.erl 72.72% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4545      +/-   ##
==========================================
+ Coverage   85.83%   85.93%   +0.10%     
==========================================
  Files         565      565              
  Lines       33820    33820              
==========================================
+ Hits        29030    29064      +34     
+ Misses       4790     4756      -34     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

chrzaszcz added 6 commits July 4, 2025 09:58
Previously, only publishing an item would result in notifications.
This was due to broadcast_stanza/9 instead of broadcast_stanza/10 being called,
while only the latter could send notifications for PEP.

The solution is to add Publisher JID as an argument passed in all function calls
leading to broadcast_stanza/*

NOTE: This does not fix sending notifications in other situations.
      Only item retraction is fixed in this commit, and further fixes
      can be done independently.
Previously, the only accepted values were positive integers,
while XEP-0163 describes the field as:

    Max # of items to persist.
    `max` for no specific limit other than a server imposed maximum.

Thus, the field needs to be a string, but it requires special handling,
since anything different than "max" would be interpreted as an integer.

The "server imposed maximum" is the "max_items" value
configured in the options of mod_pubsub.
Use the code from pubsub_SUITE.
There was similar code in pubsub_tools (check_item_notification),
but it was overcomplicated.
This extra construction was present only for one of the many checks,
leading to inconsistency and overcomplication.
Although the XEP does not introduce any server requirements
other than the ones from XEP-0163, the examples use some options
not covered by our PubSub and PEP tests.

This is why I decided to add an extra test case for it.
It is not split into multiple tests to minimize the test duration and resources
(there would be some redundancy after splitting the test).

Particular functionality tested:
- Value "true" instead of "1" for boolean options.
- Value "max" for "max_items" (it is only checked that it is accepted).
- Item retration with a notification request.
- Notification of item retraction.
@chrzaszcz chrzaszcz force-pushed the pep-native-bookmarks branch from bdd409e to 218c733 Compare July 4, 2025 07:59
@mongoose-im
Copy link
Collaborator

mongoose-im commented Jul 4, 2025

small_tests_26 / small_tests / 218c733
Reports root / small


elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / 218c733
Reports root/ big
OK: 683 / Failed: 0 / User-skipped: 72 / Auto-skipped: 0


small_tests_27_arm64 / small_tests / 218c733
Reports root / small


small_tests_27 / small_tests / 218c733
Reports root / small


ldap_mnesia_26 / ldap_mnesia / 218c733
Reports root/ big
OK: 2333 / Failed: 0 / User-skipped: 1187 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 218c733
Reports root/ big
OK: 5034 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


ldap_mnesia_27 / ldap_mnesia / 218c733
Reports root/ big
OK: 2333 / Failed: 0 / User-skipped: 1352 / Auto-skipped: 0


dynamic_domains_mysql_redis_27 / mysql_redis / 218c733
Reports root/ big
OK: 5164 / Failed: 0 / User-skipped: 154 / Auto-skipped: 0


internal_mnesia_27 / internal_mnesia / 218c733
Reports root/ big
OK: 2467 / Failed: 0 / User-skipped: 1218 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / 218c733
Reports root/ big
OK: 5199 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


pgsql_cets_27 / pgsql_cets / 218c733
Reports root/ big
OK: 5286 / Failed: 0 / User-skipped: 188 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / 218c733
Reports root/ big
OK: 5194 / Failed: 0 / User-skipped: 124 / Auto-skipped: 0


pgsql_mnesia_26 / pgsql_mnesia / 218c733
Reports root/ big
OK: 5424 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


pgsql_mnesia_27 / pgsql_mnesia / 218c733
Reports root/ big
OK: 5589 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


mysql_redis_27 / mysql_redis / 218c733
Reports root/ big
OK: 5568 / Failed: 0 / User-skipped: 149 / Auto-skipped: 0


cockroachdb_cets_27 / cockroachdb_cets / 218c733
Reports root/ big
OK: 5294 / Failed: 4 / User-skipped: 188 / Auto-skipped: 0

pubsub_SUITE:dag+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3840@localhost/res1">>,
          escalus_tcp,<0.118436.0>,
          [{event_manager,<0.118417.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3840">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.118417.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3840">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3840">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3840">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"a9c129bc4c627d71">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:dag+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3845@localhost/res1">>,
          escalus_tcp,<0.118515.0>,
          [{event_manager,<0.118512.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3845">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.118512.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3845">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3845">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3845">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"d6eab3653694da1b">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:dag+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3847@localhost/res1">>,
          escalus_tcp,<0.118590.0>,
          [{event_manager,<0.118580.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3847">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.118580.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3847">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3847">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3847">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"cc70f87310f8a0a5">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:tree+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3902@localhost/res1">>,
          escalus_tcp,<0.119875.0>,
          [{event_manager,<0.119864.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3902">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.119864.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3902">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3902">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3902">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"7093c97335c5caf8">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log


mssql_mnesia_27 / odbc_mssql_mnesia / 218c733
Reports root/ big
OK: 5584 / Failed: 0 / User-skipped: 133 / Auto-skipped: 0

@chrzaszcz chrzaszcz changed the title XEP-0402 PEP Native Bookmarks [WIP] XEP-0402 PEP Native Bookmarks Jul 15, 2025
Copy link
Contributor

@jacekwegr jacekwegr left a comment

Choose a reason for hiding this comment

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

Looks good to me! 👍

@mongoose-im
Copy link
Collaborator

mongoose-im commented Jul 15, 2025

elasticsearch_and_cassandra_27 / elasticsearch_and_cassandra_mnesia / 813cbb7
Reports root/ big
OK: 683 / Failed: 0 / User-skipped: 72 / Auto-skipped: 0


small_tests_26 / small_tests / 813cbb7
Reports root / small


small_tests_27 / small_tests / 813cbb7
Reports root / small


small_tests_27_arm64 / small_tests / 813cbb7
Reports root / small


ldap_mnesia_26 / ldap_mnesia / 813cbb7
Reports root/ big
OK: 2333 / Failed: 0 / User-skipped: 1187 / Auto-skipped: 0


ldap_mnesia_27 / ldap_mnesia / 813cbb7
Reports root/ big
OK: 2333 / Failed: 0 / User-skipped: 1352 / Auto-skipped: 0


dynamic_domains_mysql_redis_27 / mysql_redis / 813cbb7
Reports root/ big
OK: 5164 / Failed: 0 / User-skipped: 154 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_26 / pgsql_mnesia / 813cbb7
Reports root/ big
OK: 5034 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


internal_mnesia_27 / internal_mnesia / 813cbb7
Reports root/ big
OK: 2467 / Failed: 0 / User-skipped: 1218 / Auto-skipped: 0


dynamic_domains_pgsql_mnesia_27 / pgsql_mnesia / 813cbb7
Reports root/ big
OK: 5199 / Failed: 0 / User-skipped: 119 / Auto-skipped: 0


pgsql_cets_27 / pgsql_cets / 813cbb7
Reports root/ big
OK: 5286 / Failed: 0 / User-skipped: 188 / Auto-skipped: 0


dynamic_domains_mssql_mnesia_27 / odbc_mssql_mnesia / 813cbb7
Reports root/ big
OK: 5194 / Failed: 0 / User-skipped: 124 / Auto-skipped: 0


cockroachdb_cets_27 / cockroachdb_cets / 813cbb7
Reports root/ big
OK: 5292 / Failed: 3 / User-skipped: 188 / Auto-skipped: 0

pubsub_SUITE:dag+collection_config:disable_notifications_leaf_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_disable_notifications_leaf_test_3792@localhost/res1">>,
          escalus_tcp,<0.120473.0>,
          [{event_manager,<0.120470.0>},
           {server,<<"localhost">>},
           {username,<<"alicE_disable_notifications_leaf_test_3792">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.120470.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_disable_notifications_leaf_test_3792">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,<<"alice_disable_notifications_leaf_test_3792">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,<<"alicE_disable_notifications_leaf_test_3792">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"5b13285df4704399">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_check_response,4,
       [{file,"/home/circleci/project/big_tests/tests/pubsub...

Report log

pubsub_SUITE:dag+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3802@localhost/res1">>,
          escalus_tcp,<0.120722.0>,
          [{event_manager,<0.120719.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3802">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.120719.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3802">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3802">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3802">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"68b931d67fa3772a">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log

pubsub_SUITE:dag+last_item_cache:send_last_published_item_no_items_test
{error,
  {timeout_when_waiting_for_stanza,
    [{escalus_client,wait_for_stanza,
       [{client,
          <<"alice_send_last_published_item_no_items_test_3804@localhost/res1">>,
          escalus_tcp,<0.120798.0>,
          [{event_manager,<0.120787.0>},
           {server,<<"localhost">>},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3804">>},
           {resource,<<"res1">>}],
          [{event_client,
             [{event_manager,<0.120787.0>},
            {server,<<"localhost">>},
            {username,
              <<"alicE_send_last_published_item_no_items_test_3804">>},
            {resource,<<"res1">>}]},
           {resource,<<"res1">>},
           {username,
             <<"alice_send_last_published_item_no_items_test_3804">>},
           {server,<<"localhost">>},
           {host,<<"localhost">>},
           {port,5222},
           {auth,fun escalus_auth:auth_plain/2},
           {wspath,undefined},
           {username,
             <<"alicE_send_last_published_item_no_items_test_3804">>},
           {server,<<"localhost">>},
           {password,<<"matygrysa">>},
           {stream_id,<<"5fe764c149aff2d3">>}]},
        5000],
       [{file,
          "/home/circleci/project/big_tests/_build/default/lib/escalus/src/escalus_client.erl"},
        {line,136}]},
     {pubsub_tools,receive_response,3,
       [{file,"/home/circleci/project/big_tests/tests/pubsub_tools.erl"},
        {line,444}]},
     {pubsub_tools,receive_and_c...

Report log


pgsql_mnesia_26 / pgsql_mnesia / 813cbb7
Reports root/ big
OK: 5424 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


pgsql_mnesia_27 / pgsql_mnesia / 813cbb7
Reports root/ big
OK: 5589 / Failed: 0 / User-skipped: 128 / Auto-skipped: 0


mysql_redis_27 / mysql_redis / 813cbb7
Reports root/ big
OK: 5568 / Failed: 0 / User-skipped: 149 / Auto-skipped: 0


mssql_mnesia_27 / odbc_mssql_mnesia / 813cbb7
Reports root/ big
OK: 5584 / Failed: 0 / User-skipped: 133 / Auto-skipped: 0

@chrzaszcz chrzaszcz marked this pull request as ready for review July 15, 2025 13:47
@jacekwegr jacekwegr merged commit f31e9d1 into master Jul 16, 2025
3 of 4 checks passed
@jacekwegr jacekwegr deleted the pep-native-bookmarks branch July 16, 2025 07:32
@pawlooss1 pawlooss1 added this to the 6.5.0 milestone Dec 1, 2025
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.

4 participants