Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

BL-32: Contributor environment preflight check (dincli system doctor / scripts/preflight.sh)

Ouverte
#245 2 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@Santiagocetran y travaille déjà.

Depuis le 29/10/2026.

  • #303 par @Santiagocetran — ouverte

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
55/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
github-actions, python, solidity

Piste de recherche

Read dincli/cli/system.py, the onboarding guide, ci.yml, and CLAUDE.md to understand the existing command structure and checks. Implement the read-only preflight command or fallback script, then run it on a clean environment and verify each listed check, plain text output, and exit codes. Done when the command is referenced in Documentation/public/guides/getting-started.md.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Approved enhancement

Summary

There is no single command that checks a developer's machine before they start work. Each of the following has already caused lost time:

  1. Python < 3.12 installed (repo requires >=3.12).
  2. forge / anvil not installed, or the wrong solc version (0.8.28 required).
  3. foundry/node_modules absent — without npm ci, forge test's parallel jobs race to fetch @openzeppelin/upgrades-core over npx into a shared cache, causing both test flakiness and unnecessary supply-chain exposure at test time (documented in CLAUDE.md).
  4. eth-account or py-multibase not importable in the active venv.
  5. torch not importable (needed by tests/ full run and the reference service files).
  6. .env / .env.<network> missing, the configured RPC endpoint unreachable, or resolve_ipfs_config() unable to resolve.

Proposal

A read-only preflight check — dincli system doctor (preferred, fits the existing subcommand structure in dincli/cli/system.py) or scripts/preflight.sh as a fallback — that runs one check per line:

[OK]      Python 3.12.6
[OK]      forge 0.3.2 / anvil 0.3.2
[OK]      solc 0.8.28 (via solc-select)
[OK]      foundry/node_modules present
[OK]      eth-account 6.3.0
[OK]      py-multibase 2.0.1
[MISSING] torch — run: pip install torch
[OK]      .env.sepolia_op_devnet found
[OK]      RPC https://... → chainId 11155420
[MISSING] IPFS_API_URL not set and no Filebase credentials — see Documentation/public/guides/ipfs.md

Exits non-zero on any MISSING or ERROR row. Never installs anything itself — reports and exits.

Usage

  • Primary: first command in the onboarding docs (Documentation/public/guides/getting-started.md).
  • Secondary: first step in ci.yml's unit-test job (can replace the current ad-hoc pip install + forge --version calls).
  • Optional local alias: make doctor.

Acceptance

  • All six check categories above pass on a clean machine.
  • Exits 0 when everything is OK, non-zero when any check fails.
  • Output is plain text, one line per check, usable in CI without color codes (--no-color flag or auto-detect).
  • Documentation/public/guides/getting-started.md references the command.

References

  • Developer/BACK_LOG.md BL-32
  • CLAUDE.md — npm ci warning (§ Solidity)
  • Preflight pattern reviewed in Osomudeya/devops-scripting-labs (2026-10-02)
Langage dominant
Python
Étoiles
4
Forks
7
Merge moyen
3 j 4 h
PR mergées (30 j)
34

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de InfiniteZeroFoundation/DevNet

Toutes les issues de InfiniteZeroFoundation/DevNet

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.