Transfer buildscript tasks to another language #138
Labels
buildscript
Issue related to the buildscript
draft
Tentative new feature
enhancement
New feature or request
help wanted
Extra attention is needed
Currently, the Feather buildscript uses Gradle to execute all of its tasks, from running the main feather task, mapping generation, and name propagation, to downloading necessary libraries and publishing the mappings to the Ornithe maven repository. This has mostly worked, but Gradle has a tendency to time out or reset its connection randomly for no discernable reason. This was previously a really significant issue when we would publish every version in the same task sequentially, but #134 has significantly improved that situation by running every publish task in parallel, publishing up to 20 versions at a time concurrently.
This solved the issue of having to restart the whole publish task for every version if one of the versions failed, but the second time the new publish workflow was run, many versions failed to publish because the publish tasks would try to upload an artifact version that was already on the repository, because the
maven-metadata.xml
file didn't have those versions listed in them. We believe the concurrent nature of the workflow is causing a race condition with reading and writing themaven-metadata.xml
file, preventing it from getting accurately updated for every version.When thinking of ways to resolve the first issue, I had the idea of transferring most, if not all, of Gradle's workload to Pure Java Code; I shelved this idea when @Kahzerx refactored the workflow, but this race condition issue is making me consider bringing up this ussie again.
There are a couple things to consider:
maven-metadata.xml
file, until the very end.I'm getting to the point where I've written so much that I'm losing track of my thoughts, so I'll stop here, I might edit this more later. Please feel free to share your thoughts about this.
The text was updated successfully, but these errors were encountered: