Repository navigation
Conversión de 2.0.7
Para la migración de INSIDE a 2.0.8, se hace necesario disponer de una rama basada en original-2.0.7, sobre la que se tendrán aplicados todos los parches que inicialmente aplicamos en la CARM sobre rama master. Así, se podrán aislar los cambios que realizamos en la CARM sobre la versión original, para evaluar si deben aplicarse o no en la nueva versión.
Este documento describe este proceso: Identificar cada uno de los 77 commits realizados sobre la rama master para llevarlos a una nueva rama, y así poder sustituir el master por esta nueva rama que llamaremos carm-2.0.7. El objetivo último, es poder desplegar en los entornos de explotación de la CARM indiferentemente el WAR generado desde el master o desde la rama carm-2.0.7, sin alterar ninguna funcionalidad, y en ese momento extinguir el master.
A partir de la rama original-2.0.7, aplicar los cambios que necesita nuestro proceso de integración continua, y formateo del código, en la CARM.
- Realizar el clone inicial, desde nuestro fork:
cd checkout
git clone https://github.com/carm-es/inside.git
cd inside
git status
- Por defecto estaremos situados en la rama
master, con lo que nos cambiaremos a laoriginal-2.0.7, y desde ella, crearemos una nueva rama llamadacarm-2.0.7:
git checkout original-2.0.7
git checkout -b carm-2.0.7
-
Modificarán todos los
pom.xmlpara cambiar la versión, y pasar de2.0.7a2.0.7-CARM.1-SNAPSHOT. -
Modificar el
pom.xmlde la raíz del proyecto, para añadir la configuración descmy plugins para el parseo de fuentes, inspirándonos en elpom.xmlde csvstorage. -
Ampliar el
pom.xmlde la raíz del proyecto para evitar problema en Eclipse, tras añadir el plugin para el pre-commit hook de git al mismo, que provoca el error en el IDE: Plugin execution not covered by lifecycle configuration: io.github.phillipuniverse:githook-maven-plugin:1.0.4:install (execution: default, phase: initialize). Se soluciona añadiendo:... <build> ... <pluginManagement> <plugins> <!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>io.github.phillipuniverse</groupId> <artifactId>githook-maven-plugin</artifactId> <versionRange>[1.0.4,)</versionRange> <goals> <goal>install</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> ... </build> ... -
Corrección de ficheros XML que vienen mal declarados (en el código original se ha insertado el texto de la licencia por encima del prólogo). Para correghir esto, nos situamos en el directorio fuentes para ejecutar los siguientes comandos que trasladen la declaración XML al principio de cada fichero afectado:
grep -RPzli '(?s)^<!-- Copyright.*<\?xml version="1.0" encoding="UTF-8" standalone="yes"' | grep -v '/target/' | xargs -I '{}' sed -i 's/<?xml version="1.0" encoding="[Uu][Tt][Ff]-8" standalone="yes"?>\r//g; 1i\<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' ./{}' grep -RPzli '(?s)^<!-- Copyright.*<\?xml version="1.0" encoding="UTF-8"\?' | grep -v '/target/' | xargs -I '{}' sed -i 's/<?xml version="1.0" encoding="[Uu][Tt][Ff]-8"?>\r//g; 1i\<?xml version="1.0" encoding="UTF-8"?>' ./{} grep -RPzli '(?s)^<!-- Copyright.*<\?xml version="1.0"\?' | grep -v '/target/' | xargs -I '{}' sed -i 's/<?xml version="1.0"?>\r//g; 1i\<?xml version="1.0"?>' ./{} -
Descargar la hoja de estilo de código de Google:
mkdir .mvn
cd .mvn
wget https://raw.githubusercontent.com/carm-es/csvstorage/master/.mvn/eclipse-java-google-style.xml
cd -
git add .mvn -f
- Descargar el fichero de licencia que ya teníamos en el
master(que nos etiqueta de forma bonita GitHub)
rm LICENSE
wget https://raw.githubusercontent.com/carm-es/inside/master/LICENSE
- Descargar el fichero README.md del
master
rm README.md
wget https://raw.githubusercontent.com/carm-es/inside/master/README.md
- Comprobar la calidad del código con sonarqube:
mvn clean install
mvn org.jacoco:jacoco-maven-plugin:prepare-agent \
-Darguments="-Dmaven.javadoc.skip=true" \
-Djava.awt.headless=true \
--batch-mode verify \
-Dformat=ALL org.owasp:dependency-check-maven:4.0.2:aggregate \
-DfailOnError=false org.sonarsource.scanner.maven:sonar-maven-plugin:3.6.0.1398:sonar \
-Dsonar.dependencyCheck.reportPath=target/dependency-check-report.xml \
-Dsonar.dependencyCheck.htmlReportPath=target/dependency-check-report.html \
-Dsonar.host.url=https://sonarqube-pru.carm.es \
-Dsonar.gitlab.query_max_retry=50 \
-Dsonar.gitlab.query_wait=10000 \
-Dsonar.dynamicAnalysis=reuseReports \
-Dsonar.jacoco.reportPaths=target/jacoco.exec

