### New Features

 - Clnoe for `File`
 - `decode::Options::default_from_object_hash()`
   An easier way to initialize decode options, providing only the mandatory
   information.
 - `File::write()` for secure and complete writing of index files.

### Other

 - <csr-id-4a6d46f3ab3d15eb851c92f7e49eb6772bc4023b/> sketch out how a write implementation could work

### Changed (BREAKING)

 - `write::Options::object_hash` is now implied by the `State` itself.
   The `State`, once initialized, knows the kind of object hash it uses and
   there is no need to specify it again.
   
   This affects some method signatures which now work without
   `object_hash`.
 - `decode::Options::object_hash` is now a parameter to methods.
   It's not actually an option that could be defaulted, but an integral
   piece of knowledge that must always be defined by the caller.
   
   This also makes `decode::Options::default()` available once again.
 - seal `File` members to preserve consistency better.
   This also makes sure that it's obvious if the `checksum` is actually
   already computed.

### Reverted (BREAKING)

 - `decode::Options::default()` - remove `Default` impl.
   The contained `git_hash::Kind` can't actually be defaulted as we
   have to know the actual kind used in the repository.
 - remove `write::Options::default()`.
   In practice it's required to inform about the hash kind to use and it's
   possibly incorrect to assume Sha1.

### Commit Statistics

 - 46 commits contributed to the release over the course of 26 calendar days.
 - 27 days passed between releases.
 - 9 commits were understood as [conventional](https://www.conventionalcommits.org).
 - 1 unique issue was worked on: #450

### Thanks Clippy

[Clippy](https://github.com/rust-lang/rust-clippy) helped 4 times to make code idiomatic. 

### Commit Details

 * **#450**
    - Clnoe for `File` (458e1bc)
 * **Uncategorized**
    - prepare changelogs prior to release (423af90)
    - Merge branch 'write-sparse-index' (ba17db0)
    - thanks clippy (49b539b)
    - Remove tests and scaffolding code that probably won't be implemented soon. (177d1c8)
    - refactor (0a74625)
    - Act like git and write a sparse index even if it contains no dir entries anymore. (53af48c)
    - bake knowledge about sparse related config parameters into types. (e61957e)
    - Merge branch 'main' into write-sparse-index (upgrade to Rust 1.65) (5406630)
    - thanks clippy (04cfa63)
    - Merge branch 'main' into write-sparse-index (c4e6849)
    - make fmt (ea2136b)
    - Merge branch 'gix-clone' (def53b3)
    - add and use `checked_is_sparse()` instead of cached `is_sparse` flag (e41ad0f)
    - refactor (3683963)
    - thanks clippy (646b868)
    - added fixture, adjusted tests, refactor (3173c0b)
    - Make clear in code that mandatory extensions will always be written… (3e37443)
    - respect the current 'is_sparse()` state when writing. (2012b27)
    - refactor (a929bcf)
    - thanks clippy (5bfd947)
    - sketch out how a write implementation could work (4a6d46f)
    - regenerated archive (cd1c752)
    - updated docs (77a9d42)
    - added first tests and implementation for writing the `sdir` extension (66a675f)
    - capability to write `sdir`extension (762e4cb)
    - added tests for reading sparse indexes (ddaa003)
    - add temporary sparse index playground testfile (5589a7f)
    - add sparse index text fixtures (8a8a53e)
    - add `is_sparse` access method for `State` (7f012cf)
    - Merge branch 'main' into gix-clone (de4fe06)
    - Merge branch 'fix-gix-index-from-tree' (da5f63c)
    - `write::Options::object_hash` is now implied by the `State` itself. (59f6791)
    - `decode::Options::object_hash` is now a parameter to methods. (908163a)
    - `decode::Options::default_from_object_hash()` (9e03110)
    - refactor (6fb3255)
    - seal `File` members to preserve consistency better. (92dda50)
    - `decode::Options::default()` - remove `Default` impl. (bd312ac)
    - fix tests (fc5cee1)
    - assure we also write V3 files, validate auto-version discovery (abc3cf8)
    - loose fixtures are usable more easily now (b86012b)
    - remove `write::Options::default()`. (2da5a62)
    - `File::write()` for secure and complete writing of index files. (eedcffa)
    - prepare test for writing a complete index file from arbitrary state (281f5b8)
    - Merge branch 'gix-index-from-tree' (8c24386)
    - refactor (08d5c0b)