[Bug]: pip.installed with upgrade=True upgrades a package but returns an empty changes dictionary

Abierto Apto para principiantes
#70,774 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

@ITJamie ya está trabajando en esto.

Desde el 11/11/2026.

  • #70775 de @ITJamie — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Empieza en salt/states/pip_state.py y lee la lógica posterior a la instalación que construye el diccionario changes a partir de la salida de pip. Comprueba cómo interactúan las líneas Requirement already satisfied: con una actualización del mismo paquete y, después, busca pruebas relacionadas en la suite de pruebas del estado de pip. El trabajo estará completo cuando se informe de un paquete actualizado en changes y se sigan excluyendo los paquetes que ya están satisfechos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

What happened?

Salt 3008.5's pip.installed state can upgrade a package successfully while returning an empty changes dictionary.

Reproduction

On an isolated Salt 3008.5 onedir installation on Debian 13:

salt-pip install --no-deps --index-url https://pypi.org/simple six==1.16.0

salt-call --local state.single pip.installed \
  name=six \
  upgrade=True \
  no_deps=True \
  index_url=https://pypi.org/simple

salt-pip show six
Expected behavior

The state reports that six was upgraded.

Actual behavior

salt-pip show six confirms version 1.17.0, but the state returns:

{
  "name": "six",
  "result": true,
  "comment": "All packages were successfully installed",
  "changes": {}
}

Reproduced with Salt 3008.5's official Linux arm64 onedir bundle on Debian 13.7, using bundled Python 3.14.7 and pip 26.2.2.

Suspected cause

The post-install logic in salt/states/pip_state.py excludes packages mentioned in pip's Requirement already satisfied: output from the change report. During an upgrade, pip can emit that message for the existing version before subsequently upgrading the same package.

Type of salt install

other (please specify in bug details)

Official salt-3008.5-onedir-linux-arm64.tar.xz release archive unpacked onto Debian 13.

Major version

3008.x

What supported OS are you seeing the problem on? Can select multiple.

debian-13

salt --versions-report output
Salt Version:
          Salt: 3008.5
 
Python Version:
        Python: 3.14.7 (main, Sep 30 2026, 03:32:40) [GCC 11.2.0]
 
Dependency Versions:
          cffi: 2.0.0
      cherrypy: 18.10.0
  cryptography: 50.0.1
      dateutil: 2.9.0.post0
     docker-py: Not Installed
         gitdb: 4.0.12
     gitpython: Not Installed
        Jinja2: 3.1.6
       libgit2: Not Installed
  looseversion: 1.3.0
      M2Crypto: Not Installed
          Mako: Not Installed
       msgpack: 1.2.1
  msgpack-pure: Not Installed
  mysql-python: Not Installed
     packaging: 24.0
     pycparser: 3.00
      pycrypto: Not Installed
  pycryptodome: 3.23.0
        pygit2: Not Installed
  python-gnupg: 0.5.6
        PyYAML: 6.0.3
         PyZMQ: 27.1.0
        relenv: 0.22.27
         smmap: 5.0.2
       timelib: 0.3.0
       Tornado: 6.5.10
           ZMQ: 4.3.5
 
Salt Package Information:
  Package Type: onedir
 
System Versions:
          dist: debian 13.7 trixie
        locale: utf-8
       machine: aarch64
       release: 7.0.12-linuxkit
        system: Linux
       version: Debian GNU/Linux 13.7 trixie
Lenguaje dominante
Python
Estrellas
15.8k
Forks
5.6k
Merge medio
5 d 9 h
PR fusionados (30 d)
99

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de saltstack/salt

Todos los issues de saltstack/salt

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.