<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:12:48 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[CDRIVER-1527] Add mongoc_client_[read|write|read_write]_command_with_opts</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-1527</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;*&lt;b&gt;Update&lt;/b&gt;*: the API proposed below was not what we implemented. See the first linked commit for an overview of the actual API.&lt;/p&gt;

&lt;p&gt;Currently we have mongoc_client_command and mongoc_client_command_simple (and equivalents for database and collection). These functions are &quot;generic command methods&quot; and follow driver specs that require they do &lt;b&gt;no&lt;/b&gt; special handling of writeConcern, readConcern, or collation. They don&apos;t obey the read preference set on the client, database, or collection object. They don&apos;t parse writeConcernError from the server reply. This matches various specs that &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst#generic-command-method-1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;say things like&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The generic command method MUST NOT check the user&apos;s command document for a WriteConcern nor check whether the server is new enough to support a write concern for the command. The method simply sends the user&apos;s command to the server as-is.&lt;/p&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;p&gt;If your driver offers a generic RunCommand method on your database object, ReadConcern MUST NOT be applied automatically to any command. A user wishing to use a ReadConcern in a generic command must supply it manually.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;And in the Server Selection Spec:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The generic command method MUST ignore any default read preference from client, database or collection configuration. The generic command method SHOULD allow an optional read preference argument.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The relevant specs are &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Read and Write Concern&lt;/a&gt;, &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/collation/collation.rst#require-maxwireversion-5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Collation&lt;/a&gt;, and &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/server-selection/server-selection.rst#use-of-read-preferences-with-commands&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Server Selection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;HLL drivers built on the C Driver can take advantage of our implementation of driver specs when the HLL drivers call our command-specific helper functions. E.g., when the PHP driver calls mongoc_collection_aggregate_with_opts (&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1526&quot; title=&quot;Rename &amp;quot;_with_write_concern&amp;quot; functions to &amp;quot;_with_opts&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1526&quot;&gt;&lt;del&gt;CDRIVER-1526&lt;/del&gt;&lt;/a&gt;), the C Driver selects a server for the operation, ensures it has a connection, and then applies server version checks for writeConcern, readConcern, and collation (&lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1551&quot; title=&quot;Collation: Raise error for command helpers, and support aggregate and createindex&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1551&quot;&gt;&lt;del&gt;CDRIVER-1551&lt;/del&gt;&lt;/a&gt;). It parses the reply for writeConcernError.&lt;/p&gt;

&lt;p&gt;Implementing this special logic in the C Driver gives us &lt;b&gt;two benefits&lt;/b&gt;: it consolidates logic in the C Driver so it need not be reimplemented in HLL drivers, and it executes the logic after selecting a server and verifying we have an open connection to it, which eliminates all race conditions during server upgrades.&lt;/p&gt;

&lt;p&gt;However, to keep taking advantage of these two benefits for all future commands and features, we have to keep adding helper functions with names like mongoc_client_do_new_command_with_opts.&lt;/p&gt;

&lt;p&gt;I propose a function that can execute any command, but applies special rules for writeConcern, readConcern, and collation, and all future options with special behavior:&lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;bool&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;mongoc_client_command_with_opts (mongoc_client_t           *client,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;                                 const char                *db_name,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;                                 const bson_t              *command,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;                                 const mongoc_read_prefs_t *read_prefs,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;                                 const bson_t              *opts,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;                                 bson_t                    *reply,&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;                                 bson_error_t              *error);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;We&apos;ll also add equivalents at the database and collection level:  mongoc_database_command_with_opts and mongoc_collection_command_with_opts.&lt;/p&gt;

