Skip to content

Releases: atc0005/elbow

Release v0.6.0

31 Oct 18:29
39ed23c
Compare
Choose a tag to compare

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
    • 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
  • 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

Release v0.5.2

25 Oct 04:24
6eda381
Compare
Choose a tag to compare

Fixed

  • nil pointer dereference due to not initializing the logger handle before use

References

Release v0.5.1

25 Oct 03:23
3aa7272
Compare
Choose a tag to compare

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 to 0 instead of being a required flag

Removed

  • required constraint for the --keep flag (now defaults to 0)

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)
  • Makefile
    • minor tweaks to output to adjust spacing after removal of UPX calls

References

Release v0.5.0

24 Oct 04:10
7ce487e
Compare
Choose a tag to compare

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
  • single path command-line flag --path replaced by multi-path --paths
    command-line flag
  • ELBOW_PATH environment variable replaced by ELBOW_PATHS which now
    supports comma-separated list of paths
  • Makefile
    • Makefile and test scripts updated to work with multiple paths
    • make 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 and go version -m -v to determine the version of Go and associated modules used
      to build them
  • --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 the IgnoreErrors option
  • README
    • Add missing --age command-line flag option
    • Add missing ELBOW_FILE_AGE environment variable

References

Release v0.4.0

17 Oct 19:14
274b542
Compare
Choose a tag to compare

Added

  • Latest Release badge on README
  • Support for environment variables via alexflint/go-arg package
  • Makefile
    • command: testrun
    • Set version global variable in main package based on git describe

Changed

  • --extension (multi-use) flag is now --extensions (single call, multiple values supported
  • Replaced jessevdk/go-flags package with alexflint/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 for go 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.
  • README updated to note Go 1.13 as the base version

Removed

  • jessevdk/go-flags package replaced with alexflint/go-arg

Fixed

  • Typo in license text
  • Replace lightweight Git tags with annotated tags

References

Release v0.3.2

17 Oct 03:42
64d5533
Compare
Choose a tag to compare
Release v0.3.2 Pre-release
Pre-release

Fixed

  • README: Add package dependencies and install steps
  • Fix miscellaneous spelling errors
    • credit: Code Spell Checker VSCode extension
  • 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 at debug 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

References

Release v0.3.1

29 Sep 19:11
91c177c
Compare
Choose a tag to compare
Release v0.3.1 Pre-release
Pre-release

Changed

  • Update Makefile (and the called testing/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

Release v0.3.0

28 Sep 03:38
1b191cd
Compare
Choose a tag to compare
Release v0.3.0 Pre-release
Pre-release

Added

  • Add Makefile
    • handle cleaning the build environment, the local Git repo and other
      temporary content
    • handle building binaries for Windows and Linux
  • Add test environment setup script
    • used by Makefile; usable separately if desired
  • (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

Release v0.2.0

26 Sep 18:53
1508ae8
Compare
Choose a tag to compare
Release v0.2.0 Pre-release
Pre-release

Added

Documentation:

  • LICENSE file
  • CHANGELOG.md file
  • NOTICES.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
  • 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

Release v0.1.0

18 Sep 03:49
785805f
Compare
Choose a tag to compare
Release v0.1.0 Pre-release
Pre-release

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: