[GitHub] [qpid-proton] astitcher commented on a change in pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs
astitcher commented on a change in pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs URL: https://github.com/apache/qpid-proton/pull/185#discussion_r306539270 ## File path: c/tools/msgr-send.c ## @@ -289,7 +289,7 @@ int main(int argc, char** argv) check_messenger(messenger); } -LOG("Messages received=%llu sent=%llu\n", received, sent); +LOG("Messages received=%" PRIu64 " sent=%" PRIu64 "\n", received, sent); Review comment: True, but is that header included? It's internal to proton and (I think) this is code that only uses the exposed proton API (albeit the old messenger API. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs
astitcher commented on a change in pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs URL: https://github.com/apache/qpid-proton/pull/185#discussion_r306540680 ## File path: c/tools/msgr-send.c ## @@ -289,7 +289,7 @@ int main(int argc, char** argv) check_messenger(messenger); } -LOG("Messages received=%llu sent=%llu\n", received, sent); +LOG("Messages received=%" PRIu64 " sent=%" PRIu64 "\n", received, sent); Review comment: Ah - there are defines in c/tools/msgr-common.h which are included. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] jdanekrh commented on a change in pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs
jdanekrh commented on a change in pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs URL: https://github.com/apache/qpid-proton/pull/185#discussion_r306744500 ## File path: c/tools/msgr-send.c ## @@ -289,7 +289,7 @@ int main(int argc, char** argv) check_messenger(messenger); } -LOG("Messages received=%llu sent=%llu\n", received, sent); +LOG("Messages received=%" PRIu64 " sent=%" PRIu64 "\n", received, sent); Review comment: Seems I was more lucky than knowledgeable, then. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] franz1981 commented on issue #542: DISPATCH-1389: force inlining of local compose functions
franz1981 commented on issue #542: DISPATCH-1389: force inlining of local compose functions URL: https://github.com/apache/qpid-dispatch/pull/542#issuecomment-514665993 @ChugR agree! This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] ganeshmurthy opened a new pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t…
ganeshmurthy opened a new pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t… URL: https://github.com/apache/qpid-dispatch/pull/545 …o the session This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t…
kgiusti commented on a change in pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t… URL: https://github.com/apache/qpid-dispatch/pull/545#discussion_r306927274 ## File path: src/container.c ## @@ -541,14 +541,16 @@ void qd_container_handle_event(qd_container_t *container, pn_event_t *event, qd_conn->n_sessions--; } -pn_link = pn_link_head(conn, PN_LOCAL_ACTIVE | PN_REMOTE_CLOSED); +//Sweep thru every pn_link in this connection and a matching session and zero out the +// qd_link->pn_link reference. We do this in order to not miss any pn_links +pn_link = pn_link_head(conn, 0); Review comment: Suggestion: Since you now have to check every link on the session why not combine this loop with the previous into a single loop? Loop through all once using an if statement to check for PN_LOCAL_ACTIVE | PN_REMOTE_ACTIVE and do the detach handling zeroing the pn_link entry. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t…
kgiusti commented on a change in pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t… URL: https://github.com/apache/qpid-dispatch/pull/545#discussion_r306927274 ## File path: src/container.c ## @@ -541,14 +541,16 @@ void qd_container_handle_event(qd_container_t *container, pn_event_t *event, qd_conn->n_sessions--; } -pn_link = pn_link_head(conn, PN_LOCAL_ACTIVE | PN_REMOTE_CLOSED); +//Sweep thru every pn_link in this connection and a matching session and zero out the +// qd_link->pn_link reference. We do this in order to not miss any pn_links +pn_link = pn_link_head(conn, 0); Review comment: Suggestion: Since you now have to check every link on the session why not combine this loop with the previous into a single loop? Loop through all once using an if statement to check for PN_LOCAL_ACTIVE | PN_REMOTE_ACTIVE and do the detach handling before zeroing the pn_link entry. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] asfgit closed pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t…
asfgit closed pull request #545: DISPATCH-1391 - Zero out pn_link references on all qd_links related t… URL: https://github.com/apache/qpid-dispatch/pull/545 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on issue #185: PROTON-2079: Fix usage of formatting placeholders in printfs
astitcher commented on issue #185: PROTON-2079: Fix usage of formatting placeholders in printfs URL: https://github.com/apache/qpid-proton/pull/185#issuecomment-514909804 +1 Feel free to rebase and merge this. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] jdanekrh merged pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs
jdanekrh merged pull request #185: PROTON-2079: Fix usage of formatting placeholders in printfs URL: https://github.com/apache/qpid-proton/pull/185 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] asfgit closed pull request #542: DISPATCH-1389: force inlining of local compose functions
asfgit closed pull request #542: DISPATCH-1389: force inlining of local compose functions URL: https://github.com/apache/qpid-dispatch/pull/542 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] asfgit closed pull request #544: DISPATCH-1389: export qd_buffer_t access methods inline
asfgit closed pull request #544: DISPATCH-1389: export qd_buffer_t access methods inline URL: https://github.com/apache/qpid-dispatch/pull/544 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] jdanekrh commented on issue #459: DISPATCH-1282 - Support for building on macOS
jdanekrh commented on issue #459: DISPATCH-1282 - Support for building on macOS URL: https://github.com/apache/qpid-dispatch/pull/459#issuecomment-516004987 @RoddieKieley Thank you for the review. I've opened followup Jira for fixing tests https://issues.apache.org/jira/browse/DISPATCH-1384 Unless anyone complains, I'd merge this PR and then continue fixing the tests in subsequent PRs. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] jdanekrh edited a comment on issue #459: DISPATCH-1282 - Support for building on macOS
jdanekrh edited a comment on issue #459: DISPATCH-1282 - Support for building on macOS URL: https://github.com/apache/qpid-dispatch/pull/459#issuecomment-516004987 @RoddieKieley Thank you for the review. I've opened followup Jira for fixing tests https://issues.apache.org/jira/browse/DISPATCH-1384 Unless anyone complains, I'll look into the unittest2 fragility, and then merge this PR and then continue fixing the tests in subsequent PRs. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] asfgit closed pull request #541: DISPATCH-1389: optimize the STATE_IN_BODY codepath in qd_iterator_octet
asfgit closed pull request #541: DISPATCH-1389: optimize the STATE_IN_BODY codepath in qd_iterator_octet URL: https://github.com/apache/qpid-dispatch/pull/541 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti opened a new pull request #546: DISPATCH-1389: optimize qd_iterator_advance, qd_iterator_ncopy and
kgiusti opened a new pull request #546: DISPATCH-1389: optimize qd_iterator_advance, qd_iterator_ncopy and URL: https://github.com/apache/qpid-dispatch/pull/546 qd_iterator_equal to use multi-byte operations when the iterator view is in the raw data. Results of two-hop router test on my development system: current master: 5.165: msgs sent=50 msgs/sec= 96797.306 with this patch: 4.844: msgs sent=50 msgs/sec= 103228.321 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] bhardesty opened a new pull request #547: NO JIRA: Fix typo and minor issues in doc
bhardesty opened a new pull request #547: NO JIRA: Fix typo and minor issues in doc URL: https://github.com/apache/qpid-dispatch/pull/547 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] codecov-io commented on issue #547: NO JIRA: Fix typo and minor issues in doc
codecov-io commented on issue #547: NO JIRA: Fix typo and minor issues in doc URL: https://github.com/apache/qpid-dispatch/pull/547#issuecomment-516184344 # [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/547?src=pr&el=h1) Report > Merging [#547](https://codecov.io/gh/apache/qpid-dispatch/pull/547?src=pr&el=desc) into [master](https://codecov.io/gh/apache/qpid-dispatch/commit/7c67a39aaafc161f15071b1da0baf2a023252b07?src=pr&el=desc) will **increase** coverage by `0.02%`. > The diff coverage is `n/a`. [](https://codecov.io/gh/apache/qpid-dispatch/pull/547?src=pr&el=tree) ```diff @@Coverage Diff @@ ## master #547 +/- ## == + Coverage 86.53% 86.55% +0.02% == Files 88 88 Lines 1964019640 == + Hits1699517000 +5 + Misses 2645 2640 -5 ``` | [Impacted Files](https://codecov.io/gh/apache/qpid-dispatch/pull/547?src=pr&el=tree) | Coverage Δ | | |---|---|---| | [src/router\_node.c](https://codecov.io/gh/apache/qpid-dispatch/pull/547/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9ub2RlLmM=) | `92.87% <0%> (+0.12%)` | :arrow_up: | | [src/router\_core/connections.c](https://codecov.io/gh/apache/qpid-dispatch/pull/547/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2Nvbm5lY3Rpb25zLmM=) | `94.47% <0%> (+0.23%)` | :arrow_up: | | [src/router\_core/transfer.c](https://codecov.io/gh/apache/qpid-dispatch/pull/547/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3RyYW5zZmVyLmM=) | `94.37% <0%> (+0.25%)` | :arrow_up: | | [src/router\_core/agent\_link.c](https://codecov.io/gh/apache/qpid-dispatch/pull/547/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2FnZW50X2xpbmsuYw==) | `67.33% <0%> (+0.5%)` | :arrow_up: | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/547?src=pr&el=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/547?src=pr&el=footer). Last update [7c67a39...5cce917](https://codecov.io/gh/apache/qpid-dispatch/pull/547?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] codecov-io commented on issue #546: DISPATCH-1389: optimize qd_iterator_advance, qd_iterator_ncopy and
codecov-io commented on issue #546: DISPATCH-1389: optimize qd_iterator_advance, qd_iterator_ncopy and URL: https://github.com/apache/qpid-dispatch/pull/546#issuecomment-516413915 # [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/546?src=pr&el=h1) Report > Merging [#546](https://codecov.io/gh/apache/qpid-dispatch/pull/546?src=pr&el=desc) into [master](https://codecov.io/gh/apache/qpid-dispatch/commit/7c67a39aaafc161f15071b1da0baf2a023252b07?src=pr&el=desc) will **increase** coverage by `0.07%`. > The diff coverage is `97.65%`. [](https://codecov.io/gh/apache/qpid-dispatch/pull/546?src=pr&el=tree) ```diff @@Coverage Diff@@ ## master#546 +/- ## = + Coverage 86.53% 86.6% +0.07% = Files 88 88 Lines 19640 19730 +90 = + Hits16995 17087 +92 + Misses 26452643 -2 ``` | [Impacted Files](https://codecov.io/gh/apache/qpid-dispatch/pull/546?src=pr&el=tree) | Coverage Δ | | |---|---|---| | [tests/field\_test.c](https://codecov.io/gh/apache/qpid-dispatch/pull/546/diff?src=pr&el=tree#diff-dGVzdHMvZmllbGRfdGVzdC5j) | `79.56% <80%> (ø)` | :arrow_up: | | [src/iterator.c](https://codecov.io/gh/apache/qpid-dispatch/pull/546/diff?src=pr&el=tree#diff-c3JjL2l0ZXJhdG9yLmM=) | `90.09% <99.15%> (+1.76%)` | :arrow_up: | | [src/router\_core/router\_core.c](https://codecov.io/gh/apache/qpid-dispatch/pull/546/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3JvdXRlcl9jb3JlLmM=) | `86.53% <0%> (-0.2%)` | :arrow_down: | | [src/parse.c](https://codecov.io/gh/apache/qpid-dispatch/pull/546/diff?src=pr&el=tree#diff-c3JjL3BhcnNlLmM=) | `84.96% <0%> (+0.2%)` | :arrow_up: | | [src/router\_node.c](https://codecov.io/gh/apache/qpid-dispatch/pull/546/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9ub2RlLmM=) | `92.99% <0%> (+0.24%)` | :arrow_up: | | [src/router\_core/transfer.c](https://codecov.io/gh/apache/qpid-dispatch/pull/546/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3RyYW5zZmVyLmM=) | `94.37% <0%> (+0.25%)` | :arrow_up: | | [src/router\_core/agent\_link.c](https://codecov.io/gh/apache/qpid-dispatch/pull/546/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2FnZW50X2xpbmsuYw==) | `67.33% <0%> (+0.5%)` | :arrow_up: | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/546?src=pr&el=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/546?src=pr&el=footer). Last update [7c67a39...d5aa45b](https://codecov.io/gh/apache/qpid-dispatch/pull/546?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] asfgit closed pull request #547: NO JIRA: Fix typo and minor issues in doc
asfgit closed pull request #547: NO JIRA: Fix typo and minor issues in doc URL: https://github.com/apache/qpid-dispatch/pull/547 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-broker-j] overmeulen opened a new pull request #33: QPID-8289: [Broker-J] Broker startup can fail due to ConcurrentModificationException
overmeulen opened a new pull request #33: QPID-8289: [Broker-J] Broker startup can fail due to ConcurrentModificationException URL: https://github.com/apache/qpid-broker-j/pull/33 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-broker-j] overmeulen commented on issue #33: QPID-8289: [Broker-J] Broker startup can fail due to ConcurrentModificationException
overmeulen commented on issue #33: QPID-8289: [Broker-J] Broker startup can fail due to ConcurrentModificationException URL: https://github.com/apache/qpid-broker-j/pull/33#issuecomment-517609770 The appveyor failure seems technical... This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] asfgit closed pull request #546: DISPATCH-1389: optimize qd_iterator_advance, qd_iterator_ncopy and
asfgit closed pull request #546: DISPATCH-1389: optimize qd_iterator_advance, qd_iterator_ncopy and URL: https://github.com/apache/qpid-dispatch/pull/546 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr opened a new pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr opened a new pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186 The epydoc documentation has been removed. Sphinx markup has been added to the code comments. For a successful build, the version of Sphinx (ie Py2 or Py3) which matches the version of Python used to build the API must be installed. Cmake checks for this and will build if the correct version of Sphinx is found. The docs are built with `make docs` If installation of the docs are needed, then use `make docs install` This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-broker-j] asfgit closed pull request #33: QPID-8289: [Broker-J] Broker startup can fail due to ConcurrentModificationException
asfgit closed pull request #33: QPID-8289: [Broker-J] Broker startup can fail due to ConcurrentModificationException URL: https://github.com/apache/qpid-broker-j/pull/33 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] bhardesty opened a new pull request #548: DISPATCH-1396: Add starting router procedure
bhardesty opened a new pull request #548: DISPATCH-1396: Add starting router procedure URL: https://github.com/apache/qpid-dispatch/pull/548 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r313477224 ## File path: python/docs/Makefile ## @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation Review comment: I have no idea what the purpose of this file is. It isn't used in our doc build (at least as far as I can tell). I suggest you just remove it. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r313476350 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: You should be checking for sphinx using: > check_python_module("sphinx", SPHINX_MODULE_FOUND) > if (SPHINX_MODULE_FOUND) >... and then when you call sphinx-build use > add_custom_command(doc-py > COMMAND > ${PN_ENV_SCRIPT} -- > PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR} > ${PYTHON_EXECUTABLE} -m sphinx > -b html ${CMAKE_CURRENT_SOURCE_DIR}/docs ${CMAKE_CURRENT_BINARY_DIR}/docs) (I think this is the correct invocation of sphinx - I'm not 100% sure though, but you can definitely invoke it this way) This avoids having to worry about python2/python3 differences; will correctly support Windows (which the current and your solution does not) and also correctly uses a virtual environment set up for the build, which is a very useful thing to do for a CI instance. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r313477968 ## File path: python/proton/utils.py ## @@ -19,12 +19,14 @@ from __future__ import absolute_import -from ._utils import BlockingConnection, SyncRequestResponse, SendException, LinkDetached, ConnectionClosed +from ._utils import BlockingConnection, BlockingSender, BlockingReceiver, SyncRequestResponse, SendException, LinkDetached, ConnectionClosed __all__ = [ 'BlockingConnection', +'BlockingSender', +'BlockingReceiver', 'SyncRequestResponse', 'SendException', 'LinkDetached', -'ConnectionClosed' +'ConnectionClosed', Review comment: I think adding this comma is in error (it is harmless though) This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] codecov-io commented on issue #548: DISPATCH-1396: Add starting router procedure
codecov-io commented on issue #548: DISPATCH-1396: Add starting router procedure URL: https://github.com/apache/qpid-dispatch/pull/548#issuecomment-520926388 # [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/548?src=pr&el=h1) Report > Merging [#548](https://codecov.io/gh/apache/qpid-dispatch/pull/548?src=pr&el=desc) into [master](https://codecov.io/gh/apache/qpid-dispatch/commit/717be609925646d0856e129c6760098e976a12f2?src=pr&el=desc) will **increase** coverage by `0.02%`. > The diff coverage is `n/a`. [](https://codecov.io/gh/apache/qpid-dispatch/pull/548?src=pr&el=tree) ```diff @@Coverage Diff@@ ## master#548 +/- ## = + Coverage 86.57% 86.6% +0.02% = Files 88 88 Lines 19731 19726 -5 = Hits17083 17083 + Misses 26482643 -5 ``` | [Impacted Files](https://codecov.io/gh/apache/qpid-dispatch/pull/548?src=pr&el=tree) | Coverage Δ | | |---|---|---| | [...re/modules/edge\_addr\_tracking/edge\_addr\_tracking.c](https://codecov.io/gh/apache/qpid-dispatch/pull/548/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL21vZHVsZXMvZWRnZV9hZGRyX3RyYWNraW5nL2VkZ2VfYWRkcl90cmFja2luZy5j) | `84.94% <0%> (-1.62%)` | :arrow_down: | | [src/router\_core/connections.c](https://codecov.io/gh/apache/qpid-dispatch/pull/548/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2Nvbm5lY3Rpb25zLmM=) | `94.23% <0%> (-0.12%)` | :arrow_down: | | [src/router\_core/delivery.c](https://codecov.io/gh/apache/qpid-dispatch/pull/548/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2RlbGl2ZXJ5LmM=) | `87.85% <0%> (+0.25%)` | :arrow_up: | | [src/router\_core/transfer.c](https://codecov.io/gh/apache/qpid-dispatch/pull/548/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3RyYW5zZmVyLmM=) | `95.14% <0%> (+0.76%)` | :arrow_up: | | [src/parse.c](https://codecov.io/gh/apache/qpid-dispatch/pull/548/diff?src=pr&el=tree#diff-c3JjL3BhcnNlLmM=) | `85.78% <0%> (+1.02%)` | :arrow_up: | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/548?src=pr&el=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/548?src=pr&el=footer). Last update [717be60...5a5b33d](https://codecov.io/gh/apache/qpid-dispatch/pull/548?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] bhardesty opened a new pull request #549: NO JIRA: Add "qdstat -e" descriptions to qdstat man page
bhardesty opened a new pull request #549: NO JIRA: Add "qdstat -e" descriptions to qdstat man page URL: https://github.com/apache/qpid-dispatch/pull/549 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] codecov-io commented on issue #549: NO JIRA: Add "qdstat -e" descriptions to qdstat man page
codecov-io commented on issue #549: NO JIRA: Add "qdstat -e" descriptions to qdstat man page URL: https://github.com/apache/qpid-dispatch/pull/549#issuecomment-520998325 # [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/549?src=pr&el=h1) Report > Merging [#549](https://codecov.io/gh/apache/qpid-dispatch/pull/549?src=pr&el=desc) into [master](https://codecov.io/gh/apache/qpid-dispatch/commit/717be609925646d0856e129c6760098e976a12f2?src=pr&el=desc) will **decrease** coverage by `0.03%`. > The diff coverage is `n/a`. [](https://codecov.io/gh/apache/qpid-dispatch/pull/549?src=pr&el=tree) ```diff @@Coverage Diff @@ ## master #549 +/- ## == - Coverage 86.57% 86.54% -0.04% == Files 88 88 Lines 1973119730 -1 == - Hits1708317076 -7 - Misses 2648 2654 +6 ``` | [Impacted Files](https://codecov.io/gh/apache/qpid-dispatch/pull/549?src=pr&el=tree) | Coverage Δ | | |---|---|---| | [...re/modules/edge\_addr\_tracking/edge\_addr\_tracking.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL21vZHVsZXMvZWRnZV9hZGRyX3RyYWNraW5nL2VkZ2VfYWRkcl90cmFja2luZy5j) | `83.87% <0%> (-2.69%)` | :arrow_down: | | [...core/modules/address\_lookup\_client/lookup\_client.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL21vZHVsZXMvYWRkcmVzc19sb29rdXBfY2xpZW50L2xvb2t1cF9jbGllbnQuYw==) | `91.28% <0%> (-1.05%)` | :arrow_down: | | [src/router\_core/forwarder.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2ZvcndhcmRlci5j) | `92.87% <0%> (-0.69%)` | :arrow_down: | | [src/router\_core/router\_core.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3JvdXRlcl9jb3JlLmM=) | `86.53% <0%> (-0.2%)` | :arrow_down: | | [src/router\_core/connections.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2Nvbm5lY3Rpb25zLmM=) | `94.35% <0%> (ø)` | :arrow_up: | | [src/iterator.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL2l0ZXJhdG9yLmM=) | `89.15% <0%> (+0.18%)` | :arrow_up: | | [src/router\_node.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9ub2RlLmM=) | `93.11% <0%> (+0.24%)` | :arrow_up: | | [src/router\_core/delivery.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2RlbGl2ZXJ5LmM=) | `87.85% <0%> (+0.25%)` | :arrow_up: | | [src/parse.c](https://codecov.io/gh/apache/qpid-dispatch/pull/549/diff?src=pr&el=tree#diff-c3JjL3BhcnNlLmM=) | `85.2% <0%> (+0.44%)` | :arrow_up: | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/549?src=pr&el=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/549?src=pr&el=footer). Last update [717be60...4a09706](https://codecov.io/gh/apache/qpid-dispatch/pull/549?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] jdanekrh opened a new pull request #550: DISPATCH-1300 - doc default httpRootDir as being stand-alone console install path
jdanekrh opened a new pull request #550: DISPATCH-1300 - doc default httpRootDir as being stand-alone console install path URL: https://github.com/apache/qpid-dispatch/pull/550 I am intentionally not mentioning the CMAKE_INSTALL_PREFIX here. I hope people who know of it can guess that it plays a role in determining the console installation directory. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315279286 ## File path: python/docs/Makefile ## @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation Review comment: Correct, this is a left-over artifact from the initialization of Sphinx, but because we are using cmake, it serves no purpose. I'll remove it. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315281467 ## File path: python/proton/utils.py ## @@ -19,12 +19,14 @@ from __future__ import absolute_import -from ._utils import BlockingConnection, SyncRequestResponse, SendException, LinkDetached, ConnectionClosed +from ._utils import BlockingConnection, BlockingSender, BlockingReceiver, SyncRequestResponse, SendException, LinkDetached, ConnectionClosed __all__ = [ 'BlockingConnection', +'BlockingSender', +'BlockingReceiver', 'SyncRequestResponse', 'SendException', 'LinkDetached', -'ConnectionClosed' +'ConnectionClosed', Review comment: I have thought of this as a style related issue (with certain advantages), and have seen a trailing comma frequently in use (https://stackoverflow.com/questions/11597901/why-are-trailing-commas-allowed-in-a-list). I certainly have no objection removing it, though. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315299683 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: In the event the appropriate Sphinx for the version of Python in use is not installed, this approach will result in an error when using `make docs`: ``` /usr/bin/python: No module named sphinx make[3]: *** [python/CMakeFiles/docs-py.dir/build.make:57: python/CMakeFiles/docs-py] Error 1 make[2]: *** [CMakeFiles/Makefile2:3866: python/CMakeFiles/docs-py.dir/all] Error 2 make[1]: *** [CMakeFiles/Makefile2:115: CMakeFiles/docs.dir/rule] Error 2 make: *** [Makefile:188: docs] Error 2 ``` But it certainly would address the other issues raised above. I'll look for a way to handle the error more gracefully. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315666188 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: You missed the module detection section of my suggestion (perhaps because it is so much smaller than what was there before). This sets SPHINX_MODULE_FOUND and you can use this to decide whether or not to try and build the docs. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315683102 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: I should have been more precise describing how this error occurred. I did include this section. The `python3-sphinx` module was installed (and found), but not the Python 2 version. The `SPHINX_MODULE_FOUND` variable returns `true`. However, when building qpid-proton with the (default) Python2, this error occurs. If we could find a way to distinguish between Python2 and Python3 versions of Sphinx, then logic can be used to prevent and error. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315687196 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: This doesn't make a lot of sense. check_python_module() uses PYTHON_EXECUTABLE to find the module, so if the build is using python2 then the module detection should be using python2 as well. Are you sure you are correctly testing SPHINX_MODULE_FOUND? Or perhaps you're somehow using python directly and through PYTHON_EXECUTABLE? This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315687196 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: This doesn't make a lot of sense. check_python_module() uses PYTHON_EXECUTABLE to find the module, so if the build is using python2 then the module detection should be using python2 as well. Are you sure you are correctly testing SPHINX_MODULE_FOUND? Or perhaps you're somehow using python directly and not through PYTHON_EXECUTABLE? This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315689748 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: ``` check_python_module("sphinx" SPHINX_MODULE_FOUND) if (SPHINX_MODULE_FOUND) add_custom_target(docs-py COMMAND ${PN_ENV_SCRIPT} -- PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR} LD_LIBRARY_PATH="${CMAKE_CURRENT_BINARY_DIR}/c" ${PYTHON_EXECUTABLE} -m sphinx "${CMAKE_CURRENT_SOURCE_DIR}/docs" "${CMAKE_CURRENT_BINARY_DIR}/docs") add_dependencies(docs docs-py) install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/docs/" DESTINATION "${PROTON_SHARE}/docs/api-py" COMPONENT documentation OPTIONAL) endif () ``` Let me run the test again and report on exactly which versions of Sphinx are installed. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315698367 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: ``` $ sudo yum list python?-sphinx* Installed Packages python3-sphinx.noarch 1:1.8.4-1.fc30 @fedora python3-sphinx-theme-alabaster.noarch 0.7.12-3.fc30 @fedora python3-sphinx_rtd_theme.noarch 0.4.3-1.fc30 @fedora python3-sphinxcontrib-apidoc.noarch 0.2.1-10.fc30 @fedora python3-sphinxcontrib-websupport.noarch 1.0.1-12.20180316git.fc30 @fedora ``` I repeated the test by: 1. Erasing the python2-sphinx package (`dnf erase python2-sphinx`) 2. Running `cmake ..` from the build directory 3. Running `make clean all docs` but it produced the same results as above. I'll start some debugging... This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r31562 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: In your invocation of sphinx you do not need (probably should not have) the PYTHONPATH and LB_LIBRARY_PATH environment vars set. I'm not sure this makes a difference, but it certainly clutters the CMake code for no reason. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315700883 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: Can you paste the output from cmake as well? This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315704839 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: By adding debug message() statements prior to the if(), I see: ``` PYTHON_EXECUTABLE=/usr/bin/python SPHINX_MODULE_FOUND=1 ``` with the above packages installed. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315706680 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: It looks like a problem with check_python_module(), it returns `SPHINX_MODULE_FOUND=1` with both python2 and python3 versions of sphinx erased. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315739603 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: I think I see the problem: You aren't clearing the CMake results between tests. check_python_module() like the standard cmake checks caches the results if it finds the module. This means that if you rerun the test after erasing something the test is not rerun to find a new result. This is a completely general cmake behaviour - if you remove python etc. cmake won't discover this and will try to use the previous result. So you need to test the absence of sphinx with a clean cmake configure run. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] bhardesty opened a new pull request #551: DISPATCH-1374 - Doc qdstat state dump procedure
bhardesty opened a new pull request #551: DISPATCH-1374 - Doc qdstat state dump procedure URL: https://github.com/apache/qpid-dispatch/pull/551 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315831142 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: Agreed. I discovered that initially, I could check for any arbitrary module name, and it would result in a positive check. However, only after blowing away the build directory in its entirety, did correct behavior return, and the detection of sphinx through either Python 2 or 3 worked correctly. This clears the way to checking in this change. I must look into the environment variable issue. Without both of these, the sphinx build fails, but perhaps they should be in the conf file somewhere. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r315833802 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: If sphinx has to import the proton module in python to work then I suppose it needs the correct environment for that. In other words 'import proton' or equivalent would require the environment to be set up correctly to run proton and these environment vars would allow that to work. A little ugly IMO. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] bhardesty opened a new pull request #552: NO JIRA - Add prereq for accessing console
bhardesty opened a new pull request #552: NO JIRA - Add prereq for accessing console URL: https://github.com/apache/qpid-dispatch/pull/552 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r316206620 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: http://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html Yes, it is the autodoc module that imports the target sources and extracts the docstrings automatically. I'll leave the PYTHONPATH and LD_LIBRARY_PATH environment variables in for now. If I can find a way to put them into the config file, I'll do that later, but the config file is not aware of cmake variables, so it will probably involve a cmake write to the config file? That would be ugly, we will see. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r316207427 ## File path: python/proton/utils.py ## @@ -19,12 +19,14 @@ from __future__ import absolute_import -from ._utils import BlockingConnection, SyncRequestResponse, SendException, LinkDetached, ConnectionClosed +from ._utils import BlockingConnection, BlockingSender, BlockingReceiver, SyncRequestResponse, SendException, LinkDetached, ConnectionClosed __all__ = [ 'BlockingConnection', +'BlockingSender', +'BlockingReceiver', 'SyncRequestResponse', 'SendException', 'LinkDetached', -'ConnectionClosed' +'ConnectionClosed', Review comment: Looking at this again, I believe I at one time added to this list, then changed my mind. But I forgot to remove the trailing comma... I'll take it out as it appears to be just an added comma for no reason! This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] jdanekrh commented on a change in pull request #548: DISPATCH-1396: Add starting router procedure
jdanekrh commented on a change in pull request #548: DISPATCH-1396: Add starting router procedure URL: https://github.com/apache/qpid-dispatch/pull/548#discussion_r316213191 ## File path: docs/books/_common/fragment-start-router-service-command.adoc ## @@ -0,0 +1,23 @@ + +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License + + +[source,bash,options="nowrap"] + +$ systemctl start qdrouterd.service Review comment: This requires `systemd`, meaning rhel 7+. Not sure if this is problem or not. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] jdanekrh commented on a change in pull request #552: NO JIRA - Add prereq for accessing console
jdanekrh commented on a change in pull request #552: NO JIRA - Add prereq for accessing console URL: https://github.com/apache/qpid-dispatch/pull/552#discussion_r316215328 ## File path: docs/books/_common/fragment-console-prereq.adoc ## @@ -0,0 +1,24 @@ + +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License + + +.Prerequisites + +* {ConsoleName} requires the `qpid-dispatch-console` package. ++ +For more information, see the link:https://qpid.apache.org/packages.html[Packages page^]. Review comment: `qpid-dispatch-console` is not mentioned on the packages page This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti opened a new pull request #553: NO-JIRA: update Travis with latest Proton (0.9.0)
kgiusti opened a new pull request #553: NO-JIRA: update Travis with latest Proton (0.9.0) URL: https://github.com/apache/qpid-dispatch/pull/553 I also took the liberty to bump up the test timeout when running in travis - occasionally hitting the default timeout. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti commented on issue #553: NO-JIRA: update Travis with latest Proton (0.9.0)
kgiusti commented on issue #553: NO-JIRA: update Travis with latest Proton (0.9.0) URL: https://github.com/apache/qpid-dispatch/pull/553#issuecomment-523505795 I'll fix the bad version # in the commit log before merging! This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r316257193 ## File path: python/CMakeLists.txt ## @@ -112,35 +112,46 @@ endmacro(py_compile) py_compile(${CMAKE_CURRENT_BINARY_DIR} ${pysrc-generated} CPROTON_ARTIFACTS) py_compile(${CMAKE_CURRENT_SOURCE_DIR} "${pysrc}" PROTON_ARTIFACTS) -find_program(EPYDOC_EXE epydoc) -mark_as_advanced (EPYDOC_EXE) -if (EPYDOC_EXE) - foreach (py_src_doc ${pysrc}) - list(APPEND PY_DOC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${py_src_doc}") - endforeach(py_src_doc) + +find_program(SPHINX_EXE_PY2 sphinx-build-2 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY2) +find_program(SPHINX_EXE_PY3 sphinx-build-3 HINTS "/usr/bin") +mark_as_advanced (SPHINX_EXE_PY3) + +# Version of Python used to build API must match version of Sphinx used to build the docs +get_filename_component(PYTHON_EXECUTABLE_NAME ${PYTHON_EXECUTABLE} NAME) +# Try matching for Python 3 first +if ((SPHINX_EXE_PY3) AND (PYTHON_EXECUTABLE_NAME STREQUAL "python3")) +set(BUILD_SPHINX_DOCS TRUE) Review comment: I think resolving this neatly will involve restructuring the build a little, so this is fine for the moment. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on issue #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on issue #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#issuecomment-523516240 This looks good from the pov of my concerns (I haven't looked at the actual documentation changes much though!) If you rebase it against master and squash into a single change I think we can commit it. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] asfgit closed pull request #553: NO-JIRA: update Travis with latest Proton (0.9.0)
asfgit closed pull request #553: NO-JIRA: update Travis with latest Proton (0.9.0) URL: https://github.com/apache/qpid-dispatch/pull/553 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on issue #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on issue #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#issuecomment-523533365 astitcher: Could you take a look at the summary on the main page (look at index.rst if not built, but you'll have to endure rst syntax) to check for conceptual correctness. It is somewhat of a repeat of Justin's more detailed introduction, and to which a link has been provided. If you are happy, I'll rebase. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti opened a new pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti opened a new pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] bhardesty commented on a change in pull request #548: DISPATCH-1396: Add starting router procedure
bhardesty commented on a change in pull request #548: DISPATCH-1396: Add starting router procedure URL: https://github.com/apache/qpid-dispatch/pull/548#discussion_r316408384 ## File path: docs/books/_common/fragment-start-router-service-command.adoc ## @@ -0,0 +1,23 @@ + +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License + + +[source,bash,options="nowrap"] + +$ systemctl start qdrouterd.service Review comment: I generalized a bit here since the major distros (Fedora, openSUSE, Debian, and most Debian variants) boot systemd by default. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] ChugR commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding
ChugR commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#issuecomment-523907220 I ran this with a tortured configuration: 4 interior routers zigzagging between two hosts 8 edge routers: four on each host connecting to all the interiors Send 1M multicast messages 1 sender 4 receivers: two on each host receiving from an edge on this host and that host After 550K messages the setup died. One host was OOM and an interior router disappeared without crashing. It went defunct. Fortunately one of the interior routers would still respond to qdstat. Will run this test again with a simpler configurations to get a reproducer. ``` $ qdstat -g -b taj:21015 Router Statistics attr value = Version 1.9.0-SNAPSHOT Mode interior Router IdINTC Area 0 Link Routes 2 Auto Links 2 Links10 Nodes0 Addresses19 Connections 3 Presettled Count 0 Dropped Presettled Count 0 Accepted Count 555330 Rejected Count 0 Released Count 0 Modified Count 0 Deliveries Delayed > 1sec0 Deliveries Delayed > 10sec 0 Deliveries to Fallback 0 Ingress Count1 Egress Count 555329 Transit Count555329 Deliveries from Route Container 0 Deliveries to Route Container0 chug@unused apr5> qdstat -m -b taj:21015 Types typesize batch thread-max total in-threads rebal-in rebal-out == _endpoint_ref_t 32 64 128 64 64 0 0 qd_bitmask_t24 64 128 640192 8,713 8,720 qd_buffer_t 53664 128 2,225,472 2,221,504 26,86226,924 qd_composed_field_t 64 64 128 256256 0 0 qd_composite_t 11264 128 320320 0 0 qd_connection_t 2,360 16 32 80 64 4 5 qd_connector_t 50464 128 64 64 0 0 qd_hash_handle_t16 64 128 128128 0 0 qd_hash_item_t 32 64 128 192192 0 0 qd_iterator_t 16064 128 5,004,608 4,998,272 1,130 1,229 qd_link_ref_t 24 64 128 832384 2,192 2,199 qd_link_t 10464 128 128128 0 0 qd_listener_t 44064 128 64 64 0 0 qd_log_entry_t 2,112 16 32 1,072 1,072 0 0 qd_management_context_t 56 64 128 64 64 0 0 qd_message_content_t1,080 64 128 556,288555,456 953 966 qd_message_t14464 128 1,112,512 555,584 1,806 10,508 qd_node_t 56 64 128 64 64 0 0 qd_parse_node_t 10464 128 128128 0 0 qd_parsed_field_t 88 64 128 2,224,000 2,221,632 4582 qd_parsed_turbo_t 64 64 128 256256 0 0 qd_timer_t 56 64 128 128128 0 0 qdr_action_t16064 128 448128 44,48744,492 qdr_addr_endpoint_state_t 48 64 128 64 64 0 0 qdr_address_config_t72 64 128 64 64 0 0 qdr_address_t 37664 128 64 64 0 0 qdr_auto_link_t 13664 128 64 64 0 0 qdr_conn_identifier_t 11264 128 64 64 0 0 qdr_connection_info_t 88 64 128 128128 0 0 qdr_connection_t56864
[GitHub] [qpid-dispatch] kgiusti commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#issuecomment-523909067 Nice catch - a memory leak! My favorite! I'll see what I can uncover on my end as well... This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] codecov-io commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding
codecov-io commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#issuecomment-524011262 # [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/554?src=pr&el=h1) Report > Merging [#554](https://codecov.io/gh/apache/qpid-dispatch/pull/554?src=pr&el=desc) into [master](https://codecov.io/gh/apache/qpid-dispatch/commit/c6fe7ec4dfe1fb0538c750932a812ccc43904f56?src=pr&el=desc) will **increase** coverage by `0.01%`. > The diff coverage is `95.8%`. [](https://codecov.io/gh/apache/qpid-dispatch/pull/554?src=pr&el=tree) ```diff @@Coverage Diff @@ ## master #554 +/- ## == + Coverage 86.58% 86.59% +0.01% == Files 88 88 Lines 1973019827 +97 == + Hits1708317169 +86 - Misses 2647 2658 +11 ``` | [Impacted Files](https://codecov.io/gh/apache/qpid-dispatch/pull/554?src=pr&el=tree) | Coverage Δ | | |---|---|---| | [src/router\_core/forwarder.c](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2ZvcndhcmRlci5j) | `93.42% <ø> (-0.14%)` | :arrow_down: | | [src/router\_core/core\_link\_endpoint.c](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2NvcmVfbGlua19lbmRwb2ludC5j) | `97% <100%> (ø)` | :arrow_up: | | [src/router\_node.c](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9ub2RlLmM=) | `92.76% <100%> (-0.24%)` | :arrow_down: | | [src/router\_core/transfer.c](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL3RyYW5zZmVyLmM=) | `94.34% <100%> (+0.22%)` | :arrow_up: | | [src/router\_core/connections.c](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2Nvbm5lY3Rpb25zLmM=) | `94.15% <100%> (-0.32%)` | :arrow_down: | | [src/router\_core/delivery.c](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree#diff-c3JjL3JvdXRlcl9jb3JlL2RlbGl2ZXJ5LmM=) | `88.46% <95%> (+0.6%)` | :arrow_up: | | [src/iterator.c](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree#diff-c3JjL2l0ZXJhdG9yLmM=) | `88.97% <0%> (-0.17%)` | :arrow_down: | | ... and [2 more](https://codecov.io/gh/apache/qpid-dispatch/pull/554/diff?src=pr&el=tree-more) | | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/554?src=pr&el=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/qpid-dispatch/pull/554?src=pr&el=footer). Last update [c6fe7ec...7e1cc88](https://codecov.io/gh/apache/qpid-dispatch/pull/554?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] ChugR commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding
ChugR commented on issue #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#issuecomment-524043580 This patch @ 7e1cc88 is good. * I ran the torture test with one sender and four receivers and a million messages. All receivers received all messages. * During the test I started dozens of receivers getting 1000 messages only. They would connect, get messages from the million message stream, and then disconnect. No problem with them nor with interference with the long-standing receivers. * Memory usage perfectly flat. There was no performance testing here, just some sanity checking with multiple network hops. Ship it. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] ffontaine opened a new pull request #187: cpp/CMakeLists.txt: fix qpid-proton-cpp linking
ffontaine opened a new pull request #187: cpp/CMakeLists.txt: fix qpid-proton-cpp linking URL: https://github.com/apache/qpid-proton/pull/187 gpid-proton-cpp must use LINK_PUBLIC to link with qpid-proton-core and qpid-proton-proactor otherwise build will fail if those libraries are not yet installed on the system: [ 81%] Linking CXX executable value_test /home/fabrice/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: warning: libqpid-proton-proactor.so.1, needed by libqpid-proton-cpp.so.12.6.0, not found (try using -rpath or -rpath-link) /home/fabrice/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: warning: libqpid-proton-core.so.10, needed by libqpid-proton-cpp.so.12.6.0, not found (try using -rpath or -rpath-link) /home/fabrice/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/8.3.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: libqpid-proton-cpp.so.12.6.0: undefined reference to `pn_data_put_described' Signed-off-by: Fabrice Fontaine This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on issue #187: cpp/CMakeLists.txt: fix qpid-proton-cpp linking
astitcher commented on issue #187: cpp/CMakeLists.txt: fix qpid-proton-cpp linking URL: https://github.com/apache/qpid-proton/pull/187#issuecomment-524436160 Can you explain your specific situation more because this fix doesn't entirely make sense: These libraries should be LINK_PRIVATE as far as cmake semantics are concerned because they provide symbols only to the qpid-proton-cpp library itself and are not needed by any of it's clients. LINK_PUBLIC means that any client of qpid-proton-cpp would need to explicitly link with these libraries and this is not needed or desired. Are you perhaps trying to build the cpp directory of the qpid-proton tree by itself? Currently the only way to build the C++ API is as part of the full tree build. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher edited a comment on issue #187: cpp/CMakeLists.txt: fix qpid-proton-cpp linking
astitcher edited a comment on issue #187: cpp/CMakeLists.txt: fix qpid-proton-cpp linking URL: https://github.com/apache/qpid-proton/pull/187#issuecomment-524436160 Can you explain your specific situation more because this fix doesn't entirely make sense: These libraries should be LINK_PRIVATE as far as cmake semantics are concerned because they provide symbols only to the qpid-proton-cpp library itself and are not needed by any of its clients. LINK_PUBLIC means that any client of qpid-proton-cpp would link with these libraries and this is not needed or desired. Are you perhaps trying to build the cpp directory of the qpid-proton tree by itself? Currently the only way to build the C++ API is as part of the full tree build. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317287382 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the Review comment: typo - delivery This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317289512 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the Review comment: 'settling' is a term of art within the AMQP spec referring to the act of forgetting about a delivery when you no longer need to remember it because we no longer care about it receipt status and no longer need to retry the delivery. It is separate from the concepts of terminal delivery state - Accept, Reject, Release etc. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317289496 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, Review comment: Really the only point of the Event object passed to the handlers is to get the object to which the event pertains. It also contains the event handled (but we know what that is because clearly we're already in the appropriate handler. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317293384 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: + +* **on_start()**: This indicates that the event loop in the container has started, and that a new sender and/or +receiver may now be created. + +To send a message, the following events need to be handled: + +* **on_sendable()**: This callback indicates that send credit has now been set by the receiver, and that a message may +now be sent. +* **on_accepted()**: This callback indicates that a message has been received and accepted by the receiving peer. + +To receive a message, the following event need to be handled: + +* **on_message()**: This callback indicates that a message has been received. The message and its delivery object may +be retreived, and if needed, the message can be either accepted or rejected. + +Many other events exist for the handling of transactions and other message events and errors, and if present in +your handler will be called as the corresponding events arise. See the :ref:`tutorial` for examples of handling +some other events. + +Several event handl
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317294349 ## File path: python/docs/proton.handlers.rst ## @@ -0,0 +1,106 @@ +## +Module ``proton.handlers`` +## + +.. currentmodule:: proton.handlers + +Module Summary +## + +| + +.. autosummary:: + +MessagingHandler +EndpointStateHandler Review comment: Bear in mind this is because MessagingHandler actually aggregates all the other functionality anyway because of the way the event dispatch works. So all the default functionality is that of MessagingHandler. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317293874 ## File path: python/docs/proton.handlers.rst ## @@ -0,0 +1,106 @@ +## +Module ``proton.handlers`` +## + +.. currentmodule:: proton.handlers + +Module Summary +## + +| + +.. autosummary:: + +MessagingHandler +EndpointStateHandler Review comment: As above I don't think we should document anything other than MessagingHandler & after consideration TransactionHandler/TransactionClientHandler. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317289764 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, Review comment: So strike 'in some cases' This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317290849 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: + +* **on_start()**: This indicates that the event loop in the container has started, and that a new sender and/or +receiver may now be created. + +To send a message, the following events need to be handled: Review comment: 'need' -> 'may need' (as above). Or 'usually' - but it's not an invariable rule. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317291003 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: + +* **on_start()**: This indicates that the event loop in the container has started, and that a new sender and/or +receiver may now be created. + +To send a message, the following events need to be handled: + +* **on_sendable()**: This callback indicates that send credit has now been set by the receiver, and that a message may +now be sent. +* **on_accepted()**: This callback indicates that a message has been received and accepted by the receiving peer. + +To receive a message, the following event need to be handled: Review comment: Again as sending messages This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To
[GitHub] [qpid-proton] astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
astitcher commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317290561 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: Review comment: Strike 'should' insert 'may' or 'can'. Which handlers to use will be very dependent on the application and exactly which guarantees it needs. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317298149 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: + +* **on_start()**: This indicates that the event loop in the container has started, and that a new sender and/or +receiver may now be created. + +To send a message, the following events need to be handled: Review comment: Agreed. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317298210 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: Review comment: Agreed. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317298014 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: + +* **on_start()**: This indicates that the event loop in the container has started, and that a new sender and/or +receiver may now be created. + +To send a message, the following events need to be handled: + +* **on_sendable()**: This callback indicates that send credit has now been set by the receiver, and that a message may +now be sent. +* **on_accepted()**: This callback indicates that a message has been received and accepted by the receiving peer. + +To receive a message, the following event need to be handled: + +* **on_message()**: This callback indicates that a message has been received. The message and its delivery object may +be retreived, and if needed, the message can be either accepted or rejected. + +Many other events exist for the handling of transactions and other message events and errors, and if present in +your handler will be called as the corresponding events arise. See the :ref:`tutorial` for examples of handling +some other events. + +Several event handlers
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317298104 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, +when a message is received, the event object will have the property ``event.message`` by which the message itself may +be obtained. See :class:`proton.Event` for more details. + +The following are some of the important event callbacks that should be implemented by a developer: + +* **on_start()**: This indicates that the event loop in the container has started, and that a new sender and/or +receiver may now be created. + +To send a message, the following events need to be handled: + +* **on_sendable()**: This callback indicates that send credit has now been set by the receiver, and that a message may +now be sent. +* **on_accepted()**: This callback indicates that a message has been received and accepted by the receiving peer. + +To receive a message, the following event need to be handled: Review comment: Agreed. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: d
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317298694 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the Review comment: Thank you for the clarification. I changed this to read: > This also includes actions such as settling the > delivery (ie causing the delivery status to be forgotten when it is no longer needed). This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317298952 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the +status of the message as it is sent from the sender to the receiver. This also includes actions such as settling the +delivery, a mechanism by which each peer can verify that the message has been properly received and is either accepted +or rejected. The delivery class may be found at :class:`proton.Delivery`. The delivery object is most commonly obtained +when a message-related event occurs through the event object. See `Event Handlers`_ below. + +Event Handlers +-- + +A **handler** is a class that handles events associated with the sending and receiving of messages. This includes +callbacks for events such as the arrival of a new message, error conditions that might arise, and the closing +of the connection over which messages are sent. An application developer must handle some key events to +successfully send and receive messages. When an event handler callback is called by the library, an Event object is +passed to it which contains details of the event, and in some cases, objects associated with the event. For example, Review comment: I changed this to read: > When an event handler callback is called by the library, an Event object is > passed to it which contains an object associated with the event. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317299082 ## File path: python/docs/index.rst ## @@ -1,11 +1,134 @@ -Apache Qpid Proton: python documentation - + +Qpid Proton Python API Documentation + -Contents: +The Proton module provides a Python 2.7 and 3.x API for Qpid Proton. It enables a developer to write Python applications +that send and receive AMQP messages. +*** +Modules +*** .. toctree:: :maxdepth: 2 - tutorial + proton + proton.handlers + proton.reactor + proton.utils + +* +About AMQP and the Qpid Proton Python API +* + +.. toctree:: + :maxdepth: 1 + overview + tutorial + +Key API Features + + + * Event-driven API + * SSL/TLS secured communication + * SASL authentication + * Automatic reconnect and failover + * Seamless conversion between AMQP and Python data types + * AMQP 1.0 + +Basic API Concepts +== + +The Qpid Python client API and library allows applications to send and receive AMQP messages. See :ref:`overview` +for a more detailed explanation. + +Containers +-- + +Messages are transferred between connected peers (or nodes) using **senders** and **receivers**. Each sender +or receiver is established over a **connection**. Each connection is established between two unique **containers**, +the entry point for the API. The container class :class:`proton.reactor.Container` is found in the ``proton.reactor`` +module. + +Senders +--- + +The peer that sends messages uses a **sender** to send messages, which includes the target queue or topic which is +to receive the messages. The sender may be found at :class:`proton.Sender`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_sender`. + +Receivers +- + +The peer that receives messages uses a **receiver** to receive messages, and includes a source queue or topic from +which to receive messages. The receiver may be found at :class:`proton.Receiver`. Note that senders are most commonly +obtained by using the convenience method :meth:`proton.reactor.Container.create_receiver`. + +Message Delivery + + +The process of sending a message is known as **delevery**. Each sent message has a delivry object which tracks the Review comment: Thanks, x2 in fact! This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx
kpvdr commented on a change in pull request #186: PROTON-2086: Changed API documentation from epydoc to Sphinx URL: https://github.com/apache/qpid-proton/pull/186#discussion_r317299565 ## File path: python/docs/proton.handlers.rst ## @@ -0,0 +1,106 @@ +## +Module ``proton.handlers`` +## + +.. currentmodule:: proton.handlers + +Module Summary +## + +| + +.. autosummary:: + +MessagingHandler +EndpointStateHandler Review comment: I went through this list with @ssorj, but if he agrees, we should remove it. Better now than after we release this. It is better to add bits than to have to retract/deprecate them later. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] jdanekrh opened a new pull request #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8
jdanekrh opened a new pull request #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8 URL: https://github.com/apache/qpid-proton/pull/188 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8
astitcher commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8 URL: https://github.com/apache/qpid-proton/pull/188#issuecomment-524469383 I think you left extraneous testing code in the bottom of the file. Otherwise looks good to me. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] jdanekrh commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8
jdanekrh commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8 URL: https://github.com/apache/qpid-proton/pull/188#issuecomment-524469661 I meant to keep the test code there. It will only execute if user does `python -m unittest discover`, otherwise it is inert. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] astitcher commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8
astitcher commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8 URL: https://github.com/apache/qpid-proton/pull/188#issuecomment-524470568 Please remove it - this is meant to be example code. No other example has test code included. If you really think we need to include unit tests for something that you think is complex enough to need it then use a testing tool that can extract unit tests from comments and put the unit test comment with the class/function that is being tested. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] jdanekrh commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8
jdanekrh commented on issue #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8 URL: https://github.com/apache/qpid-proton/pull/188#issuecomment-524471523 Ok, it is trivial enough it does not need a test. Adding this as a python doctest would be similarly distracting, I guess This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-proton] jdanekrh merged pull request #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8
jdanekrh merged pull request #188: PROTON-2091: fix `len(queue)` in python/examples and reformat for PEP8 URL: https://github.com/apache/qpid-proton/pull/188 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#discussion_r317628508 ## File path: src/router_core/delivery.c ## @@ -558,81 +572,386 @@ void qdr_delivery_decref_CT(qdr_core_t *core, qdr_delivery_t *dlv, const char *l } +// the remote endpoint has change the state (disposition) or settlement for the +// delivery. Update the local state/settlement accordingly. +// static void qdr_update_delivery_CT(qdr_core_t *core, qdr_action_t *action, bool discard) { -qdr_delivery_t *dlv= action->args.delivery.delivery; -qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); -boolpush = false; -boolpeer_moved = false; -booldlv_moved = false; -uint64_tdisp = action->args.delivery.disposition; -boolsettled= action->args.delivery.settled; -qdr_error_t*error = action->args.delivery.error; -bool error_unassigned = true; +if (discard) +return; + +qdr_delivery_t *dlv = action->args.delivery.delivery; +qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); +uint64_tnew_disp = action->args.delivery.disposition; +boolsettled = action->args.delivery.settled; +qdr_error_t*error= action->args.delivery.error; +bool free_error = true; + +if (dlv->multicast) { +// +// remote state change for *inbound* multicast delivery, +// update downstream *outbound* peers +// +qdr_delivery_mcast_update_CT(core, dlv, new_disp, settled); Review comment: qdr_delivery_mcast_inbound_update_CT This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#discussion_r317628990 ## File path: src/router_core/delivery.c ## @@ -558,81 +572,386 @@ void qdr_delivery_decref_CT(qdr_core_t *core, qdr_delivery_t *dlv, const char *l } +// the remote endpoint has change the state (disposition) or settlement for the +// delivery. Update the local state/settlement accordingly. +// static void qdr_update_delivery_CT(qdr_core_t *core, qdr_action_t *action, bool discard) { -qdr_delivery_t *dlv= action->args.delivery.delivery; -qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); -boolpush = false; -boolpeer_moved = false; -booldlv_moved = false; -uint64_tdisp = action->args.delivery.disposition; -boolsettled= action->args.delivery.settled; -qdr_error_t*error = action->args.delivery.error; -bool error_unassigned = true; +if (discard) +return; + +qdr_delivery_t *dlv = action->args.delivery.delivery; +qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); +uint64_tnew_disp = action->args.delivery.disposition; +boolsettled = action->args.delivery.settled; +qdr_error_t*error= action->args.delivery.error; +bool free_error = true; + +if (dlv->multicast) { +// +// remote state change for *inbound* multicast delivery, +// update downstream *outbound* peers +// +qdr_delivery_mcast_update_CT(core, dlv, new_disp, settled); -qdr_link_t *dlv_link = qdr_delivery_link(dlv); -qdr_link_t *peer_link = qdr_delivery_link(peer); +} else if (peer && peer->multicast) { +// +// remote state change for an *outbound* delivery to a multicast address, +// propagate upstream to *inbound* delivery (peer) +// +// coverity[swapped_arguments] +qdr_delivery_mcast_peer_update_CT(core, peer, dlv, new_disp, settled); + +} else { +// +// Unicast forwarding +// +free_error = !qdr_delivery_ucast_update_CT(core, dlv, peer, new_disp, settled, error); Review comment: ucast-->anycast This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#discussion_r317628702 ## File path: src/router_core/delivery.c ## @@ -558,81 +572,386 @@ void qdr_delivery_decref_CT(qdr_core_t *core, qdr_delivery_t *dlv, const char *l } +// the remote endpoint has change the state (disposition) or settlement for the +// delivery. Update the local state/settlement accordingly. +// static void qdr_update_delivery_CT(qdr_core_t *core, qdr_action_t *action, bool discard) { -qdr_delivery_t *dlv= action->args.delivery.delivery; -qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); -boolpush = false; -boolpeer_moved = false; -booldlv_moved = false; -uint64_tdisp = action->args.delivery.disposition; -boolsettled= action->args.delivery.settled; -qdr_error_t*error = action->args.delivery.error; -bool error_unassigned = true; +if (discard) +return; + +qdr_delivery_t *dlv = action->args.delivery.delivery; +qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); +uint64_tnew_disp = action->args.delivery.disposition; +boolsettled = action->args.delivery.settled; +qdr_error_t*error= action->args.delivery.error; +bool free_error = true; + +if (dlv->multicast) { +// +// remote state change for *inbound* multicast delivery, +// update downstream *outbound* peers +// +qdr_delivery_mcast_update_CT(core, dlv, new_disp, settled); -qdr_link_t *dlv_link = qdr_delivery_link(dlv); -qdr_link_t *peer_link = qdr_delivery_link(peer); +} else if (peer && peer->multicast) { +// +// remote state change for an *outbound* delivery to a multicast address, +// propagate upstream to *inbound* delivery (peer) +// +// coverity[swapped_arguments] +qdr_delivery_mcast_peer_update_CT(core, peer, dlv, new_disp, settled); Review comment: qdr_delivery_mcast_outbound_update_CT This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#discussion_r317630103 ## File path: src/router_core/delivery.c ## @@ -558,81 +572,386 @@ void qdr_delivery_decref_CT(qdr_core_t *core, qdr_delivery_t *dlv, const char *l } +// the remote endpoint has change the state (disposition) or settlement for the +// delivery. Update the local state/settlement accordingly. +// static void qdr_update_delivery_CT(qdr_core_t *core, qdr_action_t *action, bool discard) { -qdr_delivery_t *dlv= action->args.delivery.delivery; -qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); -boolpush = false; -boolpeer_moved = false; -booldlv_moved = false; -uint64_tdisp = action->args.delivery.disposition; -boolsettled= action->args.delivery.settled; -qdr_error_t*error = action->args.delivery.error; -bool error_unassigned = true; +if (discard) +return; + +qdr_delivery_t *dlv = action->args.delivery.delivery; +qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); +uint64_tnew_disp = action->args.delivery.disposition; +boolsettled = action->args.delivery.settled; +qdr_error_t*error= action->args.delivery.error; +bool free_error = true; + +if (dlv->multicast) { +// +// remote state change for *inbound* multicast delivery, +// update downstream *outbound* peers +// +qdr_delivery_mcast_update_CT(core, dlv, new_disp, settled); -qdr_link_t *dlv_link = qdr_delivery_link(dlv); -qdr_link_t *peer_link = qdr_delivery_link(peer); +} else if (peer && peer->multicast) { +// +// remote state change for an *outbound* delivery to a multicast address, +// propagate upstream to *inbound* delivery (peer) +// +// coverity[swapped_arguments] +qdr_delivery_mcast_peer_update_CT(core, peer, dlv, new_disp, settled); + +} else { +// +// Unicast forwarding +// +free_error = !qdr_delivery_ucast_update_CT(core, dlv, peer, new_disp, settled, error); +} // -// Logic: +// Release the action reference, possibly freeing the delivery // -// If disposition has changed and there is a peer link, set the disposition of the peer -// If settled, the delivery must be unlinked and freed. -// If settled and there is a peer, the peer shall be settled and unlinked. It shall not -// be freed until the connection-side thread settles the PN delivery. +qdr_delivery_decref_CT(core, dlv, "qdr_update_delivery_CT - remove from action"); + +if (free_error) +qdr_error_free(error); +} + + +// The remote delivery state (disposition) and/or remote settlement for an +// unicast delivery has changed. Propagate the changes to its peer delivery. +// +// returns true if ownership of error parameter is taken (do not free it) +// +static bool qdr_delivery_ucast_update_CT(qdr_core_t *core, qdr_delivery_t *dlv, + qdr_delivery_t *peer, uint64_t new_disp, bool settled, + qdr_error_t *error) +{ +bool push = false; +bool peer_moved = false; +bool dlv_moved = false; +bool error_assigned = false; +qdr_link_t *dlink = qdr_delivery_link(dlv); + +assert(!dlv->multicast); +assert(!peer || !peer->multicast); + +if (peer) +qdr_delivery_incref(peer, "qdr_delivery_ucast_update_CT - prevent peer from being freed"); + +// +// Non-multicast Logic: +// +// If disposition has changed and there is a peer link, set the disposition +// of the peer +// If remote settled, the delivery must be unlinked and freed. +// If remote settled and there is a peer, the peer shall be settled and +// unlinked. It shall not be freed until the connection-side thread +// settles the PN delivery. // -if (disp != dlv->disposition) { +if (new_disp != dlv->remote_disposition) { // -// Disposition has changed, propagate the change to the peer delivery. +// Remote disposition has changed, propagate the change to the peer +// delivery local disposition. // -dlv->disposition = disp; +dlv->remote_disposition = new_disp; if (peer) { -peer->disposition = disp; +peer->disposition = new_disp; peer->error = error; push = true; -error_unassigned = false; +error_assigned = true; qdr_delivery_copy_extension_state(dlv, peer, false); } } if (settled) { if (peer) { peer->settled = true; -if (peer_li
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#discussion_r317630736 ## File path: src/router_core/delivery.c ## @@ -558,81 +572,386 @@ void qdr_delivery_decref_CT(qdr_core_t *core, qdr_delivery_t *dlv, const char *l } +// the remote endpoint has change the state (disposition) or settlement for the +// delivery. Update the local state/settlement accordingly. +// static void qdr_update_delivery_CT(qdr_core_t *core, qdr_action_t *action, bool discard) { -qdr_delivery_t *dlv= action->args.delivery.delivery; -qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); -boolpush = false; -boolpeer_moved = false; -booldlv_moved = false; -uint64_tdisp = action->args.delivery.disposition; -boolsettled= action->args.delivery.settled; -qdr_error_t*error = action->args.delivery.error; -bool error_unassigned = true; +if (discard) +return; + +qdr_delivery_t *dlv = action->args.delivery.delivery; +qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); +uint64_tnew_disp = action->args.delivery.disposition; +boolsettled = action->args.delivery.settled; +qdr_error_t*error= action->args.delivery.error; +bool free_error = true; + +if (dlv->multicast) { +// +// remote state change for *inbound* multicast delivery, +// update downstream *outbound* peers +// +qdr_delivery_mcast_update_CT(core, dlv, new_disp, settled); -qdr_link_t *dlv_link = qdr_delivery_link(dlv); -qdr_link_t *peer_link = qdr_delivery_link(peer); +} else if (peer && peer->multicast) { +// +// remote state change for an *outbound* delivery to a multicast address, +// propagate upstream to *inbound* delivery (peer) +// +// coverity[swapped_arguments] +qdr_delivery_mcast_peer_update_CT(core, peer, dlv, new_disp, settled); + +} else { +// +// Unicast forwarding +// +free_error = !qdr_delivery_ucast_update_CT(core, dlv, peer, new_disp, settled, error); +} // -// Logic: +// Release the action reference, possibly freeing the delivery // -// If disposition has changed and there is a peer link, set the disposition of the peer -// If settled, the delivery must be unlinked and freed. -// If settled and there is a peer, the peer shall be settled and unlinked. It shall not -// be freed until the connection-side thread settles the PN delivery. +qdr_delivery_decref_CT(core, dlv, "qdr_update_delivery_CT - remove from action"); + +if (free_error) +qdr_error_free(error); +} + + +// The remote delivery state (disposition) and/or remote settlement for an +// unicast delivery has changed. Propagate the changes to its peer delivery. +// +// returns true if ownership of error parameter is taken (do not free it) +// +static bool qdr_delivery_ucast_update_CT(qdr_core_t *core, qdr_delivery_t *dlv, + qdr_delivery_t *peer, uint64_t new_disp, bool settled, + qdr_error_t *error) +{ +bool push = false; +bool peer_moved = false; +bool dlv_moved = false; +bool error_assigned = false; +qdr_link_t *dlink = qdr_delivery_link(dlv); + +assert(!dlv->multicast); +assert(!peer || !peer->multicast); + +if (peer) +qdr_delivery_incref(peer, "qdr_delivery_ucast_update_CT - prevent peer from being freed"); + +// +// Non-multicast Logic: +// +// If disposition has changed and there is a peer link, set the disposition +// of the peer +// If remote settled, the delivery must be unlinked and freed. +// If remote settled and there is a peer, the peer shall be settled and +// unlinked. It shall not be freed until the connection-side thread +// settles the PN delivery. // -if (disp != dlv->disposition) { +if (new_disp != dlv->remote_disposition) { // -// Disposition has changed, propagate the change to the peer delivery. +// Remote disposition has changed, propagate the change to the peer +// delivery local disposition. // -dlv->disposition = disp; +dlv->remote_disposition = new_disp; if (peer) { -peer->disposition = disp; +peer->disposition = new_disp; peer->error = error; push = true; -error_unassigned = false; +error_assigned = true; qdr_delivery_copy_extension_state(dlv, peer, false); } } if (settled) { if (peer) { peer->settled = true; -if (peer_li
[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding
kgiusti commented on a change in pull request #554: DISPATCH-1266: Fix unsettled multicast forwarding URL: https://github.com/apache/qpid-dispatch/pull/554#discussion_r317631718 ## File path: src/router_core/delivery.c ## @@ -558,81 +572,386 @@ void qdr_delivery_decref_CT(qdr_core_t *core, qdr_delivery_t *dlv, const char *l } +// the remote endpoint has change the state (disposition) or settlement for the +// delivery. Update the local state/settlement accordingly. +// static void qdr_update_delivery_CT(qdr_core_t *core, qdr_action_t *action, bool discard) { -qdr_delivery_t *dlv= action->args.delivery.delivery; -qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); -boolpush = false; -boolpeer_moved = false; -booldlv_moved = false; -uint64_tdisp = action->args.delivery.disposition; -boolsettled= action->args.delivery.settled; -qdr_error_t*error = action->args.delivery.error; -bool error_unassigned = true; +if (discard) +return; + +qdr_delivery_t *dlv = action->args.delivery.delivery; +qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv); +uint64_tnew_disp = action->args.delivery.disposition; +boolsettled = action->args.delivery.settled; +qdr_error_t*error= action->args.delivery.error; +bool free_error = true; + +if (dlv->multicast) { +// +// remote state change for *inbound* multicast delivery, +// update downstream *outbound* peers +// +qdr_delivery_mcast_update_CT(core, dlv, new_disp, settled); -qdr_link_t *dlv_link = qdr_delivery_link(dlv); -qdr_link_t *peer_link = qdr_delivery_link(peer); +} else if (peer && peer->multicast) { +// +// remote state change for an *outbound* delivery to a multicast address, +// propagate upstream to *inbound* delivery (peer) +// +// coverity[swapped_arguments] +qdr_delivery_mcast_peer_update_CT(core, peer, dlv, new_disp, settled); + +} else { +// +// Unicast forwarding +// +free_error = !qdr_delivery_ucast_update_CT(core, dlv, peer, new_disp, settled, error); +} // -// Logic: +// Release the action reference, possibly freeing the delivery // -// If disposition has changed and there is a peer link, set the disposition of the peer -// If settled, the delivery must be unlinked and freed. -// If settled and there is a peer, the peer shall be settled and unlinked. It shall not -// be freed until the connection-side thread settles the PN delivery. +qdr_delivery_decref_CT(core, dlv, "qdr_update_delivery_CT - remove from action"); + +if (free_error) +qdr_error_free(error); +} + + +// The remote delivery state (disposition) and/or remote settlement for an +// unicast delivery has changed. Propagate the changes to its peer delivery. +// +// returns true if ownership of error parameter is taken (do not free it) +// +static bool qdr_delivery_ucast_update_CT(qdr_core_t *core, qdr_delivery_t *dlv, + qdr_delivery_t *peer, uint64_t new_disp, bool settled, + qdr_error_t *error) +{ +bool push = false; +bool peer_moved = false; +bool dlv_moved = false; +bool error_assigned = false; +qdr_link_t *dlink = qdr_delivery_link(dlv); + +assert(!dlv->multicast); +assert(!peer || !peer->multicast); + +if (peer) +qdr_delivery_incref(peer, "qdr_delivery_ucast_update_CT - prevent peer from being freed"); + +// +// Non-multicast Logic: +// +// If disposition has changed and there is a peer link, set the disposition +// of the peer +// If remote settled, the delivery must be unlinked and freed. +// If remote settled and there is a peer, the peer shall be settled and +// unlinked. It shall not be freed until the connection-side thread +// settles the PN delivery. // -if (disp != dlv->disposition) { +if (new_disp != dlv->remote_disposition) { // -// Disposition has changed, propagate the change to the peer delivery. +// Remote disposition has changed, propagate the change to the peer +// delivery local disposition. // -dlv->disposition = disp; +dlv->remote_disposition = new_disp; if (peer) { -peer->disposition = disp; +peer->disposition = new_disp; peer->error = error; push = true; -error_unassigned = false; +error_assigned = true; qdr_delivery_copy_extension_state(dlv, peer, false); } } if (settled) { if (peer) { peer->settled = true; -if (peer_li