python / python/cpython

Improving `./configure --help` output

Aberta
#136,700 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

build triaged type-feature
Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

./configure --help should only show how to alter the default behaviour. Thus not articulating explicitly the default on --help, implies that not passing an option to ./configure will not imply that option. See also my article https://ab.bapha.be/posts/help-output/.

With Python 3.15.3 ./configure --help:

  --enable-universalsdk[=SDKDIR]
                          create a universal binary build. SDKDIR specifies
                          which macOS SDK should be used to perform the build,
                          see Mac/README.rst. (default is no)
  --enable-framework[=INSTALLDIR]
                          create a Python.framework rather than a traditional
                          Unix install. optional INSTALLDIR specifies the
                          installation path. see Mac/README.rst (default is
                          no)
  --enable-wasm-dynamic-linking
                          Enable dynamic linking support for WebAssembly
                          (default is no)
  --enable-wasm-pthreads  Enable pthread emulation for WebAssembly (default is
                          no)
  --enable-shared         enable building a shared Python library (default is
                          no)
  --enable-profiling      enable C-level code profiling with gprof (default is
                          no)
  --disable-gil           enable experimental support for running without the
                          GIL (default is no)
  --enable-pystats        enable internal statistics gathering (default is no)
  --enable-optimizations  enable expensive, stable optimizations (PGO, etc.)
                          (default is no)
  --enable-bolt           enable usage of the llvm-bolt post-link optimizer
                          (default is no)
  --enable-loadable-sqlite-extensions
                          support loadable extensions in the sqlite3 module,
                          see Doc/library/sqlite3.rst (default is no)
  --disable-test-modules  don't build nor install test modules
  --without-static-libpython
                          do not build libpythonMAJOR.MINOR.a and do not
                          install python.o (default is yes)

and more…

--disable-test-modules is used as I suggested. --disable-gil should be renamed to --enable-gil. All (default is no) and (default is yes) should be removed, when the option is binary (on/off/yes/no/with/without/enabled/disabled).

When a parameter has many possible values, sometimes --help emits =[ and sometimes [=. This is inconsistent:

  --enable-big-digits[=15|30]
                          use big digits (30 or 15 bits) for Python longs
                          (default is 30)]
  --with-pkg-config=[yes|no|check]
                          use pkg-config to detect build options (default is
                          check)

Guia de contribuição

Abrir o guia de contribuição

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.

Direção de pesquisa

Comece executando ./configure --help e compare os padrões binários documentados e a sintaxe dos parâmetros com os exemplos desta issue e do artigo vinculado. Localize as definições da ajuda de configuração que produzem essas entradas e, em seguida, verifique se as anotações de padrão são omitidas para opções binárias e se a sintaxe dos valores é consistente. A tarefa estará concluída quando a saída de ajuda gerada seguir a redação solicitada e continuar precisa.

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

Avaliação

Stack de tecnologia
python
Domínio
build-system
Tipo de issue
Funcionalidade
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

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