Skip to content

Commit 6a89a3b

Browse files
Prepare for release of version 0.6.0 (#499)
Co-authored-by: py-mine-ci-bot <121461646+py-mine-ci-bot[bot]@users.noreply.github.com>
1 parent 9097d70 commit 6a89a3b

31 files changed

+72
-55
lines changed

CHANGELOG.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,75 @@
1+
## Version 0.6.0 (2025-08-06)
2+
3+
### Breaking Changes
4+
5+
- [#421](https://github.com/py-mine/mcproto/issues/421): Drop support for Python 3.8 ([EOL since 2024-09-06](https://peps.python.org/pep-0569/))
6+
7+
### Features
8+
9+
- [#209](https://github.com/py-mine/mcproto/issues/209): Added `InvalidPacketContentError` exception, raised when deserializing of a specific packet fails. This error inherits from `IOError`, making it backwards compatible with the original implementation.
10+
- [#257](https://github.com/py-mine/mcproto/issues/257): Added the `NBTag` to deal with NBT data
11+
- The `NBTag` class is the base class for all NBT tags and provides the basic functionality to serialize and deserialize NBT data from and to a `Buffer` object.
12+
- The classes `EndNBT`, `ByteNBT`, `ShortNBT`, `IntNBT`, `LongNBT`, `FloatNBT`, `DoubleNBT`, `ByteArrayNBT`, `StringNBT`, `ListNBT`, `CompoundNBT`, `IntArrayNBT`and `LongArrayNBT` were added and correspond to the NBT types described in the [NBT specification](https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_merge/NBT).
13+
- NBT tags can be created using the `NBTag.from_object()` method and a schema that describes the NBT tag structure.
14+
Compound tags are represented as dictionaries, list tags as lists, and primitive tags as their respective Python types.
15+
The implementation allows to add custom classes to the schema to handle custom NBT tags if they inherit the `:class: NBTagConvertible` class.
16+
- The `NBTag.to_object()` method can be used to convert an NBT tag back to a Python object. Use include_schema=True to include the schema in the output, and `include_name=True` to include the name of the tag in the output. In that case the output will be a dictionary with a single key that is the name of the tag and the value is the object representation of the tag.
17+
- The `NBTag.serialize()` can be used to serialize an NBT tag to a new `Buffer` object.
18+
- The `NBTag.deserialize(buffer)` can be used to deserialize an NBT tag from a `Buffer` object.
19+
- If the buffer already exists, the `NBTag.write_to(buffer, with_type=True, with_name=True)` method can be used to write the NBT tag to the buffer (and in that case with the type and name in the right format).
20+
- The `NBTag.read_from(buffer, with_type=True, with_name=True)` method can be used to read an NBT tag from the buffer (and in that case with the type and name in the right format).
21+
- The `NBTag.value` property can be used to get the value of the NBT tag as a Python object.
22+
- [#476](https://github.com/py-mine/mcproto/issues/476): Added `LoginAcknowledged` packet implementation
23+
- Added further encryption related fucntions used by servers.
24+
- Update `LoginStart` packet to latest protocol version (`uuid` no longer optional)
25+
26+
### Bugfixes
27+
28+
- [#330](https://github.com/py-mine/mcproto/issues/330): Fix behavior of the `mcproto.utils.deprecation` module, which was incorrectly always using a fallback version, assuming mcproto is at version 0.0.0. This then could've meant that using a deprecated feature that is past the specified deprecation (removal) version still only resulted in a deprecation warning, as opposed to a full runtime error.
29+
- [#427](https://github.com/py-mine/mcproto/issues/427): Fix version comparisons in deprecated functions for PEP440, non-semver compatible versions
30+
31+
### Documentation Improvements
32+
33+
- [#179](https://github.com/py-mine/mcproto/issues/179): Enforce presence of docstrings everywhere with pydocstyle. This also adds docstring to all functions and classes that didn't already have one. Minor improvements for consistency were also made to some existing docstrings.
34+
- [#346](https://github.com/py-mine/mcproto/issues/346): Complete documentation rewrite
35+
- Add protocol and protocol pages (API reference docs)
36+
37+
### Internal Changes
38+
39+
- [#131](https://github.com/py-mine/mcproto/issues/131): Any overridden methods in any classes now have to explicitly use the `typing.override` decorator (see [PEP 698](https://peps.python.org/pep-0698/))
40+
- [#258](https://github.com/py-mine/mcproto/issues/258): Fix readthedocs CI
41+
- [#259](https://github.com/py-mine/mcproto/issues/259): Merge dependabot PRs automatically, if they pass all CI checks.
42+
- [#274](https://github.com/py-mine/mcproto/issues/274): Update ruff
43+
- Update ruff version (the version we used was very outdated)
44+
- Drop isort in favor of ruff's built-in isort module in the linter
45+
- Drop black in favor of ruff's new built-in formatter
46+
- Update ruff settings, including adding/enabling some new rule-sets
47+
- [#285](https://github.com/py-mine/mcproto/issues/285): Add `gen_serializable_test` function to generate tests for serializable classes, covering serialization, deserialization, validation, and error handling.
48+
- [#285](https://github.com/py-mine/mcproto/issues/285): Rework the `Serializable` class
49+
- [#286](https://github.com/py-mine/mcproto/issues/286): Update the docstring formatting directive in CONTRIBUTING.md to reflect the formatting practices currently in place.
50+
- [#300](https://github.com/py-mine/mcproto/issues/300): Update CI
51+
- Fix CI not running unit tests on python 3.8 (only 3.11)
52+
- Update to use python 3.12 (in validation and as one of the matrix versions in unit-tests workflow)
53+
- Trigger and run lint and unit-tests workflows form a single main CI workflow.
54+
- Only send status embed after the main CI workflow finishes (not for both unit-tests and validation)
55+
- Use `--output-format=github` for `ruff check` in the validation workflow
56+
- Fix the status-embed workflow
57+
- [#323](https://github.com/py-mine/mcproto/issues/323): Enable various other ruff rules as a part of switching to blacklist model, where we explicitly disable the rules we don't want, rather than enabling dozens of rule groups individually.
58+
- [#329](https://github.com/py-mine/mcproto/issues/329): - Change the type-checker from `pyright` to `basedpyright`
59+
- BasedPyright is a fork of pyright, which provides some additional typing features and re-implements various proprietary features from the closed-source Pylance vscode extension.
60+
- Overall, it is very similar to pyright with some bonus stuff on top. However, it does mean all contributors who want proper editor support for the project will need to update their editor settings and add basedpyright. The instructions on how to do this are described in the updated `CONTRIBUTING.md`.
61+
- [#331](https://github.com/py-mine/mcproto/issues/331): Add `.editorconfig` file, defining some basic configuration for the project, which editors can automatically pick up on (i.e. indent size).
62+
- [#332](https://github.com/py-mine/mcproto/issues/332): Enable various other (based)pyright rules (in fact, switch to a black-list, having all rules enabled except those explicitly disabled). This introduces a much stricter type checking behavior into the code-base.
63+
- [#347](https://github.com/py-mine/mcproto/issues/347): Fix towncrier after an update (template file isn't ignored by default, so ignore it manually)
64+
- [#379](https://github.com/py-mine/mcproto/issues/379): Remove codeclimate
65+
- [#395](https://github.com/py-mine/mcproto/issues/395): Add CI workflow for marking inactive issues (>60 days) with the stale label
66+
- [#421](https://github.com/py-mine/mcproto/issues/421): Add support for python 3.13, moving the CI to test against it.
67+
- [#493](https://github.com/py-mine/mcproto/issues/493): Change our primary dependency management tool from `poetry` to `uv`
68+
- [#497](https://github.com/py-mine/mcproto/issues/497): Add changelog-this poe task
69+
- [#498](https://github.com/py-mine/mcproto/issues/498): Drop [repo-sync/pull-request](https://github.com/repo-sync/pull-request) action in favor of GitHub CLI
70+
71+
---
72+
173
## Version 0.5.0 (2023-08-10)
274

375
### Breaking Changes

changes/+api_pages.docs.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/+loginstart_update.feature.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/+server_encryption_fucntions.feature.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/131.internal.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/179.docs.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/209.feature.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/257.feature.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

changes/258.internal.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changes/259.internal.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)