Gradle plugin in master to depend on the Linkage Checker master
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- java
- Domínio
- build-system, release
Direção de pesquisa
Comece lendo scripts/prepare_release.sh, build.gradle e os arquivos RELEASING.md vinculados para entender o fluxo atual de versionamento e release. Compare como o plugin Gradle consome o módulo dependencies e defina o comportamento de release descrito na proposta. Considera-se concluído quando master puder usar o LinkageChecker master, enquanto os releases fixarem ambos os componentes na mesma versão e não precisarem mais do sufixo de tag específico do Gradle.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
As of now, a change to the LinkageChecker class is not immediately used in the Gradle plugin, because the Gradle plugin uses a fixed version of the "com.google.cloud.tools:dependencies" artifact. This disconnection causes pain in:
- the increased release procedure for the Gradle plugin
- the late validation of a LinkageChecker's change against the Gradle plugin
Current Release Procedure
Everytime we change LinkageChecker in the dependencies module, we need to do the following
- release the dependencies module as part of https://github.com/GoogleCloudPlatform/cloud-opensource-java/blob/master/RELEASING.md
- wait until the latest version of the dependencies module appear in Maven Central
- update Gradle plugin to use the latest version (example pull request)
- This may involve code change in the Gradle plugin. This change could happen before the dependencies module if the Gradle plugin in master branch relies on the LinkageChecker in master.
- If this upgrade reveals a LinkageChecker's bug for Gradle plugin, we have to go back to the change that caused the bug.
- release the Gradle plugin https://github.com/GoogleCloudPlatform/cloud-opensource-java/blob/master/gradle-plugin/RELEASING.md (example pull request)
This usesvX.Y.Z-gradlerelease tag. This version is independent from the Maven enforcer rule's version.
Proposal
The Enforcer Rule in Maven and the Gradle plugin in Gradle
This is an enhancement of current setup of mixing Gradle and Maven and this proposes to enhance the release script "scripts/prepare_release.sh" so that:
- the Gradle plugin in master branch relies on the LinkageChecker in master. (version
latest.integration) - When the release script creates a release tag, it sets the dependencies module version in
build.gradleto the releasing version. Suppose we usev1.6.0-dependencies. - We release the Linkage Checker enforcer rule and the Gradle plugin using the tag
v1.6.0-dependencies. No need to wait for Maven Central. As the result, the enforcer rule and the Gradle plugin will have the same version for one release.
(We no longer use thevX.Y.Z-gradlerelease tag suffix.)
The Gradle plugin to have java.sourceSet to include ../dependencies/src/main/java
This would have duplicate
Other options considered
Everything in Maven
https://stackoverflow.com/questions/27555560/how-can-i-build-a-gradle-plugin-with-maven . Spring Boot's Gradle plugin was developed in Maven. But now they develop it in Gradle.
The stackoverflow explains https://repo.gradle.org/gradle/libs-releases-local but the latest of https://repo.gradle.org/gradle/libs-releases-local/org/gradle/gradle-core-api/ is 6.1.1. (The latest Gradle version is 6.6). Yet, if some artifacts are missing in Maven Central but available somewhere (as part of Gradle distribution), we can create a Maven local ("libs" directory) repository that holds the artifact in this cloud-opensource-java repository just to build our Gradle plugin. Alternative to the lib directory, we can use the maven-install-plugin to move them to he local repository.
If we don't use Gradle's "com.gradle.plugin-publish" plugin, we'll need to figure out how to upload artifacts to Gradle's plugin repository. (If the Gradle repository changes how it works, we're responsible to adjust it.)
Everything in Gradle
Jib project is all Gradle. They develop Jib Maven plugin in Gradle.
We have settings done in Maven:
- The Maven invoker plugin for the enforcer rule integration tests.
- The release script uses
mvn versions:setto apply changes to pom.xml at once.
It's feasible but this effort does not sound good just for this purpose to align the Gradle enforcer rule and Maven enfrocer rule.
- Linguagem predominante
- Java
- Estrelas
- 165
- Forks
- 82
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de GoogleCloudPlatform/cloud-opensource-java
-
Class file versions 65 in linkage checkerTalvez livre de novo @priyanshuvishwakarma273403 assumiu há 111 dias e não há nenhum pull request aberto. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
GoogleCloudPlatform/cloud-opensource-java#2419 · 1 comentário · 2 reações ·
-
best practices
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 62/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
-
JLBP-14 additional reasonAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 42/100
-
Add a presubmit CI check for LTSTalvez livre de novo @diegomarquezp assumiu há 187 dias e não há nenhum pull request aberto. Abertaenhancement p2
GoogleCloudPlatform/cloud-opensource-java#2468 · 1 comentário · 1 responsável ·
Todas as issues de GoogleCloudPlatform/cloud-opensource-java
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
lugassawan/swe-workbench#799 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
Vakore/ZappierGames#89 ·
-
1.20.1-FORGE Module-Enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
MehVahdJukaar/WoodGood#1340 · 1 comentário ·
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
PssbleTrngle/dye_depot#123 ·
-
bug question
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100