Skip to content

Conversation

@Mjboothaus
Copy link
Contributor

@Mjboothaus Mjboothaus commented Jan 27, 2026

Adds mojo-ini v0.2.2 - INI parser and writer for Mojo with Python configparser compatibility.

Version update: v0.2.1 → v0.2.2 includes pre-commit whitespace fixes.

Resubmission after closing PR #194 following the modular-community standards guide.

Package features:

  • Native INI parsing and writing in Mojo with zero Python dependencies
  • Python configparser compatibility for easy migration
  • Classic INI syntax with sections [Section] and key=value pairs
  • Multiline values with indented continuation (like Python configparser)
  • Comment support (# and ; prefixes)
  • Case-sensitive keys and sections
  • Clean public API: parse(), to_ini(), parse_file(), write_file()
  • Built as .mojopkg for better import experience
  • 37 tests passing (100% core functionality)

Use case: Perfect for configuration files, application settings, CI/CD configs, and any Mojo application needing INI format support with Python compatibility.

Compliance checklist:

  • ✅ Package image (135KB PNG) for builds.modular.com
  • ✅ CodeQL scanning enabled
  • ✅ CodeQL badge in README
  • ✅ Apache-2.0 license
  • ✅ Git tag v0.2.2 exists
  • ✅ recipe.yaml with proper structure
  • ✅ test_package.mojo validates core functionality
  • ✅ Comprehensive README and documentation
  • ✅ Built as .mojopkg (not loose .mojo files)

Repository: https://github.com/DataBooth/mojo-ini
CodeQL: CodeQL

- Add package image for builds.modular.com display
- Update to v0.2.1 with CodeQL scanning enabled
- Update license to Apache-2.0
- Clean recipe without mojo-toml files
Version bump includes whitespace fixes from pre-commit.

Co-Authored-By: Warp <agent@warp.dev>
@Mjboothaus Mjboothaus changed the title Add mojo-ini v0.2.1 - INI parser & writer for Mojo Add mojo-ini v0.2.2 Jan 28, 2026
Mjboothaus and others added 2 commits January 29, 2026 13:45
Standardize to latest stable Mojo release.

Co-Authored-By: Warp <agent@warp.dev>
- Change 'test:' to 'tests:' with proper list structure
- Change 'commands' to 'script'
- Change 'doc_url' to 'documentation'
- Change 'dev_url' to 'repository'

Co-Authored-By: Warp <agent@warp.dev>
Co-Authored-By: Warp <agent@warp.dev>
@Mjboothaus Mjboothaus closed this Feb 2, 2026
@Mjboothaus
Copy link
Contributor Author

Mjboothaus commented Feb 2, 2026

Update:

  • aligned mojo-ini and MojoINI recipe with Mojo/Max 0.26.1.
  • In the mojo-ini repo, MAX is now pinned to '>=26.1.0,<27', the lexer uses codepoint_slices() with a cached List[String] buffer instead of direct String indexing, and the full test suite passes under Mojo 0.26.1.
  • The mojo-ini recipe.yaml there pins context.mojo_version = '=0.26.1'.
  • For this modular-community PR, the MojoINI recipe now depends on max =26.1 so it can be built/tested against the same toolchain series.
  • Python-side benchmarks (configparser) still run successfully; mojo-ini benchmarks can be re-enabled once a 0.26.1-compatible run_mojo_benchmark.py is added (current task only adjusts the toolchain).

@Mjboothaus Mjboothaus reopened this Feb 2, 2026
@Mjboothaus
Copy link
Contributor Author

Mjboothaus commented Feb 2, 2026

Closed in error?

@yetalit
Copy link
Collaborator

yetalit commented Feb 2, 2026

@Mjboothaus I see you're adding 2 recipe files under 2 different folders. I think this is not the format defined for community packages.

@Mjboothaus
Copy link
Contributor Author

Mjboothaus commented Feb 2, 2026

Sorry I must have done something silly in error - assume you mean MojoIni package??? Will fix

@yetalit
Copy link
Collaborator

yetalit commented Feb 2, 2026

Sorry I must have done something silly in error - assume you mean MojoIni package??? Will fix

Oh, there is already a published community package as MojoINI by another developer and I you have done some changes on that too; Probably, mistaking it as your own package.

@Mjboothaus
Copy link
Contributor Author

Sorry I must have done something silly in error - assume you mean MojoIni package??? Will fix

Oh, there is already a published community package as MojoINI by another developer and I you have done some changes on that too; Probably, mistaking it as your own package.

Yes I'd made a change in error to the recipe.yml file in MojoINI instead of mojo-ini - now deleted.

@yetalit
Copy link
Collaborator

yetalit commented Feb 3, 2026

Sorry I must have done something silly in error - assume you mean MojoIni package??? Will fix

Oh, there is already a published community package as MojoINI by another developer and I you have done some changes on that too; Probably, mistaking it as your own package.

Yes I'd made a change in error to the recipe.yml file in MojoINI instead of mojo-ini - now deleted.

Now you're removing the whole file. Instead, you should discard all the changes to the file. Removing its content is also considered a change.

@Mjboothaus
Copy link
Contributor Author

Sorry I must have done something silly in error - assume you mean MojoIni package??? Will fix

Oh, there is already a published community package as MojoINI by another developer and I you have done some changes on that too; Probably, mistaking it as your own package.

Yes I'd made a change in error to the recipe.yml file in MojoINI instead of mojo-ini - now deleted.

Now you're removing the whole file. Instead, you should discard all the changes to the file. Removing its content is also considered a change.

Hi @yetalit - apologies - my git/GH skills are limited - I was trying to find a restore file button, undo changes but they don't seem to exist - what is the least painful way to revert this file (it was only a version number change)

@yetalit
Copy link
Collaborator

yetalit commented Feb 3, 2026

Sorry I must have done something silly in error - assume you mean MojoIni package??? Will fix

Oh, there is already a published community package as MojoINI by another developer and I you have done some changes on that too; Probably, mistaking it as your own package.

Yes I'd made a change in error to the recipe.yml file in MojoINI instead of mojo-ini - now deleted.

Now you're removing the whole file. Instead, you should discard all the changes to the file. Removing its content is also considered a change.

Hi @yetalit - apologies - my git/GH skills are limited - I was trying to find a restore file button, undo changes but they don't seem to exist - what is the least painful way to revert this file (it was only a version number change)

Hi, you can simply download the file from the main repository (not your fork) and put it were it was in your own fork.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants