Repository navigation
Conversión de 2.0.8 a develop
En el Verano de 2019, se aborda el proyecto de migración de INSIDE desde la versión 2.0.7, con los objetivos:
- Migrar a la versión 2.0.8.3 de Inside (liberada en Agosto de 2018) por el CTT
- Migrar el almacenamiento desde Alfresco a CsvStorage
- Aplicar los parches desarrollados en la CARM sobre la 2.0.7 en la versión 2.0.8.3
Con el fin de registrar todos los cambios que se aplicarán sobre la versión 2.0.8.3 liberada, se creará una nueva rama develop a partir de la original_2.0.8. Las diferencias de partida, residirán en la preparación de los pom.xml de la nueva rama, para adecuarse al proceso de integración continua de la CARM, según se recoge en el protocolo de recepción de proyectos del estado.
La idea es a partir de la rama original_2.0.8, aplicar los cambios que necesita nuestro proceso de integración continua, y formateo del código.
- 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.8, y desde ella, crearemos una nueva rama llamadadevelop:
git checkout original-2.0.8
git checkout -b develop
-
Modificarán todos los
pom.xmlpara cambiar la versión, y pasar de2.0.8.3a2.0.8.3-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 corregir 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 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.8.3 a develop
Se retoca la versión original 2.0.8.3 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 develop