Cargo-edit: Algo de cargo.toml se revuelve al ejecutar la actualización de carga

Creado en 19 jul. 2018  ·  5Comentarios  ·  Fuente: killercup/cargo-edit

Corrí cargo upgrade parking_lot --all

Comentario más útil

Creo que esto se resuelve en el n. ° 312. No dude en volver a abrir si no es el caso.

Todos 5 comentarios

Hola @Eijebong , sí, es una limitación conocida de la biblioteca toml subyacente tom .

Claro, hablé con @killercup, quien me dijo que abriera esto para verificar que el interruptor arreglara estos casos.

Estaba hablando con el mantenedor de combine (que es usado por cargo_edit ) en gitter, y creo que si almacenamos una lista de posiciones de inicio + final para cada tabla en el árbol, entonces podríamos serializar tablas / fragmentos de tabla sin modificar en su forma + posición original. Esto podría potencialmente hacerse sin reemplazar cargo-edit.

Aún tendría esta clase de error si intenta editar una tabla fragmentada, pero debería ser posible emitir una advertencia (o fallar completamente y requerir un indicador --regroup) en ese caso, porque necesita editar programáticamente tales tablas serían muy raras.

¿Suena esto como una idea sensata?

Mientras estaba ocupado postergando el comienzo del plan anterior, cloné rust-lang / rust-repos y fui a buscar ejemplos de Cargo.toml en github. Encontré 80164 archivos Cargo.toml en las raíces de los repositorios de git. Limpié manualmente los finales de línea de DOS y las nuevas líneas que faltan.

Luego usé cargo add para agregar una dependencia.

De las 80164 muestras que encontré:

  • 2310 eran manifiestos virtuales
  • 54 eran sintaxis inválida
  • 69455 (87%) acaba de agregar una sola línea (como se esperaba)
  • 6889 (9%) también agregó una sección [dependencias] (aún está bien)
  • 1457 (2%) también hizo algo más (principalmente moviendo secciones del archivo, pero ~ 10 también hizo cambios en los espacios en blanco, como eliminar espacios de los encabezados de las secciones)

He descargado una lista de enlaces a los archivos 1457 en https://raw.githubusercontent.com/alsuren/rust-repos/cargo.toml-samples/largest-diffs-last.urls . Los archivos con la diferencia más pequeña están en la parte superior y las diferencias más grandes están en la parte inferior. El caso de uso que regularmente produce diferencias grandes es tener una sección [package.metadata.deb] o [package.metadata.release] o [package.metadata.bootimage] en la parte inferior del archivo.

Tengo un día libre el miércoles, así que podría intentar abordar esto entonces. Alternativamente, podría abordar el # 217 primero, porque probablemente sea más fácil, aunque solo encontré 191 archivos donde hay más instancias de = *' que = *" .

Creo que esto se resuelve en el n. ° 312. No dude en volver a abrir si no es el caso.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

jcgruenhage picture jcgruenhage  ·  7Comentarios

ordian picture ordian  ·  29Comentarios

DCjanus picture DCjanus  ·  15Comentarios

killercup picture killercup  ·  19Comentarios

tarcieri picture tarcieri  ·  5Comentarios