- `7.0.70` Use a Configuration to model the additional dependencies of each run (#81)
   
   * Use a Configuration to model the additional dependencies of each run, since configurations seem to be better at tracking task dependencies.
   
   * Remove unused files.
 - `7.0.69` Various Task Improvements (Patch, Strip, Recompile) (#75)
   
   * Apply patches directly from the archive and not the unpacked NeoForm directory. End-Goal: Don't unpack NeoForm.
   
   * Make strip use try-with-resources.
   
   * Move doLast into the task action of RecompileSources.
   
   * Disable Caching for ArtifactFromOutput, since all it does is copy a file, which is the same as the cache restore would do.
 - `7.0.68` Remove runtime data in an effort to reduce task inputs to only the relevant ones. (#76)
 - `7.0.67` Generate configuration closures for ATs (#80)
 - `7.0.66` Nuke unused args (#79)
 - `7.0.65` Fix PotentiallySignJar since Gradle hard-casts to a concrete PatternSet (#77)
 - `7.0.64` Bump training-wheels dependency. (#73)
 - `7.0.63` Add the ability to customize recompile settings (#72)
   
   * Add the ability to customize recompile settings.
   
   * Remove outdated setMemoryMaximumSize from RecompileSourceJar since it'll always be overridden.
 - `7.0.62` Streamline Inject Tasks for Neoforge in Userdev (#71)
   
   * Add the ability to the runtime builder to customize individual tasks in addition to manipulating the task tree.
   
   * Enhance the InjectCode task to handle multiple injection source simultaneously, each with their own filters.
   Use that new task to merge the injections from NeoForm and NeoForge userdev into a single task.
 - `7.0.61` Fix JSON serialization not closing the InputStream in some cases, as well as not setting the UTF-8 character set explicitly (and thus falling back to the default platform encoding). (#69)
 - `7.0.60` Replace spaces in ideBeforeRun task names (intellij doesn't like them)
 - `7.0.59` Fix the run gradle task not correctly accounting for processResources tasks of dependent sourcesets
 - `7.0.58` Always download Launcher Manifest, but do it conditionally (#67)
   
   * Fixes #66 by using upToDateWhen to indicate the launcher manifest download task is never up-to-date. To mitigate the re-download, use If-Modified-Since in all HTTP download requests if the target file already exists.
   
   * Create the download directory if it doesn't exist.
 - `7.0.57` Add `userdevCompileOnly` configuration and allow JarJar usage in the platform `universalJar` (#60)
 - `7.0.56` Transform decompile step into a task that is customizable via specific settings (#46)
   
   Example:
   ```gradle
   subsystems {
     decompiler {
       maxMemory = "2g"
       maxThreads = 4
       logLevel = DecompilerLogLevel.TRACE
       jvmArgs = ["-verbose:gc']
     }
   }
   ```
 - `7.0.55` Link to NeoForged project page instead of maven. (#63)
 - `7.0.54` Remote the `ignoreList` regex (#62)
   
   The regex attempts to remove version information from the jar, so that it would go from `artifact-name-<version>.jar` to `artifact-name` in the BSL ignore list. But the full name will work as well. See https://github.com/McModLauncher/bootstraplauncher/blob/d1e91742561c9ea37c035c0fec2bd756967a1395/src/main/java/cpw/mods/bootstraplauncher/BootstrapLauncher.java#L70.
   
   And in fact the full name is already being used by fml-core and fml-events (jar names `core-<version>.jar` and `events-<version>.jar`) because `core` is too generic of a prefix to be excluding, and same for `event`.
   
   It was buggy when paired with versions with classifiers, and is simply not needed. No implementations of maven downloaders will rename the file. So just remove the core/events special cases and the regex altogether.
 - `7.0.53` Add `jarJar` task to `assemble` dependencies (#61)
 - `7.0.52` Switch to Gradles approach for serializing System properties (which expects the user to escape quotes themselves). Escape VM arguments passed to Eclipse. (#59)
 - `7.0.51` Use the full project path to decide whether dynamic project management should apply the platform plugin. (#58)
 - `7.0.50` Fix spaces in Gradle user home breaking IntelliJ run configurations. (#57)
 - `7.0.49` Fix TeamCity issue tracker link in TC
 - `7.0.48` Implement support for dynamic runtime dependencies (#52)
   
   * Implement dependency handling for runtime only dependencies.
   
   * Fix several issues caused by the latest changes.
 - `7.0.47` Refactor how and when runs apply the config from their run type to ensure it is always applied before configuring the run. (#55)
 - `7.0.46` Check hashes in ListLibraries (#53)
   
   - Use DownloadFileAction to download files, rather than doing it directly.
    - Check the hash when extracting from a bundle.
 - `7.0.45` Update GDI (#51)
 - `7.0.44` Fail fast when a dependency replacement handler throws an unhandled exception. (#49)
 - `7.0.43` Pre-create the idePostSync Task in IntelliJ to prevent it not existing from masking the actual project sync error. (#48)
 - `7.0.42` Switch to the NeoForged GDI artifact (#47)
 - `7.0.41` Fix multiple AT files not working when final file name matches (#41)
 - `7.0.40` Update neoforge jar path to remove the MC version prefix (#40)
 - `7.0.39` Fix patch generation using system line separator causing all patches to diff on windows (#39)
 - `7.0.38` Remove TC CI checks (#36)
 - `7.0.37` Added a GHA Pull-Request Workflow (#35)
   
   There is also a separate test-reporting workflow to allow the reporting of JUnit test results as a Github check, even if the build is running without write-permission (i.e. the PR is made from a fork).
 - `7.0.36` Fixed another spot where memory size was being computed. (#33)
   
   Pass heap size as megabyte, since Groovy seems to be fussy about other formats.
   Use integer division to prevent String.format from throwing due to invalid type conversion.
 - `7.0.35` Add useful links to README.md (#32)
   
   Add links to the docs, MDK and the NF maven to see the latest available versions of NG.
 - `7.0.34` Assign memory to fork options for recompile and execute. Should fix several OOM related issues with the recompile and decompile cycle.
 - `7.0.33` Fix an issue where libraries and assets write to the same directory
 - `7.0.32` Centrally cache services
 - `7.0.31` Implement internal cache directory.
 - `7.0.30` Centrally cache the libraries needed.
 - `7.0.29` Fix gradle being stupid when generating set properties.
   
   Closes: #29
 - `7.0.28` Merge pull request #21
   
   * Switch back to using the renamed jar as the base for joined binpatch 鈥�
 - `7.0.27` Merge pull request #28
   
   * Add installer logo property to installer task
 - `7.0.26` Fix an issue where the file cache provider was using @Nested preventing optimizations on modern gradle.
 - `7.0.25` Introduce central caching of assets.
   Prepare for central caching of other easy cacheable resources.
   Disable caching of run tasks
   Do not make eclipse wait for termination
   
   Closes: #24
   Closes: #22
   Closes: #15
   Closes: #14
 - `7.0.24` Merge branch 'feature/mixins' into NG_7.0
 - `7.0.21` Fix module path quoting.
 - `7.0.20` Also run asset download for data generators.
 - `7.0.19` Only run with assets and natives on client like runs.
 - `7.0.18` Only download assets on runs.
 - `7.0.17` Better implement quoting around interpolation data.
 - `7.0.16` Fix a corner case where there is a sourceset in a run that has no runtimes available.
 - `7.0.15` Additionally configure build dependencies.
 - `7.0.14` Fix a missing short-circuit handling of the ProjectHolder.
 - `7.0.13` Add support for using SourceSets which are not related to NeoGradle applied projects.
   Closes: #26
 - `7.0.14` Add support for the new Mixin argument.
 - `7.0.13` Add support for per Run and per Jar task configs.
   Closes: #14
 - `7.0.12` Automatically generate auto headers.
   Closes: #17
 - `7.0.11` Only apply IDE plugins when they are not applied yet.
   Closes #19
 - `7.0.10` Compile java for all related sourcesets before running the game.
 - `7.0.9` Always surround interpolated values with quotes.
   Closes: #20
 - `7.0.8` Break on successful download
 - `7.0.7` Merge pull request #16 from Technici4n/retries-assets
   
   Retry on asset download failure
 - `7.0.6` Retry on asset download failure
 - `7.0.5` Use the source configuration as the target of the task execution dependency
 - `7.0.4` Use the raw jar providing task directly in the target dependency and not in a wrapper.
 - `7.0.3` Add classpath data properly since we now do funny things with configurations.
 - `7.0.2` Fix publishing of maven artifacts and plugin coordinates.
 - `7.0.1` Fix the tests not working due to the new replacement logic supporting more than one configuration.
 - `7.0.0` Implement proper clean up of ng_dummy_ng dependencies
   Add GU 3.x
   Add versioning