main Changelog 1.0-pre ======= - 0.0-pre-65 Add JarJarMetadataInfo#setConstraint to omit nested jar ```groovy jarJar.register() dependencies { implementation(jarJar(libs.mixinextras)) { jarJar.configure(it) { constraint = true // This will omit the jar from the built jar file. } } } - 0.0-pre-64 Make the JarJar task depend on the configuration's build dependencies Fixes project dependencies not building when needed by the JarJar task. Uses `configuration.buildDependencies` to avoid needing to interact with the project dependency at all. - 0.0-pre-63 Fix the software component failing to generate Bump to 0.2 due to API breaking change - 0.0-pre-62 gradle-0.1 - Gradle plugin (#7) Forge Jar-in-Jar Gradle is a standalone Gradle plugin that enables buildscripts to embed dependencies using Forge's Jar-in-Jar specification with minimal hassle. While primarily designed for Forge mods and only uses Forge's Jar-in-Jar specification, this can be used in any Gradle project without being strictly tied to ForgeGradle, allowing for complex setups that are not reliant on the presence of ForgeGradle. Despite being functional, this is still **work in progress!** Expect bugs, and for things to might not work. Documentation will come at a later date. For examples on how to use, see `jarjar-gradle-demo` in the root directory. - 0.0-pre-61 Fix javadoc failing to generate due to illegal comments - 0.0-pre-60 Create an embedded jar for metadata This jar DOES NOT relocate packages due to exposing API dependencies. It should only be used by the Gradle plugin. Do not use this. - 0.0-pre-59 Slightly optimize jar selection - 0.0-pre-58 Clean up VersionRangeSerializer - 0.0-pre-57 Reformat entire project (see desc) - Brackets on new line - Private constructors of utility classes no longer throw - Deprecated selector's Constants class - 0.0-pre-56 Further buildscript cleanup - 0.0-pre-55 Modernize buildscript Used modern Gradle features such as the incubating JVM Testing Suite plugin to streamline declarations. The subproject configurations are still contained inside of the main `build.gradle` and are written in a way that doesn't cause configuration cache issues. Since we plan on rewriting Jar-in-Jar in the (near) future, I'm not worried about making this project compliant with isolated projects. So using `Project#subprojects` in the main buildscript is fine. Other changes - Enabled configuration cache - `src/binks` -> `src/test` - Test failures are now ignored. Dependency changes: - Gradle 9.0.0 - GradleUtils 3.3.0 - Git Version Gradle 3.1.0 - Changelog Gradle 3.1.1 - 0.0-pre-54 More cleanup and removal of UnionFS implementation details. - 0.0-pre-53 More URL normalization and better error messages. - 0.0-pre-52 Re-add hacky path change because I don't want to re-write tests right now - 0.0-pre-51 Bump Java - 0.0-pre-50 Normalize url keys - 0.0-pre-49 Gradle 8.4, licence headers, GH Action (#6) - 0.0-pre-48 TeamCity change in 'MinecraftForge / JarJar' project: project was archived - 0.0-pre-47 Implement support for root Files.exists checks. - 0.0-pre-46 Implement checkAccess so that Files.exists works. - 0.0-pre-45 Reimplement the serializer for version ranges to handle the fact that apache did not implement toString properly. - 0.0-pre-44 Switch to subprojects. - 0.0-pre-43 Change the module name for the FileSystems since it is invalid. - 0.0-pre-42 Add manifests to the published jars so that forge can load the modules from them. - 0.0-pre-41 Exclude duplicates? - 0.0-pre-40 Move the FSProvider interface to the filesystem runtime - 0.0-pre-39 Stop publishing a fatjar and publish a filesystems zip separately. - 0.0-pre-38 Publish a fatjar. - 0.0-pre-37 Fix the broken tests, we explicitly diverge from the ZIP FS implementation here. - 0.0-pre-36 Return the root of the filesystem. - 0.0-pre-35 Pull the filename from the parent if we are root. Makes generic libraries work with FML. - 0.0-pre-34 Use the passed in URI as a straight processing label. - 0.0-pre-33 Handle URI creation way better by handling recursive prefix construction. - 0.0-pre-32 Better handle the seperation of components in paths. - 0.0-pre-31 And handle the same single entry corner case on LayFS FileSystem extraction. - 0.0-pre-30 Make the LayFS provider handle the single key entry case. - 0.0-pre-29 Make it possible to request a specific version of the JiJ package wrapper. - 0.0-pre-28 Fix the most obvious case in the world - 0.0-pre-27 Fix some more corner cases. - 0.0-pre-26 Fix a corner where version ranges which are valid like [1.0.0,) where considered invalid due to a flipped restriction check. - 0.0-pre-25 Fix a case where relativism is not guaranteed. Add test cases which handle compliance to the Zip Specification. Closes #1. - 0.0-pre-24 Make FailureReason public. - 0.0-pre-23 Support for indicating if the resolution failed due to illegal version constraints, or due to an resulting constrained range which had no source jar. Handle input jars which are also included in the output. - 0.0-pre-22 Also handle serialization of the DefaultArtifactVersion. - 0.0-pre-21 Add writing endpoint to IO Handler. - 0.0-pre-20 Switch source compatibility version to 8. Run tests on 17 since that is our Forge target and Java 8 is missing the required ZipFS anyway. Force Java 8 Compiler. - 0.0-pre-19 Added support for obfuscation metadata. - 0.0-pre-18 Output the version range with the requesting mods. - 0.0-pre-17 Add support for failure detection. - 0.0-pre-16 Fix a logging issue which is not an error. - 0.0-pre-15 Add in a delegate for the contained version which represents the range and contained jar version. - 0.0-pre-14 Fix the metadata serializer reading and writing in the wrong format. - 0.0-pre-13 Add custom serializers for the records. - 0.0-pre-12 Add support for detection to the JarSelector. - 0.0-pre-11 Fix the changelog generation. - 0.0-pre-10 Output the version number. - 0.0-pre-9 Add TeamCity building and publishing. - 0.0-pre-8 Initial publication with NIO FS implementations. - 0.0-pre-7 Remove the not needed hash. - 0.0-pre-6 Make the JarSelector select method actually static. - 0.0-pre-5 Remove the .idea gitignore. - 0.0-pre-4 Add license and versioning - 0.0-pre-3 Remove dummy test. - 0.0-pre-2 Implement initial utils. - 0.0-pre-1 Initial commit