FabricMC / fabric-loom

Gradle build system plugin used to automate the setup of a minecraft mod development environment.
MIT License
223 stars 194 forks source link

Use last 16 chars for checksum #1064

Closed Flemmli97 closed 4 months ago

Flemmli97 commented 4 months ago

This makes it to use the last 16 chars for the checksum used to create a lock. Currently it uses the first 16 chars which makes structures like

Foo/bar/project_1
            .../project_2

have the same lock file.

This is of interest due to #929 (and the advantages are outlined there too).

modmuss50 commented 4 months ago

https://github.com/FabricMC/fabric-loom/pull/1031 is also going to help a lot with the original issue.

Flemmli97 commented 4 months ago

1031 is also going to help a lot with the original issue.

ye this also wouldnt really solve all the concurrent problems.

think i outlined it in the issue but: this solves reloading all project at once assuming all needed files are already downloaded which are most of the cases. if you e.g. add a dependency and manually reload this problem doesnt happen either way. does not solve the problem with initializing all projects at once.

for that we could implement following:

Download the file to the path + append the project name to it so it is a different file. E.g. if we wanted to download mc-1.20.1.jar to ./gradle/caches/whatever/ it would download it as ./gradle/caches/whatever/mc-1.20.1_projectname.jar. And when its done we rename it back to mc-1.20.1.jar.

This way the download will not conflict and even if we rename (+ replace) the existing file its still basically the same file