Releases: atc0005/elbow
Releases · atc0005/elbow
Release v0.6.0
Added
-
GitHub Actions Workflow
- Run linting checks
- Run build checks
-
Documentation
- Add CI badge to README to note current codebase state
-
Makefile
- new recipe:
make linting
- runs suite of linting checks, suggests
make lintinstall
if tools are
not found
- runs suite of linting checks, suggests
- new recipe:
make lintinstall
- this recipe is used by the GitHub Actions Workflow as part of pre-test setup
- this same recipe can be used locally on-demand as part of a
pre-commit/pre-push workflow
- new recipe:
-
Report total size of files (eligible for removal, failed and success) for
each path that is processed
Changed
- Makefile
make all
now builds x86 binaries for Linux and Windows in addition to
the existing x64 binaries
Fixed
- Additional godoc coverage for subpackages
- Fix various linting errors exposed by CI-related work
References
- See the
v0.6.0
milestone for the issues associated with this release. - See our CHANGELOG for more information.
Release v0.5.2
Fixed
- nil pointer dereference due to not initializing the logger handle before use
References
- See the
v0.5.2
milestone for the issues associated with this release. - See our CHANGELOG for more information.
Release v0.5.1
Changed
- Logging level for file removal "intent" messages changed from INFO to DEBUG level in order to de-duplicate the coverage for removing files (e.g., noting before and after)
- Refactored
main
package to create multiple sub-packages in the hope that this will make it easier to create unit tests later - Apply default settings via
default
struct tag alexflint/go-arg
package updated to v1.2.0- README, godoc coverage
- updates to reflect updated Help output
- the
--keep
command-line flag defaults to0
instead of being a required flag
Removed
required
constraint for the--keep
flag (now defaults to0
)
Fixed
- README
--age
command-line flag notes had description details in the wrong column
- syntax of godoc documentation so that it properly renders on godoc.org or local godoc instance
- golangci-lint linting errors
- unintentional duplicate
arg
struct tags - unused function (refactored to separate package)
- unintentional duplicate
Makefile
- minor tweaks to output to adjust spacing after removal of UPX calls
References
- See the
v0.5.1
milestone for the issues associated with this release. - See our CHANGELOG for more information
Release v0.5.0
Added
- Add brief first draft of
godoc
compatible usage information - Support for processing one or more paths via command-line or environment
variable - Logging output
- total paths provided
- current iteration in loop across provided paths
- ending result noted as successful completion or completion with warnings
- misc logging tweaks to record additional field values that could be useful
when troubleshooting
Changed
- Updated README to cover new support for processing multiple paths
- examples now reference
/tmp/elbow
as the base path with
/tmp/elbow/path1
and/tmp/elbow/path2
as example multi-path arguments
- examples now reference
- single path command-line flag
--path
replaced by multi-path--paths
command-line flag ELBOW_PATH
environment variable replaced byELBOW_PATHS
which now
supports comma-separated list of pathsMakefile
Makefile
and test scripts updated to work with multiple pathsmake testenv
now prepares/tmp/elbow/path1
and/tmp/elbow/path2
by
default- override variable exposed as
TESTENVBASEDIR
(covered in README) - UPX is no longer used to compress generated executables
Removed
- Use of UPX for compressing executables
- using UPX to compress executables disables use of
go version
andgo version -m -v
to determine the version of Go and associated modules used
to build them
- using UPX to compress executables disables use of
--path
command-line flag (see earlier notes)ELBOW_PATH
environment variable (see earlier notes)
Fixed
- Early exit logic
- hard-coded
os.Exit(1)
calls (from before support for ignoring errors
were added) were adjusted to respect theIgnoreErrors
option
- hard-coded
- README
- Add missing
--age
command-line flag option - Add missing
ELBOW_FILE_AGE
environment variable
- Add missing
References
- See the
v0.5.0
milestone for the issues associated with this release. - See our CHANGELOG for more information
Release v0.4.0
Added
- Latest Release badge on README
- Support for environment variables via
alexflint/go-arg
package Makefile
- command:
testrun
- Set
version
global variable inmain
package based ongit describe
- command:
Changed
--extension
(multi-use) flag is now--extensions
(single call, multiple values supported- See README for usage
- Replaced
jessevdk/go-flags
package withalexflint/go-arg
- Improve configuration validation to accommodate lack of native
go-arg
support for enforcing specific flag values Makefile
- TODO: Add more info here
go.mod
updated to use Go 1.13 as the base version- Based on some reading in https://github.com/golang/go/wiki/Modules, the
behavior forgo get -u
changed to allow more conservative updates of
dependencies. The new behavior sounds more natural and is less likely to
surprise newcomers, so locking the base behavior to Go 1.13 sounds like a
"Good Thing" to do here.
- Based on some reading in https://github.com/golang/go/wiki/Modules, the
- README updated to note Go 1.13 as the base version
Removed
jessevdk/go-flags
package replaced withalexflint/go-arg
Fixed
- Typo in license text
- Replace lightweight Git tags with annotated tags
References
- See the
v0.4.0
milestone for the issues associated with this release. - See our CHANGELOG for more information
Release v0.3.2
Fixed
- README: Add package dependencies and install steps
- Fix miscellaneous spelling errors
- credit:
Code Spell Checker
VSCode extension
- credit:
- Update
Config.String()
method to include new fields - Log config field values after setting logging level so that they're visible
when choosing to log atdebug
level - Remove placeholder text from README file that has since been superseded by
real content - Fix file removal bug by using fully-qualified path to file instead of
shortname- the bug was due to an unintentional assumption that the file to be removed
was within the current working directory
- the bug was due to an unintentional assumption that the file to be removed
References
- See the
v0.3.2
milestone for the issues associated with this release. - See our CHANGELOG for more information
Release v0.3.1
Changed
- Update
Makefile
(and the calledtesting/setup_testenv.sh
script) to allow
for providing a custom location for generation of test files)
Fixed
- Minor tweak to logging output to reduce duplication between main log message
and the structured field
References
- See the
v0.3.1
milestone for the issues associated with this release. - See our CHANGELOG for more information
Release v0.3.0
Added
- Add Makefile
- handle cleaning the build environment, the local Git repo and other
temporary content - handle building binaries for Windows and Linux
- handle cleaning the build environment, the local Git repo and other
- Add test environment setup script
- used by
Makefile
; usable separately if desired
- used by
- (optional) Match files based on age threshold (in number of days)
Changed
- Update .gitignore file to exclude temporary files generated by UPX
- Update README to provide build and, test environment setup directions
- Refactor threshold helper functions in an effort to more clearly reflect
their purpose - Update logging to include more structured fields
Fixed
- Fix link to section in README
References
- See the
v0.3.0
milestone for the issues associated with this release. - See our CHANGELOG for more information
Release v0.2.0
Added
Documentation:
LICENSE
fileCHANGELOG.md
fileNOTICES.txt
file- License header to all source files
Logging:
- Apply leveled logging to better filter desired logging levels
- Add (optional on Linux, unavailable on Windows) syslog logging support
- Add optional log file support
Configuration options:
- (optional) Ignore errors when removing files
- (optional) Log format (text or json, defaults to text)
- (optional) Log level (large list, mapped where possible to syslog logging
levels) - (optional) Console output toggle (stdout or stderr)
- (optional) Log file path (logging to a log file mutes console output)
Changed
- Short flag names dropped
- There are some issues with
go-flags
misdetecting leading dashes in file
patterns as short flags, so instead of dealing with that right now I've
opted to only support long flag names go-flags
only supports single letter short flags, and with the number of
flags that we're using I decided to keep things simple for now and only
use long flag names
- There are some issues with
- The number of files to keep from match results is now a required flag
Removed
- Feature: Short flag names
- Package:
integrii/flaggy
- Package:
r3labs/diff
References
- See the
v0.2.0
milestone for the issues associated with this release. - See our CHANGELOG for more information
Release v0.1.0
This initial prototype supports:
- Matching on specified file patterns
- Flat (single-level) or recursive search
- Keeping a specified number of older or newer matches
- Limiting search to specified list of extensions
- Toggling file removal (read-only by default)
- Go modules (vs classic GOPATH setup)
- Brief overview, examples for testing purposes
Refs: