master Changelog 0.3 === - 0.3.1 Clarify outdated README.md - 0.3.0 Valid tags give a default offset of 0 Previously, tags that were created for a subproject needed to include a commit that modified a file within the path. This is no longer required and as long as the tag is created for the project's tag prefix, it will be counted as part of the project. For example, for project hash-utils with tag prefix 'hash', we have three commits: 1. An empty commit tagged 'hash-0.3' 2. A commit that modifies a file in the 'hash-utils' directory 3. A commit that does not modify any files in 'hash-utils' Commits 1 and 2 would be counted, but 3 would not. The resulting version number will be 0.3.1. This is currently using an implementation detail regarding how JGit's LogCommand returns its result. See eclipse-jgit/jgit#149 0.2 === - 0.2.14 Fix issue with commit count of 0 using fallback Fixes Git Version returning the incorrect commit offset if the last commit that modified the path is the same as the tagged commit - 0.2.13 Account for tags with '-v' version prefix - 0.2.12 Change remote URI strategy for project URL 1. Find a remote that contains a URI containing "MinecraftForge/" 2. Find a remote named "origin" 3. Find whatever remote might exist - 0.2.11 Separate project URL from GitVersion.Info Allows getting the URL of the Git Version without needing to rely on other aspects of the Git Version succeeding. - 0.2.10 Throw a proper exception on no tag This gives actually helpful info for debugging why a tag wasn't able to be described with the version's tag prefix and filters. - 0.2.9 Fix SSH remotes not translating to project URL correctly - 0.2.8 Update JGit to 7.2.0 It's still not on Maven Central, but at least the full release is out and I don't have to keep using the release candidate. - 0.2.7 Allow tag prefix and filters to be set after creation Might delete this later, so don't count on it. This is for GradleUtils 2.x backwards compatibility in 2.4. - 0.2.6 Properly account for filters starting with the `!` ignore character - 0.2.5 Move some important utilities to GitVersion The same will probably be done with GitUtils#getRelativePath, moving those to file-utils when it is created. - 0.2.4 Additional code cleanup - 0.2.3 Fix access issues with GitVersion sealed permissions - 0.2.2 Recover with an empty GitVersion in non-strict mode - 0.2.1 Throw GitVersionException instead if not in a Git repository This allows this error to be recoverable from GradleUtils, since it is expected for GitVersionExceptions to be caught and potentially recoverable (i.e. using temporary fake versions such as 0.0.0), while IllegalArgumentExceptions should be dealt with accordingly. - 0.2.0 The config is now the source of truth This essentially boils down to the design change that .gitversion is no longer written to by Git Version, but instead should be updated and edited by project maintainers. I might make some sort of generator in the future. Additionally: - Switched from JSON to TOML for config parsing - Locked down all API, leaving only the essentials for interacting with Git Version (net.minecraftforge.gitver.api) - Use interfaces for utility classes (mainly because I'm lazy and don't have to write as many keywords) - JGit is no longer exposed API in Git Version - Added strict mode, to allow fake version numbers to be used if necessary - `@Override` on the record parameters for IDE linting - Fixed commit counting not working for root projects - Fixed various CLI issues - Fixed some tag filtering implementation details - Now using absolute files for everything, because path resolutions 0.1 === - 0.1.3 Add usage of GitVersion with git directory and path - 0.1.2 Add some Groovy-friendly setters Ideally I need to rewrite this part of the API a little bit. For now to get the ball rolling, this is fine. - 0.1.1 Update licenses - 0.1.0 Initial commit As of right now, GitVersion is mostly a port of the Git utilities from GradleUtils and SharedActions. This is to ensure that the versioning system is consistent across all Forge projects. While not directly credited as co-authors, GitVersion was built off of the work done in GradleUtils and SharedActions by LexManos and prior Forge contributors.