Como con cualquier cosa, depende. ¿Ha considerado utilizar un repositorio de paquetes de CI separado donde cada compromiso con el módulo central produce un paquete de CI?
El mayor desafío es el versiono de paquetes
, ya que NuGet no es compatible con SemVer en toda su extensión (por ejemplo, versiones preliminares + número de compilación)
.
EDITAR: nuget.org ahora es compatible con las versiones del paquete SemVer 2.0. Ver esta especificación: https://github.com/NuGet/Home/wiki/SemVer2-support-for-nuget.org-%28server-side%29
Use SemVer correctamente. Por lo general, no se conoce el número de versión publicado por adelantado, por lo que su versión del paquete CI continúa desde la última versión estable. Los paquetes de CI como tales se deben considerar pre-lanzamientos.
Por ejemplo: 2.2.0-CI201209140650
(que es una versión de CI tomada el 2012-09-14 a las 06:50 para una próxima versión 2.2.0) < - nota: esta versión de lanzamiento todavía puede cambiar, pero siempre va a haber una ruta de actualización.
Si adopta SemVer v2.0.0, incluso puede adoptar el siguiente ejemplo: 2.2.0-CI.2012.09.14.06.50
.
Nota importante: nuget.org (y por extensión cualquier otro servidor NuGet/servicio por ahí como MyGet o VSTS) no es compatible con múltiples versiones de los paquetes difieren sólo por la acumulación de metadatos!
Esto me ha funcionado al usar estas restricciones (y algunas configuraciones de compilación apropiadas de TeamCity). Así que en resumen, estos son los problemas:
- adecuada de versiones
- recordatorio para seleccionar adecuada origen del paquete (mantienen sus Pqtes CI separadas de pre-prensa y comunicados, aunque técnicamente su paquete de CI es versionado como prelanzamiento)
- actualizar de un paquete de CI a un prelanzamiento puede ser un problema si la etiqueta de prelanzamiento está ordenada por cadenas más alta que "CI" (por ejemplo, "Alpha"). En este caso: uninstall-package "CI" seguido del paquete de instalación "Alpha".
Espero que ayude!
SourceTree detectará automáticamente que los submódulos contienen ediciones no confirmadas y le pedirá que las confirme en cualquier momento que confirme el proyecto principal. –
Me pregunto con qué terminas?Pensamos en pasar de Nuget a los submódulos de git. No me gusta que nuestros paquetes Nuget no contengan archivos pdb (para disminuir el tamaño). La eliminación de facturas es complicada. Cómo sería bueno tener todos los proyectos en una solución en la que pueda intervenir cuando depure. Otro problema potencial es el tamaño de almacenamiento. Usamos sonatype nexus y necesitamos tener una política de retención casi indefinida para los paquetes, ya que algunos paquetes pueden ser necesarios si tienen 10 años. Debido a estas dependencias cruzadas del paquete, los archivos/paquetes nuget tendrán dlls repetidos. Temeroso de que requeriría mucho espacio – user1325696