Skip to content

Conversation

@theveenrok
Copy link
Member

@theveenrok theveenrok commented Jan 14, 2026

Summary

Moved configuration for auxiliary tools out of pyproject.toml into dedicated files, replaced the dynamic project version with a static one, and removed the [build-system] section since the project is not published as an external dependency.

Type

  • Release
  • Feature
  • Fix
  • Security
  • Docs
  • Ops
  • Internal
  • Breaking change

Changes

  • Extracted configurations for uv, ty, pytest, coverage, and towncrier into separate config files.
  • Removed the corresponding sections from pyproject.toml.
  • Set the package version statically in code.
  • Deleted the [build-system] section from pyproject.toml.
  • Removed src/app/__meta__.py and the import of __version__ from src/app/__init__.py.
  • Removed the test version placeholder.

Verification

  • just check

Docs

  • Docs updated (if needed)

Tests

  • Tests added/updated (if needed)

Changelog

  • Added changelog fragment in changelog.d/

Summary by CodeRabbit

  • Chores
    • Centralized project configuration: added testing, coverage, changelog, and source tooling configs and consolidated version metadata into the main project config.
    • Removed legacy build and tool-specific config stanzas to simplify project manifests.
  • Documentation
    • Added changelog tooling configuration to produce a structured changelog output.
  • Other
    • Removed the package's public version attribute and its corresponding version test.

✏️ Tip: You can customize this high-level summary in your review settings.

@theveenrok theveenrok self-assigned this Jan 14, 2026
@theveenrok theveenrok added the chore Non-functional refactoring such as CI/CD configuration, dependency upgrades label Jan 14, 2026
@theveenrok theveenrok added this to the Bootstrap milestone Jan 14, 2026
@theveenrok theveenrok force-pushed the chore/extract-config branch from fc5a1a0 to d797c6d Compare January 14, 2026 16:42
@theveenrok theveenrok force-pushed the chore/extract-config branch from be279b7 to c114f63 Compare January 14, 2026 20:56
@theveenrok theveenrok marked this pull request as ready for review January 14, 2026 22:13
@theveenrok theveenrok changed the title chore: extract config chore: extract tool configs and switch to static version Jan 14, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 14, 2026

📝 Walkthrough

Walkthrough

Extracts tool-specific settings from pyproject.toml into dedicated config files (.coveragerc, pytest.toml, towncrier.toml, ty.toml), adds a static project version in pyproject.toml, and removes the package-level __version__ constant and its test.

Changes

Cohort / File(s) Summary
Configuration Extraction
pyproject.toml
Removed tool-specific blocks (build-system, hatch, pytest, coverage, towncrier, ty), added version = "0.1.0" under [project].
New Tool Configuration Files
.coveragerc, pytest.toml, towncrier.toml, ty.toml
Added dedicated configs: .coveragerc (branch coverage, source src/app, exclude pragma), pytest.toml (pytest settings and addopts), towncrier.toml (changelog types and output), and ty.toml (src/tests include).
Version Management Removal
src/app/__init__.py, src/app/__meta__.py, tests/test_version.py
Removed __version__ declaration from __meta__.py, removed its import/export in __init__.py, and deleted the version-format test in tests/test_version.py.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰
I've hopped through files and lined each shelf,
Moved configs home — now tidy as myself.
Version tucked in pyproject's nest,
Tests trimmed clean, the repo rests.
A little hop, a joyful tweak — hooray! 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: extracting tool configurations into dedicated files and switching from dynamic to static versioning.
Description check ✅ Passed The description follows the template, includes all required sections with substantive content, and clearly documents the configuration extraction, version management changes, and verification steps completed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.



📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fad2c56 and c749efd.

📒 Files selected for processing (1)
  • .coveragerc
🚧 Files skipped from review as they are similar to previous changes (1)
  • .coveragerc

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@theveenrok
Copy link
Member Author

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Jan 14, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link

coderabbitai bot commented Jan 14, 2026

Caution

Docstrings generation - FAILED

No docstrings were generated.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.coveragerc:
- Around line 4-10: The INI-style .coveragerc is using quoted values which will
be taken literally; update the [paths] source entry and the [report]
exclude_lines value by removing the surrounding double quotes so source =
src/app and exclude_lines includes pragma: not covered (i.e., replace the quoted
"src/app" and the quoted "pragma: not covered" with unquoted values) so the
paths and regex matching behave correctly.
🧹 Nitpick comments (1)
pytest.toml (1)

14-21: Clarify warning handling intent: --disable-warnings vs filterwarnings = ["error"].

There's a potential conflict in warning handling:

  • Line 14: --disable-warnings suppresses warning output in the console
  • Lines 20-22: filterwarnings = ["error"] converts warnings into errors

While these can technically coexist (warnings become errors but their output is suppressed), the combination seems contradictory. If warnings should fail tests, consider removing --disable-warnings to see what triggered the failure. If warnings should be ignored, consider removing filterwarnings = ["error"].

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a57c028 and 6c5d1eb.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • .coveragerc
  • pyproject.toml
  • pytest.toml
  • src/app/__init__.py
  • src/app/__meta__.py
  • tests/test_version.py
  • towncrier.toml
  • ty.toml
💤 Files with no reviewable changes (3)
  • src/app/init.py
  • tests/test_version.py
  • src/app/meta.py
🔇 Additional comments (4)
ty.toml (1)

1-5: LGTM!

The ty configuration is correctly extracted with the source directories properly specified.

pyproject.toml (1)

1-15: Verify that removing [build-system] is intentional.

The [build-system] section has been removed, which means standard Python packaging tools (pip install ., python -m build) won't work. This is fine if the project is a pure application deployed via other means (e.g., Docker, uv run), but could be a problem if the package needs to be installed or distributed.

towncrier.toml (2)

7-40: LGTM!

The change type definitions are comprehensive and well-organized, covering the standard categories for changelog entries.


1-5: No action needed. The [tool.towncrier] table format is correct for standalone towncrier.toml files according to official towncrier documentation. This format is used in both standalone towncrier.toml and pyproject.toml configurations.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@github-project-automation github-project-automation bot moved this to Todo in Roadmap Jan 15, 2026
@ShavrinAleksei ShavrinAleksei moved this from Todo to Review in Roadmap Jan 15, 2026
@LandSight LandSight deleted a comment from vlad0000 Jan 15, 2026
@LandSight LandSight deleted a comment from coderabbitai bot Jan 15, 2026
@theveenrok theveenrok merged commit 60330f7 into develop Jan 15, 2026
4 checks passed
@github-project-automation github-project-automation bot moved this from Review to Done in Roadmap Jan 15, 2026
@theveenrok theveenrok deleted the chore/extract-config branch January 15, 2026 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Non-functional refactoring such as CI/CD configuration, dependency upgrades

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants