This pull request introduces several changes, including improvements to testing, dependency updates, and the addition of comprehensive build, packaging, and documentation workflows. Below is a summary of the most important changes grouped by theme.
Testing Improvements
Enhanced TestBuildCommand in cmd/katenary/main_test.go by combining conditionals to improve readability and maintainability.
Updated TestSchemaCommand in cmd/katenary/main_test.go to handle errors when creating pipes and ensure proper cleanup with a done channel for better reliability.
Dependency Updates
Upgraded several dependencies in go.mod, including k8s.io/api to v0.33.3, sigs.k8s.io/yaml to v1.6.0, and github.com/spf13/pflag to v1.0.7, among others. These updates ensure compatibility and leverage the latest features and fixes. [1][2][3]
Makefile
Introduced a new makefiles/build.mk file to support multi-platform builds, including Linux, Windows, macOS, and FreeBSD. It also includes support for UPX compression and Windows installer generation.
Added makefiles/packager.mk to enable the creation of RPM, DEB, Pacman, FreeBSD, and TAR packages using fpm. This also includes checks for package validity across various Linux distributions.
Added makefiles/gpg.mk for GPG signing and signature verification of distribution packages.
Added makefiles/doc.mk to automate the generation of documentation, including serving it locally with mkdocs, generating manpages, and creating code documentation with gomarkdoc.
Introduced makefiles/test.mk to streamline testing, code coverage generation, and static application security testing (SAST) with opengrep.
These changes collectively enhance the project's maintainability, build process, and developer experience while ensuring robust testing and packaging workflows.
This pull request introduces several changes, including improvements to testing, dependency updates, and the addition of comprehensive build, packaging, and documentation workflows. Below is a summary of the most important changes grouped by theme.
### Testing Improvements
* Enhanced `TestBuildCommand` in `cmd/katenary/main_test.go` by combining conditionals to improve readability and maintainability.
* Updated `TestSchemaCommand` in `cmd/katenary/main_test.go` to handle errors when creating pipes and ensure proper cleanup with a `done` channel for better reliability.
### Dependency Updates
* Upgraded several dependencies in `go.mod`, including `k8s.io/api` to v0.33.3, `sigs.k8s.io/yaml` to v1.6.0, and `github.com/spf13/pflag` to v1.0.7, among others. These updates ensure compatibility and leverage the latest features and fixes. [[1]](diffhunk://#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6L14-R16) [[2]](diffhunk://#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6L25-R25) [[3]](diffhunk://#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6L41-R56)
### Makefile
* Introduced a new `makefiles/build.mk` file to support multi-platform builds, including Linux, Windows, macOS, and FreeBSD. It also includes support for UPX compression and Windows installer generation.
* Added `makefiles/packager.mk` to enable the creation of RPM, DEB, Pacman, FreeBSD, and TAR packages using `fpm`. This also includes checks for package validity across various Linux distributions.
* Added `makefiles/gpg.mk` for GPG signing and signature verification of distribution packages.
* Added `makefiles/doc.mk` to automate the generation of documentation, including serving it locally with `mkdocs`, generating manpages, and creating code documentation with `gomarkdoc`.
* Introduced `makefiles/test.mk` to streamline testing, code coverage generation, and static application security testing (SAST) with `opengrep`.
These changes collectively enhance the project's maintainability, build process, and developer experience while ensuring robust testing and packaging workflows.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This pull request introduces several changes, including improvements to testing, dependency updates, and the addition of comprehensive build, packaging, and documentation workflows. Below is a summary of the most important changes grouped by theme.
Testing Improvements
TestBuildCommandincmd/katenary/main_test.goby combining conditionals to improve readability and maintainability.TestSchemaCommandincmd/katenary/main_test.goto handle errors when creating pipes and ensure proper cleanup with adonechannel for better reliability.Dependency Updates
go.mod, includingk8s.io/apito v0.33.3,sigs.k8s.io/yamlto v1.6.0, andgithub.com/spf13/pflagto v1.0.7, among others. These updates ensure compatibility and leverage the latest features and fixes. [1] [2] [3]Makefile
makefiles/build.mkfile to support multi-platform builds, including Linux, Windows, macOS, and FreeBSD. It also includes support for UPX compression and Windows installer generation.makefiles/packager.mkto enable the creation of RPM, DEB, Pacman, FreeBSD, and TAR packages usingfpm. This also includes checks for package validity across various Linux distributions.makefiles/gpg.mkfor GPG signing and signature verification of distribution packages.makefiles/doc.mkto automate the generation of documentation, including serving it locally withmkdocs, generating manpages, and creating code documentation withgomarkdoc.makefiles/test.mkto streamline testing, code coverage generation, and static application security testing (SAST) withopengrep.These changes collectively enhance the project's maintainability, build process, and developer experience while ensuring robust testing and packaging workflows.