<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ydb/library/cpp/yt/error/mergeable_dictionary.h, branch CLI_2.21.0</title>
<subtitle>Mirror of YDB github repos</subtitle>
<id>https://code.mastervirt.ru/ydb/atom?h=CLI_2.21.0</id>
<link rel='self' href='https://code.mastervirt.ru/ydb/atom?h=CLI_2.21.0'/>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/'/>
<updated>2024-12-25T08:15:51Z</updated>
<entry>
<title>YT-21233: Issues and tidying up of rXXXXXX</title>
<updated>2024-12-25T08:15:51Z</updated>
<author>
<name>arkady-e1ppa</name>
<email>arkady-e1ppa@yandex-team.com</email>
</author>
<published>2024-12-25T07:19:49Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=47a8704130b3d47dcb4eb806c3eae41292e90eb4'/>
<id>urn:sha1:47a8704130b3d47dcb4eb806c3eae41292e90eb4</id>
<content type='text'>
commit_hash:19481c9fbb008aab4f4d676f1a3a242f6e90e90e
</content>
</entry>
<entry>
<title>YT-21233: Introduce ToAttributeValue cpo which removes dependency of TErrorAttribute from yt/core</title>
<updated>2024-11-29T19:12:26Z</updated>
<author>
<name>arkady-e1ppa</name>
<email>arkady-e1ppa@yandex-team.com</email>
</author>
<published>2024-11-29T19:02:21Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=b21317884da9622ac16bbad26627ae014d72d6a7'/>
<id>urn:sha1:b21317884da9622ac16bbad26627ae014d72d6a7</id>
<content type='text'>
Plan:

 1) Remove `IAttributedDictionary` type from the public API. \+

 2) Remove `Set` method from public API in favor of `operator&lt;&lt;=`. \+

 3) Adopt `ConvertTo&lt;T&gt;` (or other name) CPO with proper extension into `NYT::NYson::ConvertTo` from `yt/core`.

 4) Use CPO from (3) to eliminate direct dependency on `yt/core` of `Get/Find` methods from attributes API.

 5) Adopt `ConvertToYsonString` (or other name) CPO with proper extension into `yt/core` customisations.

 6) Use CPO from (5) to eliminate direct dependency on `yt/core` of `TErrorAttribute` ctor.

 7) Swap attributes implementation to the one which doesn’t use `IAttributeDictionary`.

 8) At this point `stripped_error*` can be moved to library/cpp/yt and so can recursively dependant on THROW macro methods `Get/Find/…`.

 9) Adjust CPO’s to work with `std::string` instead of `TYsonString` assuming text format to be used (maybe `TString` for now).

10) Remove dep of `library/cpp/yt/error` on `yson` entirely.

This pr addresses 5-6 steps of plan. Below is a brief explanation of design decisions. We also expressed everything related to key-value code in terms of aliases of `TErrorAttribute` so that later we could make a relatively simple switch to `std::string`. We expect to do steps 7-8 in the next pull request as everything should be ready
commit_hash:de9feca2bd24d823b33d904ef0fa5f4856f9b020
</content>
</entry>
<entry>
<title>YT-21233: Introduce TErrorAttributes as an opaque type for attributes to hide dependencies on IAttributeDictionary's API</title>
<updated>2024-10-22T16:13:37Z</updated>
<author>
<name>arkady-e1ppa</name>
<email>arkady-e1ppa@yandex-team.com</email>
</author>
<published>2024-10-22T15:15:25Z</published>
<link rel='alternate' type='text/html' href='https://code.mastervirt.ru/ydb/commit/?id=477bb1cd2d7d44f218454a8a4137a849eb7e64fa'/>
<id>urn:sha1:477bb1cd2d7d44f218454a8a4137a849eb7e64fa</id>
<content type='text'>
Plan:

1) Remove `IAttributedDictionary` type from the public API. \+

2) Remove `Set` method from public API in favor of `operator&lt;&lt;=`. \+

3) Adopt `ConvertTo&lt;T&gt;` (or other name) CPO with proper extension into `NYT::NYson::ConvertTo` from `yt/core`.

4) Use CPO from (3) to eliminate direct dependency on `yt/core` of `Get/Find` methods from attributes API.

5) Adopt `ConvertToYsonString` (or other name) CPO with proper extension into `yt/core` customisations.

6) Use CPO from (5) to eliminate direct dependency on `yt/core` of `TErrorAttribute` ctor.

7) Swap attributes implementation to the one which doesn’t use `IAttributeDictionary`.

8) At this point `stripped_error*` can be moved to library/cpp/yt and so can recursively dependant on THROW macro methods `Get/Find/…`.

9) Adjust CPO’s to work with `std::string` instead of `TYsonString` assuming text format to be used (maybe `TString` for now).

10) Remove dep of `library/cpp/yt/error` on `yson` entirely.

This pull request covers steps 1 and 2 laying foundation to 3-4 being implemented in the next one
commit_hash:e899bccdef4ebed321ea2eb93215282694c261ac
</content>
</entry>
</feed>
