Prepare repo for initial release#5
Conversation
Match the Go geoipupdate project's licensing. Rename LICENSE to LICENSE-APACHE, add LICENSE-MIT, and update pyproject.toml and README.md accordingly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Configures mise to provide uv with strict lockfile enforcement (locked = true) and SHA-256 checksums for all platforms. Python deps remain managed by uv, not mise. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add CI workflows matching GeoIP2-python conventions: - test.yml: matrix across Python 3.11-3.14 and 4 OS targets - release.yml: build sdist/wheel, publish to PyPI on release - codeql-analysis.yml: CodeQL security scanning - zizmor.yml: GitHub Actions workflow security analysis - dependabot.yml: automated updates for uv deps and Actions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set version to 0.1.0, update HISTORY.rst to match, and use __version__ import in version tests to prevent breakage on future version bumps. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add missing Path import to from_file example, document the exception hierarchy for library users, and add Bug Reports and Versioning sections to match sibling MaxMind projects. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
Summary of ChangesHello @oschwald, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request prepares the repository for its initial release by establishing foundational elements for project management, licensing, and continuous integration. It standardizes tooling, clarifies versioning, and enhances documentation to ensure a robust and maintainable codebase from the outset. Highlights
Changelog
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request effectively prepares the repository for its initial release. The changes, including updating the version to 0.1.0, implementing a dual-license model, adding mise configuration, and improving documentation, are well-executed and enhance the project's structure and maintainability. The move to dynamically determine the version from package metadata is a particularly good improvement. I have one minor suggestion to correct a date in the changelog.
| ------- | ||
|
|
||
| 1.0.0 (2024-12-05) | ||
| 0.1.0 (2026-02-10) |
Bump ruff minimum to 0.15.0 which correctly handles except* clauses (no longer triggers BLE001), and add ASYNC240 to test per-file-ignores since pathlib.glob() in synchronous test assertions is harmless. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
os.getuid() does not exist on Windows, causing an AttributeError at collection time that prevents all tests from running. Use hasattr() short-circuit so the skipif condition evaluates safely on all platforms. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Skip test_write_sets_644_permissions on Windows where Unix permission bits are not supported (os.chmod sets read-only vs read-write only). Remove racy assertion in test_parallel_error_cancels_siblings that Edition3.mmdb must not exist after cancellation. On Windows the sibling task completes before cancellation propagates. The important behavior (AuthenticationError surfaces in the ExceptionGroup) is still verified. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Same release workflow as GeoIP2-python: validates tooling and branch state, parses version and notes from HISTORY.rst, runs the full tox matrix, then commits, pushes, and creates a GitHub release (which triggers the PyPI upload workflow). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
__version__in testsPathimport, error handling docs, bug reports, and versioning sectionsTest plan
uv run pytest tests/test_cli.py -x -q -k test_versionpassesuv run ruff check src/ tests/passes🤖 Generated with Claude Code