浏览代码

misc: prepare release

Philipp Schuster 7 月之前
父节点
当前提交
86ece11c3b

+ 10 - 2
Cargo.lock

@@ -27,11 +27,12 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 
 
 [[package]]
 [[package]]
 name = "multiboot2"
 name = "multiboot2"
-version = "0.21.0"
+version = "0.22.0"
 dependencies = [
 dependencies = [
  "bitflags",
  "bitflags",
  "derive_more",
  "derive_more",
  "log",
  "log",
+ "multiboot2-common",
  "ptr_meta",
  "ptr_meta",
  "uefi-raw",
  "uefi-raw",
 ]
 ]
@@ -39,13 +40,20 @@ dependencies = [
 [[package]]
 [[package]]
 name = "multiboot2-common"
 name = "multiboot2-common"
 version = "0.1.0"
 version = "0.1.0"
+dependencies = [
+ "derive_more",
+ "ptr_meta",
+]
 
 
 [[package]]
 [[package]]
 name = "multiboot2-header"
 name = "multiboot2-header"
-version = "0.4.0"
+version = "0.5.0"
 dependencies = [
 dependencies = [
  "derive_more",
  "derive_more",
+ "log",
  "multiboot2",
  "multiboot2",
+ "multiboot2-common",
+ "ptr_meta",
 ]
 ]
 
 
 [[package]]
 [[package]]

+ 5 - 3
Cargo.toml

@@ -13,9 +13,11 @@ exclude = [
 bitflags = "2.6.0"
 bitflags = "2.6.0"
 derive_more = { version = "~0.99.18", default-features = false, features = ["display"] }
 derive_more = { version = "~0.99.18", default-features = false, features = ["display"] }
 log = { version = "~0.4", default-features = false }
 log = { version = "~0.4", default-features = false }
+ptr_meta = { version = "~0.2", default-features = false }
 
 
-# This way, the "multiboot2" dependency in the multiboot2-header crate can be
-# referenced by version, while still the repository version is used
-# transparently during local development.
+# This way, the corresponding crate dependency can be normalley referenced by
+# version, while still the repository version is used transparently during local
+# development.
 [patch.crates-io]
 [patch.crates-io]
 multiboot2 = { path = "multiboot2" }
 multiboot2 = { path = "multiboot2" }
+multiboot2-common = { path = "multiboot2-common" }

+ 14 - 2
integration-test/bins/Cargo.lock

@@ -96,21 +96,33 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "multiboot2"
 name = "multiboot2"
-version = "0.21.0"
+version = "0.22.0"
 dependencies = [
 dependencies = [
  "bitflags 2.6.0",
  "bitflags 2.6.0",
  "derive_more",
  "derive_more",
  "log",
  "log",
+ "multiboot2-common",
  "ptr_meta",
  "ptr_meta",
  "uefi-raw",
  "uefi-raw",
 ]
 ]
 
 
+[[package]]
+name = "multiboot2-common"
+version = "0.1.0"
+dependencies = [
+ "derive_more",
+ "ptr_meta",
+]
+
 [[package]]
 [[package]]
 name = "multiboot2-header"
 name = "multiboot2-header"
-version = "0.4.0"
+version = "0.5.0"
 dependencies = [
 dependencies = [
  "derive_more",
  "derive_more",
+ "log",
  "multiboot2",
  "multiboot2",
+ "multiboot2-common",
+ "ptr_meta",
 ]
 ]
 
 
 [[package]]
 [[package]]

+ 2 - 0
integration-test/bins/Cargo.toml

@@ -24,3 +24,5 @@ util = { path = "./util" }
 # transparently during local development.
 # transparently during local development.
 [patch.crates-io]
 [patch.crates-io]
 multiboot2 = { path = "../../multiboot2" }
 multiboot2 = { path = "../../multiboot2" }
+multiboot2-common = { path = "../../multiboot2-common" }
+multiboot2-header = { path = "../../multiboot2-header" }

+ 2 - 2
multiboot2-header/Cargo.toml

@@ -4,7 +4,7 @@ description = """
 Library with type definitions and parsing functions for Multiboot2 headers.
 Library with type definitions and parsing functions for Multiboot2 headers.
 This library is `no_std` and can be used in bootloaders.
 This library is `no_std` and can be used in bootloaders.
 """
 """
-version = "0.4.0"
+version = "0.5.0"
 authors = [
 authors = [
     "Philipp Schuster <phip1611@gmail.com>"
     "Philipp Schuster <phip1611@gmail.com>"
 ]
 ]
@@ -43,7 +43,7 @@ unstable = []
 derive_more.workspace = true
 derive_more.workspace = true
 log.workspace = true
 log.workspace = true
 ptr_meta.workspace = true
 ptr_meta.workspace = true
-multiboot2 = { version = "0.21.0", default-features = false }
+multiboot2 = { version = "0.22.0", default-features = false }
 multiboot2-common = "0.1.0"
 multiboot2-common = "0.1.0"
 
 
 [package.metadata.docs.rs]
 [package.metadata.docs.rs]

+ 11 - 1
multiboot2-header/Changelog.md

@@ -1,8 +1,18 @@
 # CHANGELOG for crate `multiboot2-header`
 # CHANGELOG for crate `multiboot2-header`
 
 
-## Unreleased
+## v0.5.0
+
+This release contains a major refactoring of the internals, guaranteeing
+even more sanity checks for correct behaviour and lack of UB. In this release,
+the `Builder` was rewritten and lots of corresponding UB in certain
+corer-cases removed. Further, the builder's API was streamlined.
+
+If you are interested in the internals of the major refactorings recently taken
+place, please head to the documentation of `multiboot2-common`.
 
 
 - **Breaking** All functions that returns something useful are now `#[must_use]`
 - **Breaking** All functions that returns something useful are now `#[must_use]`
+- **Breaking** The builder type is now just called `Builder`. This needs the
+  `builder` feature.
 - Updated to latest `multiboot2` dependency
 - Updated to latest `multiboot2` dependency
 
 
 ## 0.4.0 (2024-05-01)
 ## 0.4.0 (2024-05-01)

+ 1 - 1
multiboot2/Cargo.toml

@@ -6,7 +6,7 @@ Multiboot2-compliant bootloaders, such as GRUB. It supports all tags from the
 specification including full support for the sections of ELF files. This library
 specification including full support for the sections of ELF files. This library
 is `no_std` and can be used in a Multiboot2-kernel.
 is `no_std` and can be used in a Multiboot2-kernel.
 """
 """
-version = "0.21.0"
+version = "0.22.0"
 authors = [
 authors = [
     "Philipp Oppermann <dev@phil-opp.com>",
     "Philipp Oppermann <dev@phil-opp.com>",
     "Calvin Lee <cyrus296@gmail.com>",
     "Calvin Lee <cyrus296@gmail.com>",

+ 11 - 3
multiboot2/Changelog.md

@@ -1,6 +1,11 @@
 # CHANGELOG for crate `multiboot2`
 # CHANGELOG for crate `multiboot2`
 
 
-## Unreleased
+## v0.22.0
+
+This release contains another major refactoring of the internals, guaranteeing
+even more sanity checks for correct behaviour and lack of UB. In this release,
+the `Builder` was rewritten and lots of corresponding UB in certain
+corer-cases removed. Further, the builder's API was streamlined.
 
 
 If you are interested in the internals of the major refactorings recently taken
 If you are interested in the internals of the major refactorings recently taken
 place, please head to the documentation of `multiboot2-common`.
 place, please head to the documentation of `multiboot2-common`.
@@ -29,12 +34,15 @@ base is in excellent shape!
 
 
 ## 0.21.0 (2024-08-17)
 ## 0.21.0 (2024-08-17)
 
 
-This release contains a massive refactoring of various internals. Now, **all
-unit tests pass Miri**, thus we removed lots of undefined behaviour and
+This release contains a massive refactoring of various internals. Now, **almost
+**unit tests pass Miri**, thus we removed lots of undefined behaviour and
 increased the memory safety! 🎉 Only a small part of these internal refactorings
 increased the memory safety! 🎉 Only a small part of these internal refactorings
 leak to the public interface. If you don't use external custom tags, you
 leak to the public interface. If you don't use external custom tags, you
 should be fine from any refactorings.
 should be fine from any refactorings.
 
 
+_**Edit**: The builder and the framebuffer still contain some UB. This is fixed
+in the next release._
+
 Please note that **all previous releases** must be considered unsafe, as they
 Please note that **all previous releases** must be considered unsafe, as they
 contain UB. However, it is never clear how UB results in immediate incorrect
 contain UB. However, it is never clear how UB results in immediate incorrect
 behaviour and it _might_ work. **Nevertheless, please migrate to the latest
 behaviour and it _might_ work. **Nevertheless, please migrate to the latest