Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Plans for Package Tooling

Aperta
#1 69 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
20/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
python

Direzione di ricerca

Leggi l'intero thread dell'issue, quindi esamina il pyproject.toml indicato, la configurazione CI e le scelte relative al src-layout. Separa gli elementi della checklist già completati dalle proposte irrisolte e conferma un ambito concreto e i criteri di accettazione prima di iniziare; al momento questa issue non definisce che cosa significhi essere completata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

✅ 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.
Lingua principale
Python
Stelle
27
Fork
6
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di data-apis/array-api-typing

Tutte le issue di data-apis/array-api-typing

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.