From 8fa52b0ef8dbe616461704a011fdb319741a8fa5 Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Thu, 8 Jan 2026 10:33:09 +1100 Subject: [PATCH 1/8] Add mojo-toml v0.3.0 - Native TOML parser for Mojo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Package: mojo-toml v0.3.0 A native TOML 1.0 parser for Mojo with zero Python dependencies. Features: - Complete TOML 1.0 syntax support - 96 comprehensive tests ensuring reliability - Nested tables, dotted keys, duplicate detection - Clear error messages with line/column context - Performance: 26μs for simple parses, 2ms for real files Repository: - GitHub: https://github.com/DataBooth/mojo-toml - Release: https://github.com/DataBooth/mojo-toml/releases/tag/v0.3.0 - License: MIT Testing: Package includes test_package.mojo which validates: - Simple key-value parsing - Integer and array parsing - Nested table structures - Dotted key functionality All 96 tests pass in the source repository. Sponsored by DataBooth (https://www.databooth.com.au/posts/mojo) --- recipes/mojo-toml/recipe.yaml | 54 +++++++++++++++++++++++++++++ recipes/mojo-toml/test_package.mojo | 54 +++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 recipes/mojo-toml/recipe.yaml create mode 100644 recipes/mojo-toml/test_package.mojo diff --git a/recipes/mojo-toml/recipe.yaml b/recipes/mojo-toml/recipe.yaml new file mode 100644 index 00000000..8f644769 --- /dev/null +++ b/recipes/mojo-toml/recipe.yaml @@ -0,0 +1,54 @@ +package: + name: mojo-toml + version: 0.3.0 + +source: + git: https://github.com/DataBooth/mojo-toml.git + tag: v0.3.0 + +build: + number: 0 + script: + - mkdir -p $PREFIX/lib/mojo/toml + - cp -r src/toml/* $PREFIX/lib/mojo/toml/ + +requirements: + build: + - mojo >=25.1 + host: + - mojo >=25.1 + run: + - mojo >=25.1 + +test: + commands: + - test -f $PREFIX/lib/mojo/toml/__init__.mojo + - test -f $PREFIX/lib/mojo/toml/lexer.mojo + - test -f $PREFIX/lib/mojo/toml/parser.mojo + +about: + homepage: https://github.com/DataBooth/mojo-toml + license: MIT + license_file: LICENSE + summary: A native TOML 1.0 parser for Mojo 🔥 + description: | + mojo-toml is the first native TOML 1.0 parser for Mojo, enabling fast and + efficient parsing of TOML configuration files with zero Python dependencies. + + Features: + - Complete TOML 1.0 syntax support (strings, numbers, arrays, tables) + - Nested table structures with proper Dict navigation + - Dotted keys for creating nested structures + - Duplicate key detection + - Clear error messages with line/column context + - 96 comprehensive tests ensuring reliability + - Performance: 26μs for simple parses, 2ms for real-world files + + Perfect for configuration files, build systems, and any Mojo application + needing structured configuration. + doc_url: https://github.com/DataBooth/mojo-toml/blob/main/README.md + dev_url: https://github.com/DataBooth/mojo-toml + +extra: + recipe-maintainers: + - mjboothaus diff --git a/recipes/mojo-toml/test_package.mojo b/recipes/mojo-toml/test_package.mojo new file mode 100644 index 00000000..90db39ff --- /dev/null +++ b/recipes/mojo-toml/test_package.mojo @@ -0,0 +1,54 @@ +"""Test file for mojo-toml package installation. + +This test verifies that mojo-toml is properly installed and can parse TOML. +""" + +from toml import parse + + +fn main() raises: + """Test basic TOML parsing functionality.""" + + print("Testing mojo-toml package installation...") + + # Test 1: Simple key-value parsing + var config1 = parse('name = "mojo-toml"') + var name = config1["name"].as_string() + if name != "mojo-toml": + raise Error("Test failed: Expected 'mojo-toml', got: " + name) + print("✓ Test 1 passed: Simple key-value") + + # Test 2: Integer parsing + var config2 = parse('port = 8080') + var port = config2["port"].as_int() + if port != 8080: + raise Error("Test failed: Expected 8080, got: " + String(port)) + print("✓ Test 2 passed: Integer parsing") + + # Test 3: Array parsing + var config3 = parse('items = [1, 2, 3]') + var items = config3["items"].as_array() + if len(items) != 3: + raise Error("Test failed: Expected 3 items, got: " + String(len(items))) + print("✓ Test 3 passed: Array parsing") + + # Test 4: Nested table parsing + var config4 = parse('[database]\nhost = "localhost"\nport = 5432') + var db = config4["database"].as_table() + var host = db["host"].as_string() + if host != "localhost": + raise Error("Test failed: Expected 'localhost', got: " + host) + print("✓ Test 4 passed: Nested tables") + + # Test 5: Dotted keys + var config5 = parse('a.b.c = "nested"') + var a_table = config5["a"].as_table() + var b_table = a_table["b"].as_table() + var c_value = b_table["c"].as_string() + if c_value != "nested": + raise Error("Test failed: Expected 'nested', got: " + c_value) + print("✓ Test 5 passed: Dotted keys") + + print() + print("✅ All tests passed! mojo-toml is working correctly.") + print("Package version: 0.3.0") From b02184450637455bd9a02d94e28555c46cc00699 Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Mon, 12 Jan 2026 14:56:16 +1100 Subject: [PATCH 2/8] Update mojo-toml to v0.5.0 Updates mojo-toml from v0.3.0 to v0.5.0 with full TOML 1.0 compliance and partial TOML 1.1 support. Major changes since v0.3.0: - Complete TOML 1.0 specification (array-of-tables, alt number bases) - Partial TOML 1.1 support (\xHH and \e escapes) - 168 tests (up from 96) - Comprehensive benchmarking system - Pre-commit hooks fixed - TOML writer with round-trip fidelity Release: https://github.com/DataBooth/mojo-toml/releases/tag/v0.5.0 Co-Authored-By: Warp --- recipes/mojo-toml/recipe.yaml | 29 ++++++++++++++++++----------- recipes/mojo-toml/test_package.mojo | 14 +++++++------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/recipes/mojo-toml/recipe.yaml b/recipes/mojo-toml/recipe.yaml index 8f644769..f9d290b9 100644 --- a/recipes/mojo-toml/recipe.yaml +++ b/recipes/mojo-toml/recipe.yaml @@ -1,10 +1,10 @@ package: name: mojo-toml - version: 0.3.0 + version: 0.5.0 source: git: https://github.com/DataBooth/mojo-toml.git - tag: v0.3.0 + tag: v0.5.0 build: number: 0 @@ -25,26 +25,33 @@ test: - test -f $PREFIX/lib/mojo/toml/__init__.mojo - test -f $PREFIX/lib/mojo/toml/lexer.mojo - test -f $PREFIX/lib/mojo/toml/parser.mojo + - test -f $PREFIX/lib/mojo/toml/writer.mojo about: homepage: https://github.com/DataBooth/mojo-toml license: MIT license_file: LICENSE - summary: A native TOML 1.0 parser for Mojo 🔥 + summary: Native TOML 1.0 parser and writer for Mojo - Complete + Partial 1.1 🔥 description: | - mojo-toml is the first native TOML 1.0 parser for Mojo, enabling fast and - efficient parsing of TOML configuration files with zero Python dependencies. - + mojo-toml is a native TOML 1.0 parser and writer for Mojo, enabling + fast and efficient parsing and writing of TOML configuration files with zero + Python dependencies. + Features: - - Complete TOML 1.0 syntax support (strings, numbers, arrays, tables) + - Complete TOML 1.0 specification support + - Array of tables [[section]] syntax + - Alternative number bases (hex 0xDEAD, octal 0o755, binary 0b1101) + - Partial TOML 1.1: \xHH and \e escape sequences + - TOML writer with full round-trip fidelity - Nested table structures with proper Dict navigation - Dotted keys for creating nested structures - Duplicate key detection - Clear error messages with line/column context - - 96 comprehensive tests ensuring reliability - - Performance: 26μs for simple parses, 2ms for real-world files - - Perfect for configuration files, build systems, and any Mojo application + - 168 comprehensive tests (127 parser + 41 writer) + - Performance: 24μs for simple parses, 2ms for real-world files + - Comprehensive benchmark system + + Perfect for configuration files, build systems, and any Mojo application needing structured configuration. doc_url: https://github.com/DataBooth/mojo-toml/blob/main/README.md dev_url: https://github.com/DataBooth/mojo-toml diff --git a/recipes/mojo-toml/test_package.mojo b/recipes/mojo-toml/test_package.mojo index 90db39ff..722edee1 100644 --- a/recipes/mojo-toml/test_package.mojo +++ b/recipes/mojo-toml/test_package.mojo @@ -8,30 +8,30 @@ from toml import parse fn main() raises: """Test basic TOML parsing functionality.""" - + print("Testing mojo-toml package installation...") - + # Test 1: Simple key-value parsing var config1 = parse('name = "mojo-toml"') var name = config1["name"].as_string() if name != "mojo-toml": raise Error("Test failed: Expected 'mojo-toml', got: " + name) print("✓ Test 1 passed: Simple key-value") - + # Test 2: Integer parsing var config2 = parse('port = 8080') var port = config2["port"].as_int() if port != 8080: raise Error("Test failed: Expected 8080, got: " + String(port)) print("✓ Test 2 passed: Integer parsing") - + # Test 3: Array parsing var config3 = parse('items = [1, 2, 3]') var items = config3["items"].as_array() if len(items) != 3: raise Error("Test failed: Expected 3 items, got: " + String(len(items))) print("✓ Test 3 passed: Array parsing") - + # Test 4: Nested table parsing var config4 = parse('[database]\nhost = "localhost"\nport = 5432') var db = config4["database"].as_table() @@ -39,7 +39,7 @@ fn main() raises: if host != "localhost": raise Error("Test failed: Expected 'localhost', got: " + host) print("✓ Test 4 passed: Nested tables") - + # Test 5: Dotted keys var config5 = parse('a.b.c = "nested"') var a_table = config5["a"].as_table() @@ -48,7 +48,7 @@ fn main() raises: if c_value != "nested": raise Error("Test failed: Expected 'nested', got: " + c_value) print("✓ Test 5 passed: Dotted keys") - + print() print("✅ All tests passed! mojo-toml is working correctly.") print("Package version: 0.3.0") From d472d893f7154a70415e1129992ea51e2d70ef6c Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Tue, 27 Jan 2026 13:05:12 +1100 Subject: [PATCH 3/8] Add package image for builds.modular.com display per reviewer request --- recipes/mojo-toml/image.png | Bin 0 -> 6025 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 recipes/mojo-toml/image.png diff --git a/recipes/mojo-toml/image.png b/recipes/mojo-toml/image.png new file mode 100644 index 0000000000000000000000000000000000000000..e8aaa690e5589ad7a509a3f30d3f331e9cec3a3c GIT binary patch literal 6025 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 literal 0 HcmV?d00001 From da45a5490c4d3258b456106cd472c8d8154eebf1 Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Tue, 27 Jan 2026 13:23:30 +1100 Subject: [PATCH 4/8] Bump version to 0.5.1 with CodeQL and package image --- recipes/mojo-toml/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/mojo-toml/recipe.yaml b/recipes/mojo-toml/recipe.yaml index f9d290b9..09301c8e 100644 --- a/recipes/mojo-toml/recipe.yaml +++ b/recipes/mojo-toml/recipe.yaml @@ -1,6 +1,6 @@ package: name: mojo-toml - version: 0.5.0 + version: 0.5.1 source: git: https://github.com/DataBooth/mojo-toml.git From 8881c566841329a213ca934469aa8dde852c2473 Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Thu, 29 Jan 2026 13:11:41 +1100 Subject: [PATCH 5/8] Fix mojo-toml recipe: update tag to v0.5.1 and license to Apache-2.0 - Update source tag from v0.5.0 to v0.5.1 - Update license from MIT to Apache-2.0 (matches upstream change) Co-Authored-By: Warp --- recipes/mojo-toml/recipe.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipes/mojo-toml/recipe.yaml b/recipes/mojo-toml/recipe.yaml index 09301c8e..a63bf4dc 100644 --- a/recipes/mojo-toml/recipe.yaml +++ b/recipes/mojo-toml/recipe.yaml @@ -4,7 +4,7 @@ package: source: git: https://github.com/DataBooth/mojo-toml.git - tag: v0.5.0 + tag: v0.5.1 build: number: 0 @@ -29,7 +29,7 @@ test: about: homepage: https://github.com/DataBooth/mojo-toml - license: MIT + license: Apache-2.0 license_file: LICENSE summary: Native TOML 1.0 parser and writer for Mojo - Complete + Partial 1.1 🔥 description: | From 9b59cf54211977f9c6fc395e4ba578507b131ea2 Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Thu, 29 Jan 2026 13:43:10 +1100 Subject: [PATCH 6/8] Standardize mojo-toml to use mojo_version context with 0.25.7 - Add context with version and mojo_version variables - Change from 'mojo >=25.1' to 'mojo-compiler =0.25.7' - Use pin_compatible() for runtime dependency Co-Authored-By: Warp --- recipes/mojo-toml/recipe.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/recipes/mojo-toml/recipe.yaml b/recipes/mojo-toml/recipe.yaml index a63bf4dc..071965d8 100644 --- a/recipes/mojo-toml/recipe.yaml +++ b/recipes/mojo-toml/recipe.yaml @@ -1,6 +1,10 @@ +context: + version: 0.5.1 + mojo_version: "=0.25.7" + package: name: mojo-toml - version: 0.5.1 + version: ${{ version }} source: git: https://github.com/DataBooth/mojo-toml.git @@ -14,11 +18,11 @@ build: requirements: build: - - mojo >=25.1 + - mojo-compiler ${{ mojo_version }} host: - - mojo >=25.1 + - mojo-compiler ${{ mojo_version }} run: - - mojo >=25.1 + - ${{ pin_compatible('mojo-compiler') }} test: commands: From ad33c9d45f13373e77fe6f4fdd5c319119d2d044 Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Thu, 29 Jan 2026 19:17:45 +1100 Subject: [PATCH 7/8] Fix mojo-toml recipe schema errors - Change 'test:' to 'tests:' with script block - Change 'doc_url' to 'documentation' - Change 'dev_url' to 'repository' Fixes recipe parser errors per modular-community schema. Co-Authored-By: Warp --- recipes/mojo-toml/recipe.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/recipes/mojo-toml/recipe.yaml b/recipes/mojo-toml/recipe.yaml index 071965d8..667d1795 100644 --- a/recipes/mojo-toml/recipe.yaml +++ b/recipes/mojo-toml/recipe.yaml @@ -24,12 +24,12 @@ requirements: run: - ${{ pin_compatible('mojo-compiler') }} -test: - commands: - - test -f $PREFIX/lib/mojo/toml/__init__.mojo - - test -f $PREFIX/lib/mojo/toml/lexer.mojo - - test -f $PREFIX/lib/mojo/toml/parser.mojo - - test -f $PREFIX/lib/mojo/toml/writer.mojo +tests: + - script: + - test -f $PREFIX/lib/mojo/toml/__init__.mojo + - test -f $PREFIX/lib/mojo/toml/lexer.mojo + - test -f $PREFIX/lib/mojo/toml/parser.mojo + - test -f $PREFIX/lib/mojo/toml/writer.mojo about: homepage: https://github.com/DataBooth/mojo-toml @@ -57,8 +57,8 @@ about: Perfect for configuration files, build systems, and any Mojo application needing structured configuration. - doc_url: https://github.com/DataBooth/mojo-toml/blob/main/README.md - dev_url: https://github.com/DataBooth/mojo-toml + documentation: https://github.com/DataBooth/mojo-toml/blob/main/README.md + repository: https://github.com/DataBooth/mojo-toml extra: recipe-maintainers: From 39e4aac322548c00efa3b0f0a5a7284f0679e507 Mon Sep 17 00:00:00 2001 From: Michael Booth Date: Mon, 2 Feb 2026 11:43:45 +1100 Subject: [PATCH 8/8] Update mojo-toml recipe to Mojo 0.26.1 Co-Authored-By: Warp --- recipes/mojo-toml/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/mojo-toml/recipe.yaml b/recipes/mojo-toml/recipe.yaml index 667d1795..6739c0b1 100644 --- a/recipes/mojo-toml/recipe.yaml +++ b/recipes/mojo-toml/recipe.yaml @@ -1,6 +1,6 @@ context: version: 0.5.1 - mojo_version: "=0.25.7" + mojo_version: "=0.26.1" package: name: mojo-toml