<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:34:32 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>[GODRIVER-592] Reverse Dependencies of bson and bsoncodec</title>
                <link>https://jira.mongodb.org/browse/GODRIVER-592</link>
                <project id="14289" key="GODRIVER">Go Driver</project>
                    <description>&lt;p&gt;The&#160; &lt;tt&gt;bsoncodec&lt;/tt&gt; package currently depends on the &lt;tt&gt;bson&lt;/tt&gt; package. This means that the types within the &lt;tt&gt;bson&lt;/tt&gt; package cannot marshal themselves. This causes problems for constructing &lt;tt&gt;*bson.Element&lt;/tt&gt;&apos;s from an empty interface, but it also means that a &lt;tt&gt;ToExtJSON&lt;/tt&gt; method cannot be part of a &lt;tt&gt;*bson.Document&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Additionally, with functions like &lt;tt&gt;Marshal&lt;/tt&gt; and &lt;tt&gt;Unmarshal&lt;/tt&gt; being part of the &lt;tt&gt;bsoncodec&lt;/tt&gt; package, users are required to import both packages for most of their BSON usage. This includes the &lt;tt&gt;Encoder&lt;/tt&gt; and &lt;tt&gt;Decoder&lt;/tt&gt; types.&lt;/p&gt;

&lt;p&gt;To fix these problems and prepare for further improvements to the BSON library, reverse the dependency between &lt;tt&gt;bson&lt;/tt&gt; and &lt;tt&gt;bsoncodec&lt;/tt&gt; to have the &lt;tt&gt;bson&lt;/tt&gt; package depend on the &lt;tt&gt;bsoncodec&lt;/tt&gt; package.&lt;/p&gt;

&lt;p&gt;Split the &lt;tt&gt;ValueReader&lt;/tt&gt; and &lt;tt&gt;ValueWriter&lt;/tt&gt; types into their own package called &lt;tt&gt;bsonrw&lt;/tt&gt; and create a public test implementation in a package called &lt;tt&gt;bsonrwtest&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="615753">GODRIVER-592</key>
            <summary>Reverse Dependencies of bson and bsoncodec</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="kris.brandow@mongodb.com">Kristofer Brandow</assignee>
                                    <reporter username="kris.brandow@mongodb.com">Kristofer Brandow</reporter>
                        <labels>
                    </labels>
                <created>Mon, 8 Oct 2018 21:07:20 +0000</created>
                <updated>Sat, 13 Oct 2018 00:36:47 +0000</updated>
                            <resolved>Sat, 13 Oct 2018 00:36:47 +0000</resolved>
                                    <version>0.0.15</version>
                                    <fixVersion>0.0.17</fixVersion>
                                    <component>BSON</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="2032109" author="kris.brandow" created="Sat, 13 Oct 2018 00:36:32 +0000"  >&lt;p&gt;Code Review: &lt;a href=&quot;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/428114&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.gerrithub.io/c/mongodb/mongo-go-driver/+/428114&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="2032106" author="xgen-internal-githook" created="Sat, 13 Oct 2018 00:31:32 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kris Brandow&apos;, &apos;email&apos;: &apos;kris@mongodb.com&apos;, &apos;username&apos;: &apos;skriptble&apos;}
&lt;p&gt;Message: Reverse dependencies between bsoncodec and bson&lt;/p&gt;

&lt;p&gt;This commit reverses the dependency between the bson and bsoncodec&lt;br/&gt;
package. This allows the bson package to contain the Marshal and&lt;br/&gt;
Unmarshal family of functions and the Encoder and Decoder types. This&lt;br/&gt;
allows future types in the bson package to handle the empty interface.&lt;br/&gt;
The default encoders and decoders are split across two packages, because&lt;br/&gt;
the bsoncodec package can only provide encoders and decoders for&lt;br/&gt;
non-bson package types. The empty interface decoder is defined twice: a&lt;br/&gt;
partial version in bsoncdec and a complete version in the bson package.&lt;br/&gt;
Almost all users should use a Registry created from both sets of&lt;br/&gt;
encoders and decoders.&lt;/p&gt;

&lt;p&gt;The bsoncodec package was split into the bsonrw and bsoncodec packages.&lt;br/&gt;
The new bsonrw package contains the ValueReader and ValueWriter&lt;br/&gt;
definitions and implementations. A new bsonrwtest package was created&lt;br/&gt;
with the previously used llValueReaderWriter type that is useful for&lt;br/&gt;
unit testing a ValueReader or ValueWriter implementation. This allows&lt;br/&gt;
users outside of the bsoncodec and bsonrw packages to use this type with&lt;br/&gt;
their own ValueReader and ValueWriter implementations.&lt;/p&gt;

&lt;p&gt;The llbson package is renamed bsoncore and moved out of internal. This&lt;br/&gt;
will allow other users to directly use this low level bson package.&lt;br/&gt;
Eventually the entire BSON library will use bsoncore to handle reading&lt;br/&gt;
and writing BSON from and to bytes. This package replaces the elements&lt;br/&gt;
package, which will be removed in a future commit.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/GODRIVER-592&quot; title=&quot;Reverse Dependencies of bson and bsoncodec&quot; class=&quot;issue-link&quot; data-issue-key=&quot;GODRIVER-592&quot;&gt;&lt;del&gt;GODRIVER-592&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Change-Id: I1e2dabc83cae9705fc062a6b763e0d2b91cde3ef&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-go-driver/commit/44d349d1886bcc181046312daee15bb2533a2d10&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-go-driver/commit/44d349d1886bcc181046312daee15bb2533a2d10&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="541629">GODRIVER-413</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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hu0547:</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>