All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, this project does not yet adhere to semantic versioning as it's in very early stages.
- PDM: The
common-lib
module that is used everywhere in the project - Runtime: The
pdm
module - Gradle Plugin: The
pdm-gradle
module - Example: The
example
module - Global: Changes that apply everywhere
- Readme:
README.MD
- Runtime: A bit of documentation has been added to
PluginDependencyManager
and other classes
- Runtime: Spigot and BungeeCord specific methods (i.e
of(Plugin)
) have been moved to their own classes (SpigotDependencyManager
andBungeeDependencyManager
respectively) to avoid potential conflicts. This has the nice side-effect of making PDM now effectively platform agnostic, however some transitive dependencies of Spigot (commons-text and guava) are required.
- Runtime: Convenience method for making a PluginDependencyManager on BungeeCord
- BomBardyGamer: Adding BungeeCord methods
- PDM: Maven Repositories will now cache an artifact's transitive dependencies to reduce repeated lookups in some situations
- Example: Some basic documentation has been added to the example module
- PDM: Artifact now defines an equals and hashCode implementation, so can be safely used in any hash based data structure
- Example: PDMExample now targets the latest PDM api
- Readme: Code examples now also target the latest API
- PDM: Some messy code in SpigotRepository.java has been cleaned up
- PDM: Minor spacing and annotation tweaks to Repository classes
- Gradle Plugin: No longer throws a StackOverflowError when dealing with recursive transitive dependencies (eg adventure-api / adventure-bom)
- Yakovliam: Minor tweaks and bug reports
- PDM: Minor code cleanup
- Runtime: PDM should no longer give a reflection warning when being used on Java 9+ (See #30)
- Gradle Plugin: A new PDM maven repository provided by Glare
- Gradle Plugin: Added a new task to clean the PDM cache
- PDM: Lots of cleanup
- Runtime: API now uses
PluginDependencyManager
instead ofPDMBuilder
- Gradle Plugin: Can now properly handle exclusions for transitive dependencies
- Gradle Plugin: Can now properly handle pdm dependencies in submodules
- PDM: The dependency loading process has hopefully been sped up if all dependencies are already downloaded.
- Global: The Kotlin stdlib should no longer be shaded into every plugin using pdm
- Gradle Plugin: No longer throws an exception relating to Kotlin property references (seems to be caused by the update to 1.4)
- Gradle Plugin: No longer throws
ClassNotFoundException: com.google.common.cache.CacheBuilder
when being used
- PDM: A method to download, but not load all dependencies
- Common Lib: MavenRepository.java now correctly implements toString()
- Kotlin 1.4 is now used wherever applicable
- Some docs have been slightly reworded
- Small refactor of some internals
- PDM: Transitive dependencies now load into the classpath if their "parent" dependency already exists
- Gradle Plugin: No longer tries to copy from the cached dependencies.json to the latest one if it already exists
- The Kotlin Example now includes a workaround for the Intrinsics class problem
- Gradle Plugin: Now exposes common-lib with the api configuration
- Gradle Plugin: If a dependencies.json isn't present, it will be copied from a cached version
- Runtime: If there are no configured dependencies, a warning will be logged
- Shading the runtime no longer bundles Gson, Guava, and Jetbrains Annotations
- Caching! Everything is now cached, but it can all be manually disabled if necessary.
- The placeholder parsing process a little to hopefully fix some bugs
- Skipped because of Gradle again :/
- Some shields to README.MD about the latest versions
- A JSON schema for
dependencies.json
- Support for parent pom parsing
- Another Unit Test
- Reworded a lot of README.MD
- The pom parsing process has been reworked to accommodate the parent pom support
- The Gradle plugin now adds the
java
plugin to ensure that thecompile
configuration is always available - Broken imports in DefaultParseProcessTest.kt
- The buildscripts now process environment variables correctly for publishing
- Cleaned up all the buildscripts
- Modernised the example module
- Type arguments from
PluginDependencyManager
's Javadocs - KtLint dependency as it was never used
publish-all.sh
no longer runs tests as the CI does that
- CI with Travis
- A build status to README.MD
- Fixed tests failing because they couldn't find Gson classes
- SnapshotArtifact will no longer attempt to parse a POM if the URL is invalid
- Remove a few unused imports from
PluginDependencyManager
publish-all.sh
now runs tests before publishing
- Add a method to
PDMBuilder
that can use the Plugin's ClassLoader to do dependency loading pre-plugin initialization - Add a slightly more detailed error message to SnapshotArtifact and potentially fix a bug in PDM.kt
- No changes, just needed to update as Gradle Publishing had corrupted previous versions
Versions between 0.0.2 and 0.0.8 are not on Gradle Plugins Portal due to a technical fault
- Cleaned up the buildscripts
- More Unit Tests
- Improved the version extraction process to support Jitpack dependencies now
- Simple example of Kotlin usage to README.MD and example module
- publish-all.sh, a script for publishing all modules
- A simple Unit Test suite
- A demo gif to README.MD
- Maven Placeholder/Property support, meaning things like ${hikari.version} should be replaced with the appropriate values
- Add
PDMBuilder
, a builder class for constructing aPluginDependencyManager
- An inverted boolean in SpigotRepository#download that would throw a warning if the server's spigot version is "downloaded"
- The DependencyManager cache not actually removing values
- The Gradle plugin throwing an exception about not being able to find Gson
- Use OS channel based file writing when available, potential performance improvements
- Repositories now provide
InputStream
s rather than byte arrays wherever possible - A
Function<String, Logger>
is now passed around rather than a single Logger instance - README.MD is now a bit more detailed and shows the more recent file size of around 50 KB
- The logging side effect from
PluginDependencyManager#loadAllDependencies
- The redundant plugin url specification from settings.gradle
- The redundant @NotNull from
HTTPService#ping
as it returns a primitive type
Basic functionality, buggy