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