- Publicar la rama:
# Añadir todos los ficheros que hemos cambiado,
git add fuentes README.md pom.xml LICENSE
# Commitear los cambios
git commit -m "Conversión de 2.0.7 a carm-2.0.7
Se retoca la versión original 2.0.7 para poder iterar con los procesos de integración contínua de la CARM"
# Publicar la rama en el Fork remoto
git push --set-upstream origin carm-2.0.7
Repasando la lista de commits aplicados sobre la versión 2.0.7 que realmente alteran el código original, identificamos los siguientes:
-
7516f8c35ed1ab99263c58f9d3425d41ff77b3b6: En el que hay una entrega inicial del
pom.xmlque se debería revisar por si altera las dependencias. -
58dd10ac0510338448106407707ca5a811884720: 2.0.7.1-SNAPSHOT que modifica algunos ficheros Java
-
f91fee9bf0dd41a61355d55c3668a2400b1f466f: Aplica cambios para generar .class Java8
-
0f503158e133da631527d229cf07043b5a457c58: Elimina los ficheros
.jardel repositorio... -
4b30f23933d1b936346d264e3861579ffe828d36: Bugfix "Alta/edición expedientes si servicio visualiz. inactivo"
-
b6e4abee3f4384d143893b57c6712ecfcd4b42da: Falsear fallo autenticación cl@ve con NIF estático
-
38bffaa0ddbc3c731269890a9007cda896b8a1b4: Cambios en el... mejor lo dejamos en el lugar original, así evtiamos tener que diferenciar las tareas de despliegue y minimizamos los cambios sobre el original: El WAR que se genera (ya de sea de las ramas nuestras o de las originales) se dejan en el mismo sitio en Nexus.pom.xml -
482332e022ef60c701bf1dc3392e5b9dfd06e769: Activación/desactivación de servicio de validación ENI
-
04ab7886e6c92c32f99893560a2e0395d254b7e9: altaDocumentoEni (autogenerar) + altaExpedienteEni (autogen y vacío)
-
8dec123cd733c806101a664dae8429a765dcc10f: Legibilidad mensajes en redirects SpringMVC
-
07586fbc64b5e5403e17c8c5873c937283ea2e2b: Activación/desactivación servicio envío token mediante correo
-
6022f7d4295440cda875f8506713da793547e73e: Parametrizar conector CMIS para localizar "User Homes"
-
b27887d7b42e497a44e9946668c6116bb3d865f5: Activación/desactivación detección adicional en ASCII tipo mime x
-
7a4fef56bd1bd84f1753f04c1df8406888d8eb19: Parametriza conector CMIS balanceo estruct carpetas gestor documental
-
d7d682f01e0193acb430c2793ad41e53ed4f50a3: Ajustes conector CMIS: trasladar "Valor CSV" y concurrencia carpetas
-
8fdb35950726fe005477e1c9185e2e7b62284e71: Desactivación temporal jobs quartz.
-
97537d5722d8d3e91c0735ebaad6b8e86556e39e: Bugfix #16
-
b6f58d9e51450a1bce6cb68644672b3dbe1a98f2: Mejoras realizadas: closes #14 y closes #15
-
f8337e3fd5975dabda512655aae67346eb3c9c37: Fix #15: valor por defecto trigger cron DIR3 (año 2099)
-
cf5b854ef98f0691991cc27fcfcd59e099715481: Closes #17
-
c5a7a141acd0eb666e80fc5cdb853c2b3340671a: Añadida dependencia log4j-extras para compresión con rotado
-
beda87bd17dd7ca94cc3e7034a1579b34758a57b: CXF Logging: ajustes para que no trunque mensajes largos
Los siguientes commits, simplemente añaden el directorio resources_2-0-7-x y lo actualizan: La idea, sería fusionarlos en un único commit:
- 5a5f20ab93fb6591231f82c50f127e7e30cbf48f: Añadida carpeta recursos
- de01c3129334c49073e48aa516f3b05c93777348: Ajustes carpeta recursos
- 2ffb05724a254444a27d0f1f9a5ce6d90f9cb7cd: Ajustes carpeta recursos
- 81be367e4d8ffdcb0fb5e3ef05a73fed73c6dc59: Ajustes carpeta recursos
- 49ca032a41a9e9de59b5559f5f427dde982ccf97: Normalizar finales línea en ficheros recursos
- f630e84a25a1900ee15387de9ab9d0c1fde1f93f: Añadido recurso enhanced_2-0-7-x con finales línea normalizados
Una vez identificados todos los parches que se realizaron sobre el código fuente original, y descartados aquellos que sólo tienen que ver con los procesos de integración contínua de la CARM, se procederá a ir aplicando uno a uno todos estos parches sobre la rama carm-2.0.7, y vincularlos en el mensaje del commit.
Para añadirlos usaremos el siguiente formato de mensajes...
git commit -m "Re-aplico el parche 58dd10a
Aplicamos el parche https://github.com/carm-es/inside/commit/58dd10ac0510338448106407707ca5a811884720 sobre los fuentes originales"