Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Plans for Package Tooling

未关闭
#1 69 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
20/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
停滞
技术栈
python

调研方向

阅读完整的 issue 讨论串,然后检查其中引用的 pyproject.toml、CI 配置以及 src-layout 相关的决策。将已完成的检查清单项与尚未解决的提案区分开,并在开始之前确认具体范围和验收标准;目前这个 issue 没有定义什么才算完成。

由索引模型根据 Issue 内容生成。

描述

✅ tests 🎉 project 👷 CI 💄 UI 🔖 tags 🔧 config 🧑‍💻 dev

Agreed-Upon Package Plans:
(Read full Issue thread to see discussion)

Configuration/CI/CD:

  • package management:
    • pyproject.toml (no setup.py or setup.cfg)
    • uv, including in CI
  • build-system
    • hatch
    • hatch-vcs
  • src-layout
    • When reaching API stability then try walled-garden API separation.
  • tests / task running
    • pytest for tests
    • sybil for doctests.
    • start with tox (+ tox-uv)
    • Static checking with mypy, pyright, basedmypy, & basedpyright to check from most-used to most-correct static typing. We aim for correctness (following the official typing spec), but want to ensure a good experience with the most-used checkers.
  • linting / formatting / non-test checks
    • left-hook
    • sp-repo-review
    • ruff (configured in pyproject.toml), not black / isort / pylint / etc.
    • a markdown linter
    • typos
  • commit messages:
  • versioning: (see discussion link)
    • Date versioning (matching array-api) + minor & bugfix: YYYY-MM-minor.bug
    • main + branch-per-version format: e.g. main, 2023-11.2.1
    • Use meeseeksmachine for backporting from main branch to older version branch.
  • GH labels:
    • using gitmoji
    • automated

(Original Comment)

Here's a list of my suggestions for this package. @jorenham LMK what you agree with.

Configuration/CI/CD:

  • pyproject.toml, no setup.py or setup.cfg
  • use ruff (configured in pyproject.toml), not black / isort / pylint / etc.
  • use uv, including in CI
  • build-system is hatch and hatch-vcs
  • use pre-commit
  • check with mypy and pyright, the most common type checkers. EDIT: adding basedmypy & basedpyright

Docs:

  • same look and feel as the main docs.
  • markdown

Package layout:

  • src-layout
  • use walled-garden separation between public and private API for easy adherence to PEP8 and dev QoL. EDIT: do at later date.
src/
    array_api_typing/
        __init__.py  # defines the public API
        _src/  # private API walled garden. Everything here is private and easily worked on by devs w/out public API consequences.
            base.py  # named whatever we want. no pre-fix underscores.
            core.py  # named whatever we want. no pre-fix underscores.

Package Contents:

  • Array. Let's start (pre-release) by not making it parametric, then see what we can do well, e.g. lessons from optype.
    • I would actually like to have 2 classes a "minimal" and "full", where the minimal is only
@runtime_checkable
class BaseArray(Protocol):  # name TBD
    def __array_namespace__(self, ...) -> Namespace: ...

and the full version contains all the attributes and methods.

  • Namespace
  • DType, Device, etc.
主要语言
Python
星标
27
派生
6
PR 合并指标
30 天内没有已合并 PR

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

data-apis/array-api-typing 的其他 Issue

查看 data-apis/array-api-typing 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。