&lt;p&gt;Each of these functions:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Checks the command name and sees if it&apos;s a read command like &quot;count&quot;&lt;/li&gt;
	&lt;li&gt;Selects a server, applying the client&apos;s, database&apos;s, or collection&apos;s read prefs if this is a read command.&lt;/li&gt;
	&lt;li&gt;Ensures a connection to the server.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst#other-commands-that-write&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Applies or silently omits the writeConcern&lt;/a&gt; in &quot;opts&quot;, depending on wire version.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst#errors-1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Applies the readConcern in &quot;opts&quot; or returns an error&lt;/a&gt;, depending on wire version.&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/collation/collation.rst#require-maxwireversion-5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Applies the collation from &quot;opts&quot; or returns an error&lt;/a&gt; depending on wire version.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In the future this will be our &quot;porcelain&quot; command helper for future specs that require special handling of options. mongoc_client_command_simple and other generic command functions remain &quot;plumbing&quot; with no special handling.&lt;/p&gt;</description>
                <environment></environment>
        <key id="314650">CDRIVER-1527</key>
            <summary>Add mongoc_client_[read|write|read_write]_command_with_opts</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="backlog-c-driver">Backlog - C Driver Team</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Wed, 7 Sep 2016 15:34:46 +0000</created>
                <updated>Wed, 15 Nov 2017 16:15:04 +0000</updated>
                            <resolved>Thu, 20 Oct 2016 19:35:53 +0000</resolved>
                                                    <fixVersion>1.5.0</fixVersion>
                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1415063" author="xgen-internal-githook" created="Sat, 22 Oct 2016 16:38:24 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1527&quot; title=&quot;Add mongoc_client_[read|write|read_write]_command_with_opts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1527&quot;&gt;&lt;del&gt;CDRIVER-1527&lt;/del&gt;&lt;/a&gt; git ignore example-command-with-opts&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/972e3970d30d05a2cf4909075cc5125f0ff49049&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/972e3970d30d05a2cf4909075cc5125f0ff49049&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1414092" author="xgen-internal-githook" created="Thu, 20 Oct 2016 19:35:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1527&quot; title=&quot;Add mongoc_client_[read|write|read_write]_command_with_opts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1527&quot;&gt;&lt;del&gt;CDRIVER-1527&lt;/del&gt;&lt;/a&gt; don&apos;t call &quot;insert&quot; etc. with mongoc_client_write_command_with_opts&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/0ca49ad05074950f128192f4e5866f325cb6819a&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/0ca49ad05074950f128192f4e5866f325cb6819a&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1414091" author="xgen-internal-githook" created="Thu, 20 Oct 2016 19:35:36 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1527&quot; title=&quot;Add mongoc_client_[read|write|read_write]_command_with_opts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1527&quot;&gt;&lt;del&gt;CDRIVER-1527&lt;/del&gt;&lt;/a&gt; whitespace in command func docs&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/b9b66212cad92e2f45906ee8ae7a1797575a2c40&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/b9b66212cad92e2f45906ee8ae7a1797575a2c40&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1412912" author="xgen-internal-githook" created="Wed, 19 Oct 2016 19:04:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;ajdavis&apos;, u&apos;name&apos;: u&apos;A. Jesse Jiryu Davis&apos;, u&apos;email&apos;: u&apos;jesse@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1527&quot; title=&quot;Add mongoc_client_[read|write|read_write]_command_with_opts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1527&quot;&gt;&lt;del&gt;CDRIVER-1527&lt;/del&gt;&lt;/a&gt; new command funcs with bson_t opts&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-c-driver/commit/3e34af30faca57e014044e0a3b7ca8f3460991df&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-c-driver/commit/3e34af30faca57e014044e0a3b7ca8f3460991df&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1411841" author="jesse" created="Tue, 18 Oct 2016 18:54:01 +0000"  >&lt;p&gt;I hadn&apos;t been thinking about cursor commands, but that&apos;s a good point. I suppose that&apos;s an intended use case: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1842&quot; title=&quot;Example using mongoc_cursor_new_from_command_reply with mongoc_client_command_with_opts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1842&quot;&gt;&lt;del&gt;CDRIVER-1842&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I always forget that the PHP driver let users select servers and run operations in distinct steps. We have to support that: &lt;a href=&quot;https://jira.mongodb.org/browse/CDRIVER-1844&quot; title=&quot;Add &amp;quot;serverId&amp;quot; option for mongoc_client_command_read_with_opts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CDRIVER-1844&quot;&gt;&lt;del&gt;CDRIVER-1844&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1410273" author="jmikola@gmail.com" created="Mon, 17 Oct 2016 15:58:35 +0000"  >&lt;p&gt;Are the new &quot;with_opts&quot; functions (i.e. read, read_write, and write) intended to be used for commands that return a cursor? I realize that they return a single result document, but I found no examples for using these in conjunction with something like aggregation or listCollections. Perhaps the PR should include an example using &lt;tt&gt;mongoc_cursor_new_from_command_reply()&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Second question: will these new functions allow consumers to specify their own hint for server selection, or does this API require libmongoc to perform internal server selection? PHPC and HHVM won&apos;t be able to use this API without a configurable hint, since we already provide APIs for executing commands on pre-selected servers.&lt;/p&gt;</comment>
                            <comment id="1396362" author="jesse" created="Thu, 29 Sep 2016 02:02:19 +0000"  >&lt;p&gt;After re-reading &lt;a href=&quot;https://jira.mongodb.org/browse/DRIVERS-250&quot; title=&quot;Support bypassDocumentValidation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;DRIVERS-250&quot;&gt;&lt;del&gt;DRIVERS-250&lt;/del&gt;&lt;/a&gt; and the PyMongo source I realize that mongoc_database_command_with_opts should do nothing special with bypassDocumentValidation.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="293110">CXX-927</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="300442">CXX-971</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="332003">PHPC-834</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="240033">CDRIVER-1005</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="402370">CDRIVER-2207</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="315694">CDRIVER-1537</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="317363">CDRIVER-1551</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="128402">CDRIVER-329</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>CDRIVER-1524</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hspihz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>