Skip to content

Plan v1 modernization for Python package template #66

Description

@HamidMolareza

This issue captures the suggested direction for turning this repository into a useful, modern Python package template.

Related: #56

Goal

Revive the project as an opinionated template for Python projects that may later be published as Python packages. The value should be in developer experience: fast project bootstrap, clear packaging defaults, CI, release flow, and enough validation to trust the generated scaffold.

Why this is worth doing

This project is still useful if it becomes a practical personal/reusable template rather than a generic placeholder repository. It can help with:

  • Learning and practicing modern Python packaging, CI, release, and template design.
  • Showing capability around developer tooling and project hygiene in a portfolio.
  • Reusing the template for future Python package projects.
  • Helping other developers if the template has a clear, opinionated scope.

It is probably not worth treating as a project with direct revenue potential or broad adoption unless it develops a distinct angle.

Suggested scope for v1

  • Make the repository itself a real template project, not only a release payload.
  • Move or regenerate the current release/* scaffold into a clearer root/template structure.
  • Keep the base template minimal and remove app-specific dependencies from the default scaffold.
  • Support a simple package/library and optional CLI entry point.
  • Use modern pyproject.toml packaging defaults.
  • Add a short README that explains exactly what the template is for and what it is not for.
  • Add generated-project validation so the template can prove it still works.

Technical cleanup

  • Review whether to use plain GitHub template repository, Copier, Cookiecutter, or a small script-based generator.
  • Update Python version support and packaging metadata.
  • Remove or make optional dependencies such as on_rails, Inject, SQLAlchemy, fake-useragent, and proxy-related packages.
  • Fix Pydantic compatibility if any Pydantic-based config remains; current unannotated BaseModel fields are not compatible with Pydantic v2.
  • Replace placeholder project metadata with template variables or clear examples.
  • Fix obvious sample issues such as the say_hellp typo.
  • Update GitHub Actions versions.
  • Use docker compose syntax if Docker support remains.

Validation checklist

The template does not need full product-level tests, but it should validate the generated scaffold:

  • Generated package installs successfully in a clean environment.
  • python -m pytest passes on a small sample test.
  • Package can be built into wheel/sdist.
  • CLI entry point works if CLI support is enabled.
  • Lint/type-check commands are documented and run in CI if included.
  • TestPyPI/PyPI publishing instructions are documented without committing secrets.

Suggested non-goals

  • Do not include a database, proxy/Tor, HTTP client, dependency injection, or custom result library in the default template.
  • Do not try to support every Python project shape.
  • Do not optimize for monetization; optimize for reuse, portfolio value, and maintainability.

Proposed decision

Do a limited v1 rebuild instead of archiving immediately. If the template is not reused in future projects after that rebuild, freeze/archive it as historical reference.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions