Build system CLI: behavior that disagrees with the help text

Aberta
#9,242 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@cknitt já está trabalhando nisso.

Desde 6/11/2026.

  • #9248 de @cknitt — aberto

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
43/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
ocaml
Domínio
cli

Direção de pesquisa

Start with the listed entry points in rewatch-ocaml/: build.ml, build_report.ml, rescript_ocaml.ml, after_build.ml, project_context.ml, cli.ml, and compiler_args_command.ml. Reproduce each behavior with ReScript 13.0.0-alpha.8 and trace its command handling and diagnostics. Done means the reported mismatches are corrected consistently; the issue does not name tests to run.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

CLI behavior that disagrees with the help text or with common conventions. All reproduce with rescript 13.0.0-alpha.8 (found while reviewing #9238); paths are in rewatch-ocaml/.

  • --no-timing prints zero timings instead of none. In a terminal, rescript build -n prints Parsed 1 source files in 0.00s … Finished compilation in 0.00s. The times are zeroed (build.ml:305, build_report.ml:79, :108) instead of left out.
  • watch exits 0 when interrupted. rescript watch, then SIGINT or SIGTERM: prints Exiting..., exit 0. rescript watch --help says 129-143 when interrupted by a signal. rescript_ocaml.ml:84 maps Watcher.Stop to 0.
  • --after-build does not use a shell. rescript build --after-build 'echo hi; exit 3' prints hi; exit 3 and exits 0; quotes are passed literally ('echo "a b" c' prints "a b" c). after_build.ml:5 splits on whitespace. Either run the command through the shell or document that it is split on whitespace.
  • A missing dependency is a usage error and blocks clean. With "dependencies": ["missing-dep"] and nothing installed, both rescript build and rescript clean print Could not build package tree reading dependency 'missing-dep' at path '<project root>'. Error: Could not resolve dependency missing-dep and exit 2, the code for command-line usage errors. clean deletes nothing. The "at path" is the requesting project, not the dependency. (project_context.ml:169-173, rescript_ocaml.ml:73-76)
  • An unknown subcommand is reported as a lockfile problem. rescript bogus prints Could not start Rescript build: Could not write lockfile because the specified project folder does not exist: bogus, exit 1. A bare word is taken as the build folder (normalize_argv in cli.ml); the message should say that neither a command nor a folder of that name exists.
  • Invalid --features and --warn-error values are accepted silently. rescript build --features nope and rescript build --warn-error zzz exit 0 without a diagnostic; zzz is ignored (cli.ml:63-80 and the --warn-error option).
  • Some usage errors lack the Usage: line. rescript -v -q (rescript: --verbose cannot be used together with --quiet) and rescript format -c -s .res (rescript: --stdin conflicts with --check) exit 2 without it, unlike rescript build --unknown-option; they use Term.term_result without ~usage:true (cli.ml:42-47, :192-196). rescript compiler-args rescript.json prints compiler-args expects a .res or .resi source file without the rescript: prefix and exits 1 (compiler_args_command.ml:50).
  • -h and -V are undocumented. Both work, but rescript --help lists only --help[=FMT] and --version: cli.ml:286-336 rewrites them before Cmdliner sees them.
Linguagem predominante
OCaml
Estrelas
7.5k
Forks
485
Merge médio
16h 51min
PRs com merge (30d)
268

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rescript-lang/rescript

Todas as issues de rescript-lang/rescript

Issues semelhantes

Mais issues de CLI

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.