Repository navigation
ci: check database files and roots are portable across Linux and macOS - #55
Merged
Merged
Conversation
dipkakwani
force-pushed
the
ci/mdbx-portability
branch
from
October 14, 2026 10:15
017a598 to
982d9f4
Compare
dipkakwani
force-pushed
the
ci/mdbx-portability
branch
from
October 14, 2026 10:19
982d9f4 to
02e3f5a
Compare
dipkakwani
force-pushed
the
ci/mdbx-portability
branch
from
October 14, 2026 12:09
02e3f5a to
6185f97
Compare
dipkakwani
marked this pull request as ready for review
October 14, 2026 12:19
krzysiekfonal
approved these changes
Oct 15, 2026
krzysiekfonal
left a comment
Collaborator
There was a problem hiding this comment.
Generally fine and very good to have it, good idea ;)
I would only rethink this subdir name 'examples' (but not sure about other candidate, maybe portability subdir and the test work-over-snapshot.rs - just guessiong but exmaples seems like not the real test)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #41.
Adds a workflow that checks database files are portable between Linux (x86-64 and ARM) and macOS:
The check uses only the public API. The storage backend is opened in one place through the
Storeadapter, so replacing MDBX means changing one line.Runs on pushes to
main.Tested on this PR: this run passes on the current main branch. With #37's fixed page size reverted, this run fails:
Why it fails without #37
Genesis::validatechecks the genesis against that limit, because attribute values become part of index keys. A genesis allowing 3,000-character strings needs 3,034-byte keys: a database created on macOS accepts it, one created on Linux rejects it withInvalidConfig.#37 fixes the page size at 4 KiB, so every platform creates databases with the same 2,022-byte limit.