Skip to content

change log #29

Description

@scottlamb

Is there a change log somewhere? I don't see it in the two places I usually do: CHANGELOG.md within the repo, or via GitHub's releases feature.

It's helpful to have a summary of what changed, particularly across version breaks like the recent v2 -> v3. I look there to see if there's any difference in semantics I might not notice (the code still compiles but changes meaning, or the "obvious" compile fix is wrong). And more mundane things like summaries of bugfixes and new features. I can go through commit-by-commit but that's a lot more work for all the users of the crate, and sometimes important things can be lost in the noise of private dependency updates, stylistic changes, etc.

Activity

  1. tuffy commented on Apr 7, 2025

    @tuffy
    Owner

    Though I haven't put together a proper changelog file yet, I really should get started on that.

    A lot of the work of the 3.0 version has been to have the crate have less surprising behavior than it did before. For instance, the old BitRead.read method could read both unsigned and signed types, but would read signed types as unsigned values and users would need to use the BitRead.read_signed method to handle them properly. This was a source of confusion. The new interface makes it impossible to make that mistake because the new BitRead.read method will always call read_unsigned or read_signed as appropriate based on the type.

    Similarly, promoting the const-based read and write methods as the defaults and a new Huffman code handling interface catch more potential bugs at compile-time, which is a preferable to finding them at runtime. But I know it's troublesome to force people to upgrade lots of code at once, so my intent is to have the BitRead2 and BitWrite2 compatibility traits be as compatible with existing code as possible.

    Most of the remaining changes are overhauling the plumbing to make the crate a lot faster than before - ~50% faster in my tests - which will hopefully make it worth upgrading to.

    I'll try to be more diligent in the future about documenting these things without users having to sort through commit logs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions