All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, adheres to Semantic Versioning, and is generated by Changie.
- Trunk upgrade was set to install, not upgrade tooling, so now it does what it should have done in the first place... before the coder in question got in way and didn't use his noggin.
- Since mage is typically not precompiled, the normal build directives for darwin, linux, windows don't apply. Instead, the logic needs to be just runtime evaluation in the same code not broken apart by files. This fixes it, improves logging for trunk setup, and does general dep upgrades.
- Improve the error output with shellescape library so the command that failed can be rerun manually easily.
- Trunk package now supports installing for windows, via the newer trunk npm based install, while maintaining the bash install for linux/darwin. If the project has a package.json, then it will install as dev dependency, otherwise as a global tool. No logic to detect alternative tooling such as yarn, bun, deno, etc unless requested. While trunk also supports this method of installation for Darwin/Linux, I've opted to keep it the same as before and use the bash install method for those regardless if package.json is there or not.
- New package
trunk
for automation on trunk installation, upgrades, and setup.
- Adjust changie to latest version with block input support and new cleaned up categories.
- Label on
go:lint
incorrectly statedgotestsum
found. This is fixed.
- Adjust
magetoolsutils
output to be less verbose and output to debug when matching condition instead of Info level, as this has to be used in many functions and is noisy. - Improve
ci.IsCI()
to detect GitHub specifically, Gitlab, and then resolveCI=1
as generic CI instead.
- Various dependencies updated to latest versions. Reduced additional upstream dependency requirements.
Breaking changes included. Read the impact before upgrading, in case you are actually using one of these minimally imported packages.
If you are upgrading, this should be a very minor change in your magefiles set-up.
The removal of some packages to .examples
has been made.
Some extra packages like gittools
are better served by installing with a tool like aqua-proj, asdf-vm, or other.
This should cut down setup times by grabbing binaries and not installing from source each time.
If you want to keep things exactly as they are:
- grab the mage directory that was removed (see
.examples/
directory) and drop it into yourmagefiles
directory. - Update your import in your main
magefile.go
fromgithub.com/sheldonhull/magefile
toyourrepo/magefile/{package}
and thenmage -f
to force a rebuild and confirm it was found. - Run
go mod tidy
to cleanup and you should be good.
This project has saved me a lot of effort across many repos, so I'm doing some due diligece in cleaning up little-used and difficult to test code.
- Removed reference to starter templates, and instead pointed to GitHub - sheldonhull/scripts-to-rule-them-all-go
- BREAKING CHANGE: Removed
docker
package, and placed in.examples
. - BREAKING CHANGE: Removed
licensing
package, and placed in.examples
. - BREAKING CHANGE: Removed
retool
package, and placed in.examples
. - BREAKING CHANGE: Removed
secrets
package, and placed in.examples
. This is better served by Trunk.io or pre-commit tooling, than using with mage. - BREAKING CHANGE: Removed
gittools
package and placed in.examples
. This would be better served by using aqua-project.
- Disabled
licensing
module tests. It's too problematic with output when non-go code is found. This licensing module will likely be deprecated soon as well as better solutions out there with renovate, fossa, synk, and others. - Resolved devcontainer configuration breaking with newer devcontainer configuration. Also improved handling of arguments, loading, and aqua initialization. This is is primarily impactful to any devcontainer based development, and not significant to any usage of the library itself.
- Licensing package (no uses noted on github), gittools, docker.devcontainer commands. These all are not used or minimal impact. Once removed I'll bump the main version of the magetools to allow for better upgrade path and avoid impacting any current uses.
- Removed much of the tooling for toolist that is non-critical. Most tools now use self resolving binary install so that initialization is not required. For other gopls VSCode handles, and Aqua is a great way to also install with a much faster processing time as it doesn't install from source, but instead uses binary release downloads.
- Improve changelog release output.
- Improve the testing to report codecoverage.
- Added static check to install setup.
- Improved gotestsum with
TESTSUM_FORMAT
environment variable that can be used to adjust the execution type. - Bumped underlying mage to v1.14.0
- Gotools package now checks for existence of a binary such as goreleaser or golangci-lint before trying to install via source.