Skip to content

Release 1.26.0

Choose a tag to compare

@monty-bot monty-bot released this 31 Jan 19:21
· 613 commits to master since this release

Changelog

This document contains a history of significant changes which have been released for golang-utils. Please note that
beta releases are not included in this history.

"" "1.26.0" (2023-01-31)

Features

  • ❇️[filesystem] Added more copy functions CopyToFile and CopyToDirectory to cover more copy usecases (#20230131184530)

Bugfixes

  • 🐛[filesystem] Clarified the behaviour of Copy for files so that there is no wrong assumptions about the type of the destination if not existing (#20230130162624)

Improved Documentation

  • Clarified the documentation with regards to filesystem.Copy (#20230130162704)

"" "1.25.1" (2023-01-27)

⚠️ the change of bevahiour of filesystem.Copy when destination does not exist may result in a breaking change

Bugfixes

  • Dependency upgrade: fetch-metadata-1.3.6 (#20230124111318, #20230124111321)
  • Dependency upgrade: uuid-4.4.0incompatible (#20230126110437, #20230126110454, #20230126110522, #20230126110538, #20230126110604, #20230126110651)
  • 🐛[filesystem] Fix Copy behaviour to match cp -r when destination does not exist (#20230126194148)
  • Dependency upgrade: zerolog-1.29.0 (#20230126195900, #20230126195917, #20230126195937, #20230126195956, #20230126200018, #20230126200036, #20230126200111)
  • 🐛[filesystem] Fix Copy behaviour to match cp <file> when destination has a file name (#20230127113013)

"" "1.25.0" (2023-01-22)

Features

  • [safeio] Add utilities to convert readers/writers into context aware actors (#20230111140925)

Bugfixes

  • Dependency upgrade: upload-artifact-3.1.2 (#20230109112003, #20230109112009, #20230109112051)
  • Dependency upgrade: viper-1.15.0 (#20230120110409, #20230120110413, #20230120110457)
  • 🐛[pagination] Fix panic in contructor (#20230121234948)

"" "1.24.0" (2023-01-09)

Features

  • ✨ Add [units] to ease limit/size setting (#202212061433)
  • [filesystem] allow unzip to be recursive for ease of use (#202212151320)
  • [filesystem] Extended potentially long running actions such as writing or reading files to be controlled by a context (#20230105170818)
  • [safeio] created new utilities to harden io actions (#20230106191918)
  • [filesystem] expanded filepath utilities (#20230106192012)
  • [filesystem] Added a way to control the recursivity and depth of filesystem action (#20230106192158)
  • [filesystem] Added a way to detect zip archive files (#20230108123045)

Bugfixes

  • Dependency upgrade: v3-3.22.12 (#20230102110852, #20230102110855)
  • Dependency upgrade: go-retryablehttp-0.7.2 (#20230104110511, #20230104110515, #20230104110601)
  • Dependency upgrade: text-0.6.0 (#20230104163113, #20230104163124)
  • Dependency upgrade: net-0.5.0 (#20230104163125, #20230104163131, #20230104163213)
  • 🐛 [pagination] changed iterator definition to allow item casting (#20230105095148)
  • Dependency upgrade: v5-5.5.2 (#20230106092118, #20230106092122, #20230106092158, #20230106092204, #20230106092240, #20230106092250, #20230106092318, #20230106092333, #20230106092409, #20230106092420, #20230106092450, #20230106092503, #20230106092530, #20230106092546, #20230106092606, #20230106092624, #20230106092650, #20230106092703, #20230106092736, #20230106092755)
  • [filesystem] fixed unzip to mitigate against the risk of zip bombs (#20230107200833)

"" "1.23.0" (2022-12-28)

Features

  • [pagination] extended paginators to deal with static pages which cannot iterate over themselves (#20221228210153)

Bugfixes

  • [filesystem] change move file to copy file not folder (#202212131259)
  • Dependency upgrade: scorecard-action-2.1.0 (#20221216111458, #20221216111505, #20221216111537, #20221216111544, #20221216111620, #20221216111629, #20221216111705, #20221216111714, #20221216111857)
  • Dependency upgrade: scorecard-action-2.1.1 (#20221220111609, #20221220111611)
  • Dependency upgrade: scorecard-action-2.1.2 (#20221226111538, #20221226111553, #20221226111611, #20221226111630, #20221226111650, #20221226111718, #20221226111731, #20221226111759, #20221226111811, #20221226111843, #20221226111859, #20221226111918, #20221226111932, #20221226111959, #20221226112012, #20221226112041, #20221226112100, #20221226112126, #20221226112138, #20221226112205, #20221226112218, #20221226112243, #20221226112251, #20221226112323, #20221226112328, #20221226112359, #20221226112410, #20221226112442, #20221226112451, #20221226112521, #20221226112527, #20221226112556, #20221226112617, #20221226112638, #20221226112653, #20221226112715, #20221226112727, #20221226112759, #20221226112810, #20221226112837, #20221226112845, #20221226112911, #20221226112931, #20221226112949, #20221226113009, #20221226113028, #20221226113046, #20221226113111, #20221226113122, #20221226113151, #20221226113202, #20221226113232, #20221226113258, #20221226113308, #20221226113332, #20221226113345, #20221226113408, #20221226113427, #20221226113443, #20221226113516, #20221226113522, #20221226113558, #20221226113605, #20221226113640, #20221226113646, #20221226113714, #20221226113731, #20221226113809, #20221226113818, #20221226113852, #20221226113858, #20221226113933, #20221226113936)
  • 🐛 [pagination] fixed bug about page iteration (#20221228210503)

"" "1.22.0" (2022-12-12)

Features

  • [logs] Added a way to manage multiple loggers transparently in the same way as a single logger (#20221212133537)

Bugfixes

  • Dependency upgrade: v5-5.5.1 (#20221212110922, #20221212110927, #20221212111004, #20221212111008, #20221212111042, #20221212111045, #20221212111127)

"" "1.21.0" (2022-12-09)

Features

  • ✨ Added a new module [pagination] for iterating over collections (#20221208164041)

Bugfixes

  • Dependency upgrade: v3-3.22.11 (#202212011106)
  • Dependency upgrade: upload-artifact-3.1.1 (#202212011116, #202212011117, #20221201111701, #20221201111702)
  • Dependency upgrade: v5-5.5.0 (#20221202110456, #20221202110500, #20221202110542, #20221202110549, #20221202110620, #20221202110626, #20221202110656, #20221202110704, #20221202110735, #20221202110741, #20221202110815, #20221202110844, #20221202110902, #20221202110938, #20221202110947, #20221202111015, #20221202111029, #20221202111056, #20221202111113, #20221202111134, #20221202111150, #20221202111215, #20221202111225, #20221202111253, #20221202111304, #20221202111330, #20221202111349, #20221202111417, #20221202111427, #20221202111507)
  • Dependency upgrade: text-0.5.0 (#20221205110716, #20221205110733, #20221205110759, #20221205110812, #20221205110845, #20221205110853, #20221205110926, #20221205110936, #20221205111004, #20221205111020, #20221205111051, #20221205111100, #20221205111127, #20221205111138, #20221205111208, #20221205111217, #20221205111249, #20221205111253, #20221205111332)
  • Dependency upgrade: net-0.4.0 (#20221207101219, #20221207101224, #20221207101259, #20221207101314, #20221207101350, #20221207101353)
  • Dependency upgrade: v3-3.8.1 (#20221208152839, #20221208152842, #20221208152924, #20221208152927, #20221208153005, #20221208153009, #20221208153104, #20221208153116, #20221208153157, #20221208153210, #20221208153242, #20221208153316, #20221208153342, #20221208153416, #20221208153423, #20221208153512, #20221208153540, #20221208153620)

"" "1.20.2" (2022-11-30)

Bugfixes

  • Dependency upgrade: atomic-1.10.0 (#202210031545, #202210031550, #202210031603, #202210031613, #202210031618, #202210031641, #202210031642, #202210031653, #202210031725, #202210031732, #202210031747, #202210031755, #202210031807, #202210031816, #202210031822, #202210031829, #202210031837, #202210031849, #202210031855, #202210031903, #202210031912, #202210031919, #202210031923, #202210031929, #202210031936, #202210031941, #202210031947, #202210032000, #202210032014, #202210032027, #202210032038, #202210032041, #202210032046, #202210032054, #202210032100, #202210032101, #202210032106, #202210032110, #202210032119, #202210032123, #202210032124, #202210032145, #202210032146, #202210032201, #202210032206, #202210032220, #202210032226, #202210032234, #202210032235, #202210032236, #202210032238, #202210032240, #202210032241, #202210032242, #202210032243, #202210032245, #202210032246, #202210032247, #202210032248, #202210032249, #202210032250, #202210032251, #202210032252, #202210032253, #202210032254, #202210032255, #202210032256, #202210032257, #202210032258, #202210032259, #202210032300, #202210032301, #202210032302, #202210032303, #202210032304, #202210032305, #202210032306, #202210032307, #202210032308, #202210032309, #202210032310, #202210032311, #202210032312, #202210032313, #202210032314, #202210032315, #202210032316, #202210032317, #202210032318, #202210032319, #202210032320, #202210032321, #202210032322, #202210032323, #202210032324, #202210032325, #202210032326, #202210032327, #202210032328, #202210032329, #202210032330, #202210032331, #202210032332, #202210032333, #202210032334, #202210032335, #202210032336, #202210032337, #202210032338, #202210032339, #202210032340, #202210032341, #202210032342, #202210032343, #202210032344, #202210032345, #202210032346, #202210032347, #202210032348, #202210032349, #20221003223801, #20221003224001, #20221003224101, #20221003224601, #20221003224701, #20221003224901, #20221003225101, #20221003225301, #20221003225601, #20221003225801, #20221003225802, #20221003225901, #20221003230001, #20221003230301, #20221003230302, #20221003230401, #20221003230701, #20221003230801, #20221003230901, #20221003231001, #20221003231101, #20221003231201, #20221003231301, #20221003231501, #20221003231601, #20221003231801, #20221003231901, #20221003232001, #20221003232201, #20221003232202, #20221003232301, #20221003232401, #20221003232501, #20221003232701, #20221003232702, #20221003232901, #20221003232902, #20221003233001, #20221003233101, #20221003233102, #20221003233201, #20221003233301, #20221003233302, #20221003233401, #20221003233501, #20221003233601, #20221003233602, #20221003233701, #20221003233801, #20221003233802, #20221003233901, #20221003234001, #20221003234101, #20221003234301, #20221003234302, #20221003234401, #20221003234501, #20221003234601, #20221003234602, #20221003234801, #20221003234802, #20221003234803)
  • Dependency upgrade: testify-1.8.1 (#202210241021)
  • Dependency upgrade: uuid-4.3.1incompatible (#202211011128, #20221101112801)
  • Dependency upgrade: viper-1.14.0 (#202211081108)
  • Dependency upgrade: afero-1.9.3 (#202211151103, #202211151104, #202211151107, #20221115110401, #20221115110402)
  • Dependency upgrade: v3-3.22.10 (#202211301252, #202211301253, #202211301254, #202211301255, #202211301256, #202211301257, #202211301258, #202211301259, #20221130125201, #20221130125202, #20221130125301, #20221130125302, #20221130125401, #20221130125501, #20221130125601, #20221130125701, #20221130125801)
  • Dependency upgrade: checkout-3 (#202211301327)
  • Dependency upgrade: codeclimate-action-3.2.0 (#202211301328)
  • Dependency upgrade: setup-python-4 (#202211301329)
  • Dependency upgrade: setup-go-3 (#202211301340)
  • Dependency upgrade: codeql-action-2 (#2022113013282)
  • Dependency upgrade: upload-artifact-3.1.1 (#2022113013283)
  • Dependency upgrade: fetch-metadata-1.3.5 (#2022113013295)
  • Dependency upgrade: cache-3 (#2022113013296)

Improved Documentation

  • [git] Improved API documentation (#202211301058)

"" "1.20.1" (2022-10-05)

Bugfixes

  • [filesystem]: Fix the exclusion regex used in subDirectories to filter "hidden" folders (#202210051012)

"" "1.20.0" (2022-10-04)

Features

  • git: Add checks for true repository size, not just the virtual size (#202210031606)
  • Upgrade the library to golang 1.17 so that dependencies can work on all plaftorms (#202210031638)
  • [filesystem] Expanded most recursive filesystem APIs so that exclusion patterns can be used to ignore some paths during the processing (#202210040057)

Bugfixes

  • [git] added new test cases to mitigate git bombing, with a large number of files (#202209211609)
  • Dependency upgrade: v3-3.22.9 (#202210031026)

"" "1.19.0" (2022-09-21)

Features

  • [Filesystem] Added a file number limit when unzipping to protect against attacks with zip files (#20220913)

Bugfixes

  • Dependency upgrade: v3-3.22.8 (#202209011025, #202209011026, #20220901102601)
  • Dependency upgrade: viper-1.13.0 (#202209071022)
  • Dependency upgrade: goleak-1.2.0 (#202209081025)
  • Dependency upgrade: uuid-4.3.0incompatible (#202209121025, #202209121026, #202209121027, #202209121028, #202209121029, #202209121030, #202209121031, #20220912102501, #20220912102601, #20220912102701, #20220912102801, #20220912102901, #20220912103001)

"" "1.18.2" (2022-08-31)

Bugfixes

  • Dependency upgrade: zerolog-1.28.0 (#202208291023, #202208291024, #20220829102301)
  • [logs] Fixed the error message logged by a slow writer (#202208311750)

"" "1.18.1" (2022-08-25)

Bugfixes

  • [filesystem] Fixed the platform dependent code on Linux (#202208251445)

"" "1.18.0" (2022-08-24)

Features

  • [filesystem] Add utility to retrieve file ownership information i.e. UID and GID (#202208131936)
  • [shared cache] Added a new module to create and manage shared cache between processes (#202208231010)

Deprecations and Removals

  • Reverted a dependency upgrade as not supported on MacOs (#202208241429)

"" "1.17.2" (2022-08-11)

Bugfixes

  • [git] Return HEAD if reference not provided (#202208111622)

"" "1.17.1" (2022-08-11)

Bugfixes

  • [git] modified interface to handle more generic references (tag, commit hash or branch name) (#202208111416)

"" "1.17.0" (2022-08-11)

Features

  • Add git utility to prevent cloning git bombs (#202208081656)

Bugfixes

  • Dependency upgrade: v3-3.22.7 (#202208011032)
  • Remove TryLock as it isn't available in go1.16 (#202208111140)

"" "1.16.0" (2022-07-29)

Features

  • Add utility for generating a list of the environment variables based on a struct that uses mapstructure (#202207290929)

"" "1.15.2" (2022-07-27)

Bugfixes

  • Dependency upgrade: afero-1.9.1 (#202207191022, #20220719102201)
  • Dependency upgrade: logrus-1.9.0 (#202207191615, #202207191616, #20220719161501)
  • Dependency upgrade: afero-1.9.2 (#202207201737)

Misc

  • #202207201838

"" "1.15.1" (2022-07-18)

Bugfixes

  • [filesystem] Updated limit structure to have tags specified (#202207181519)
  • [httptest] Fixed security issue (G112: Potential Slowloris Attack because ReadHeaderTimeout is not configured in the http.Server (gosec)) (#202207181802)

"" "1.15.0" (2022-07-18)

Features

  • [filesystem] Added ability to better control long running file system actions such as zipping, walking, etc. with context (#202207151751)

Bugfixes

  • Dependency upgrade: afero-1.9.0 (#202207151021, #202207151022, #202207151023, #20220715102101, #20220715102201)

"" "1.14.0" (2022-07-12)

Features

  • [logs] New utility to create a Logger from a logr.Logger (#202207111655)
  • [logs] Changed constructors to follow naming convention (:warning; May mean breaking changes) (#202207111821)
  • [logs] constructors using old naming convention i.e. create... are marked as deprecated (#202207120946)

Bugfixes

  • Dependency upgrade: testify-1.7.3 (#202206201048, #202206201049, #202206201050, #202206201051, #202206201052, #202206201053, #202206201054, #20220620104801, #20220620104901, #20220620104902, #20220620105001, #20220620105101, #20220620105201, #20220620105301, #20220620105302)
  • Dependency upgrade: testify-1.8.0 (#202207011611)
  • Dependency upgrade: v3-3.22.6 (#202207011616, #202207011617, #20220701161601, #20220701161701)

"" "1.13.2" (2022-06-10)

Bugfixes

  • [file lock] Ensure retries stop when context is asked to terminate (#202206101540)

"" "1.13.1" (2022-06-09)

Bugfixes

  • Dependency upgrade: viper-1.12.0 (#202205271019)
  • Dependency upgrade: v3-3.22.5 (#202206071413, #202206071415, #20220607141301)
  • Dependency upgrade: zerolog-1.27.0 (#202206081224)
  • Dependency upgrade: testify-1.7.2 (#202206081225)

"" "1.13.0" (2022-05-26)

Features

"" "1.12.0" (2022-05-12)

Features

  • Add option to run parseListWithCleanup to keep empty lines (#202205121612)

"" "1.11.1" (2022-05-09)

Bugfixes

  • Dependency upgrade: v3-3.22.4 (#202205021019, #202205021020, #20220502101901)

"" "1.11.0" (2022-04-25)

Features

  • [errors] Added a common error (#202204252100)

"" "1.10.0" (2022-04-25)

Features

  • [errors] Added common errors (#202204251958)

Bugfixes

  • Dependency upgrade: viper-1.11.0 (#202204151015)
  • Dependency upgrade: mapstructure-1.5.0 (#202204211024)
  • Dependency upgrade: go-retryablehttp-0.7.1 (#202204251901)

"" "1.9.0" (2022-04-06)

Features

  • [collection] ParseListWithCleanup is now available for parsing strings containing lists (#202204061624)

Bugfixes

  • Dependency upgrade: v3-3.8.0 (#202203101118)
  • Dependency upgrade: afero-1.8.2 (#202203111118)
  • Dependency upgrade: testify-1.7.1 (#202203161120)
  • Dependency upgrade: v3-3.22.3 (#202204011026, #202204011027, #202204011028, #20220401102601, #20220401102701)

"" "1.8.0" (2022-03-01)

Features

  • [reflection] Possibility to get hold of a pointer (e.g. interface) to any value: ToStructPtr() function (#202203011026)

Bugfixes

  • Dependency upgrade: v3-3.22.2 (#202203011118)

"" "1.7.0" (2022-02-15)

Features

  • Possibility to use standard library http.DefaultClient as a http.IClient (#202202151232)
  • Possibility to create OPTIONS requests using an http.IClient (#202202151234)
  • Added missing mocks (#202202151235)

"" "1.6.0" (2022-02-11)

Features

  • Possibility to define the HTTP client retry policy from configuration (#202202102044)
  • Possibility to use an HTTP client with basic retry policy (policy can take into account the Retry-After header in response or not) (#202202102046)
  • Possibility to use an HTTP client with linear back-off (policy can take into account the Retry-After header in response or not) (#202202102049)

Improved Documentation

  • Documented the different HTTP client implementations and their configuration (#202202102042)

"" "1.5.0" (2022-02-03)

Features

  • Ability to detect the charset of a string using a similar algorithm to ICU (#202202020938)
  • Ability to convert strings from one charset to another in a similar way to iconv or uconv (#202202020941)
  • filesystem.OpenFile is now available as a module function and not just as a method. (#202202031230)

Bugfixes

  • Dependency upgrade: v3-3.7.0 (#202112291129)
  • Dependency upgrade: v3-3.21.12 (#202201031132)
  • Dependency upgrade: afero-1.8.0 (#202201280944)
  • Dependency upgrade: v3-3.22.1 (#202202021122)
  • Modified unzip to behave like 7zip and handle non UTF-8 filenames by converting them after detection (#202202021956)

Improved Documentation

  • Updated file copyright (#202202021119)

"" "1.4.3" (2021-12-19)

Bugfixes

  • Fix how configuration is loaded from flags and environment and clarifies how default values are chosen. (#202112191650)

"" "1.4.2" (2021-12-16)

Bugfixes

  • Dependency upgrade: viper-1.10.0 (#202112131127)
  • Dependency upgrade: viper-1.10.1 (#202112161134)
  • Dependency upgrade: zerolog-1.26.1 (#202112161135)
  • Fixes the CLI to environment variable binding which did not work well with default values provided as part of the CLI flag definition (#202112161725)

Misc

  • #202112161834

"" "1.4.1" (2021-12-03)

Bugfixes

  • Dependency upgrade: uuid-4.1.0incompatible (#202111241131)
  • Dependency upgrade: mapstructure-1.4.3 (#202112021129)
  • Dependency upgrade: uuid 4.2.0+incompatible (#202112031155)
  • Fixed the binding between CLI pflags and environment variables when it comes to nested configuration structures (#202112031255)

"" "1.4.0" (2021-11-09)

Features

  • Added collection utilities for removing elements from slices (#202111091652)

"" "1.3.1" (2021-11-02)

Bugfixes

  • Bumped go version required (#202110151126)
  • Fixed bug in parallisation which entailed a bug in file locking where the heartbeat was forced to stop after a timeout (#202111012244)
  • Dependency upgrade: zerolog-1.26.0 (#202111021125)
  • Dependency upgrade: v3-3.21.10 (#202111021326)

Misc

  • #202110201138

"" "1.3.0" (2021-10-13)

Features

  • Added mocks (#202110131847)

Bugfixes

  • Dependency upgrade: viper-1.9.0 (#202110131703)

"" "1.2.0" (2021-10-13)

Features

  • Made IClient implementations easily configurable (#202110131646)

Bugfixes

  • Dependency upgrade: goleak-1.1.11 (#202109131112)
  • Improved testing and fixed gosec reported error in commonerrors (#202109131145)
  • Dependency upgrade: mapstructure-1.4.2 (#202109161324)
  • Dependency upgrade: godotenv-1.4.0 (#202110041008)
  • Dependency upgrade: goleak-1.1.12 (#202110110900)
  • Dependency upgrade: v3-3.21.9 (#202110131642)

"" "1.1.0" (2021-09-10)

Features

  • Added a way to perform an action after some time: ScheduleAfter (#202109092134)

Bugfixes

  • Dependency upgrade: gopsutil v3-3.21.8 (#202109021259)
  • Dependency upgrade: zerolog-1.24.0 (#202109021331)
  • Fixed Schedule race condition reported by golang race detector (#202109021504)
  • Fixed Subprocess race condition reported by golang race detector (#202109021553)
  • Fixed lock file race condition reported by golang race detector (#202109031636)
  • Introduced deadlock detector where shared resources are used (#202109092209)

Improved Documentation

  • Improved DEVELOPER guide (#202108251951)

Misc

  • #202108260927, #202109021444, #202109031754

"1.0.0" (2021-08-25)"1.0.0" (2021-08-25)

Major changes

  • Initial Release (#202108121209)
  • Changed imports to ARM-software organisation (#202108121238)

Improved Documentation

  • Added guides (#202108121209)
  • Added Licence headers (#202108121730)

Misc

  • #202108131530, #202108231725