Re: gopp 1.2.0

Zdenek Dohnal <[email protected]> Thu, 10 Apr 2025 07:34:45 +0200
Newsgroups dev.linux.lists.printing-architecture
Message-ID <[email protected]>
Thank you for the release, Alex!

On 4/9/25 11:23, Alexander Pevzner wrote:
> Hi,
>
> goipp 1.2.0 is now available.
>
> 1. The handling of extension tags has been revised in a manner similar 
> to libcups (they are now treated as a special case of "binary" data). 
> This fixes issue #6, where goipp could panic when decoding an IPP 
> message with a low-value tag encoded as an extension tag.
>
> 2. The semantics of Groups.Equal, Attributes.Equal, and Values.Equal 
> have been clarified so that empty Groups/Attributes/Values are no 
> longer considered equal to nil.
>
> 3. A new .Similar method has been added for Value, Attribute, 
> Attributes, Group, Groups, and Message. Unlike the .Equal method, it 
> checks for logical similarity—meaning the same set of attributes in a 
> different order is considered Similar but not Equal. This method is 
> particularly useful for writing tests.
>
> 4. A .DeepCopy method has been added for Value, Attribute, Attributes, 
> Group, and Groups types. Additionally, a .Clone method has been added 
> for types where it was missing. The difference between .Clone and 
> .DeepCopy is that .Clone returns a shallow copy, while .DeepCopy 
> returns a fully independent copy of the original.
>
> 5. New convenience functions MakeAttr() and MakeAttrCollection() have 
> been added.
>
> 6. By replacing sparse tables with Go maps for operation/status names, 
> approximately 140KB of memory has been saved.
>
> 7. Numerous cosmetic and code formatting tweaks have been made 
> throughout the library.
>
> 8. Tests have been significantly reworked, now achieving 100% test 
> coverage.
>
-- 
Zdenek Dohnal
Senior Software Engineer
Red Hat, BRQ-TPBC