pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/CHANGELOG.md (about)

     1  ## Changelog
     2  
     3  ### 12.41.0
     4  
     5  * `[usage]` Added helpers for generating a string representation of `Command` and `Option`
     6  * `[fsutil]` Improved errors description for `ValidatePerms`
     7  
     8  ### 12.40.0
     9  
    10  * `[ansi]` Added methods for working with byte slices
    11  * `[secstr]` Added method `IsEmpty` for checking empty strings
    12  * `[fmtutil]` Method `Wrap` was rewritten from scratch
    13  * `[fmtutil]` Method `Wrap` now ignores ANSI/VT100 control sequences
    14  * `[timeutil]` Method `ParseDuration` was rewritten from scratch
    15  * `[timeutil]` Method `ParseDuration` now allows to define default modificator
    16  * `[usage]` Code refactoring
    17  
    18  ### 12.39.1
    19  
    20  * `[knf]` Fixed bug with naming tests source files
    21  
    22  ### 12.39.0
    23  
    24  * `[fmtc]` Added TrueColor support
    25  * `[system]` Improved macOS support
    26  * `[netutil]` Improved macOS support
    27  * `[system]` Fixed bug with extracting macOS version
    28  * `[system]` Fixed bug with extracting macOS arch info
    29  * `[fmtc]` Code refactoring
    30  * `[system]` Code refactoring
    31  * Added more stubs for macOS
    32  * Improved stubs for Windows
    33  
    34  ### 12.38.1
    35  
    36  * Fixed build tags for Go ≤ 1.16
    37  
    38  ### 12.38.0
    39  
    40  * `[usage]` Improved color customization for application name and version
    41  * `[usage]` Added color customization for application name in usage info
    42  
    43  ### 12.37.0
    44  
    45  * `[strutil]` Added helper `Q` for working with default values
    46  * `[usage]` Added color customization for application name and version
    47  
    48  ### 12.36.0
    49  
    50  * `[system]` Added CPU architecture bits info to `SystemInfo`
    51  
    52  ### 12.35.1
    53  
    54  * `[passwd]` Fixed typo in deprecation notice
    55  
    56  ### 12.35.0
    57  
    58  * `[secstr]` New package for working with protected (secure) strings
    59  * `[req]` Method `Query.String()` renamed to `Query.Encode()`
    60  * `[passwd]` Added method `GenPasswordVariations` and `GenPasswordBytesVariations` for generating password variations with possible typos fixes
    61  * `[passwd]` Added methods `HashBytes`, `CheckBytes`, `GenPasswordBytes` and `GetPasswordBytesStrength`
    62  * `[passwd]` Method `Encrypt` marked as depricated (_use `Hash` method instead_)
    63  * `[passwd]` Added more usage examples
    64  
    65  ### 12.34.0
    66  
    67  * `[fsutil]` Added method `TouchFile` for creating empty files
    68  * `[fsutil]` Code refactoring
    69  * `[fmtc]` Documentation refactoring
    70  * `[timeutil]` Documentation refactoring
    71  * `[fsutil]` Added usage examples
    72  
    73  ### 12.33.0
    74  
    75  * `[errutil]` Added support for `string`, `[]string`, and `errutil.Errors` types to method `Errors.Add`
    76  * `[fmtutil]` Added method `PrettyBool` for formatting boolean values
    77  
    78  ### 12.32.0
    79  
    80  * `[fmtutil]` Added method `PrettyDiff` for formatting diff numbers
    81  * `[fmtutil]` Fixed bug in `PrettyNum` with formatting negative numbers
    82  * `[fmtutil]` Code refactoring
    83  
    84  ### 12.31.0
    85  
    86  * `[errutil]` Added method `Reset` for resetting `Errors` instance
    87  * `[sliceutil]` Added methods `Copy`, `CopyInts` and `CopyFloats` for copying slices
    88  * `[csv]` Code refactoring
    89  * `[sliceutil]` Code refactoring
    90  
    91  ### 12.30.0
    92  
    93  * `[ansi]` New package for working with ANSI/VT100 control sequences
    94  * `[terminal]` Added fmtc color codes support in input prompt
    95  * `[terminal]` Fixed bug with masking password if prompt contains ANSI color codes
    96  * `[strutil]` Code refactoring
    97  * `[options]` Added more usage examples
    98  
    99  ### 12.29.0
   100  
   101  * `[errutil]` Added method `Cap` for getting max capacity
   102  * `[system/sensors]` Added sorting by the name for slice with devices info
   103  * `[errutil]` Added more usage examples
   104  
   105  ### 12.28.0
   106  
   107  * `[fmtc]` `NO_COLOR` support
   108  * `[fmtc]` Code refactoring
   109  
   110  ### 12.27.0
   111  
   112  * `[httputil]` Added method `GetPortByScheme`
   113  * `[events]` Improved unknown events handling
   114  * `[system/sensors]` Code refactoring
   115  * `[system/sensors]` Increased code coverage (0.0% → 100.0%)
   116  * `[events]` Added usage examples
   117  * `[httputil]` Added usage examples
   118  * Error check moved at the beginning of every test
   119  
   120  ### 12.26.0
   121  
   122  * `[events]` New package for creating event-driven systems
   123  * `[system]` Fixed bug with parsing CPU info data
   124  * `[fsutil]` Added method `IsEmpty` for checking empty files
   125  * `[system/process]` Fixed bug with searching info for creating process tree
   126  * `[knf]` Code refactoring
   127  * `[usage]` Added more usage examples
   128  
   129  ### 12.25.0
   130  
   131  * `[color]` Added method `Parse` for parsing colors (`#RGB`/`#RGBA`/`#RRGGBB`/`#RRGGBBAA`)
   132  * `[color]` Fixed bug with formatting small values using `Hex.ToWeb`
   133  * `[color]` Fixed bug with converting `Hex` to `RGBA`
   134  
   135  ### 12.24.2
   136  
   137  * `[easing]` Added links to examples for every function
   138  * `[easing]` Added usage examples
   139  
   140  ### 12.24.1
   141  
   142  * `[color]` Added three-digit RGB notation generation to `Hex.ToWeb`
   143  
   144  ### 12.24.0
   145  
   146  * `[color]` Using structs for color models instead of bare numbers
   147  * `[color]` Much simpler converting between color models
   148  * `[color]` Added method `RGB2CMYK` for converting RGB colors to CMYK
   149  * `[color]` Added method `CMYK2RGB` for converting CMYK colors to RGB
   150  * `[color]` Added method `RGB2HSL` for converting RGB colors to HSL
   151  * `[color]` Added method `HSL2RGB` for converting HSL colors to RGB
   152  * `[color]` Added method `Luminance` for calculating relative luminance for RGB color
   153  * `[color]` Added method `Contrast` for calculating contrast ratio of foreground and background colors
   154  * `[color]` Method `RGB2HSB` rewritten from scratch and renamed to `RGB2HSV`
   155  * `[color]` Method `HSB2RGB` rewritten from scratch and renamed to `HSV2RGB`
   156  * `[color]` Added more usage examples
   157  
   158  
   159  ### 12.23.0
   160  
   161  * `[cache]` Renamed `Store` to `Cache`
   162  * `[cache]` Added method `Size` for checking cache size
   163  * `[cache]` Added method `Expired` for checking number of expired items
   164  
   165  ### 12.22.0
   166  
   167  * `[timeutil]` Added more new helpers
   168  * `[log]` Code refactoring
   169  * `[log]` Improved tests
   170  
   171  ### 12.21.0
   172  
   173  * `[knf]` Added new getter `GetD` which returns valus as duration in seconds
   174  * `[system/process]` Improved tests
   175  
   176  ### 12.20.3
   177  
   178  * `go-check` package replaced by [our fork](https://kaos.sh/check)
   179  * `[cron]` Removed useless example
   180  * `[knf/validators/fs]` Fixed bug with handling pattern matching error
   181  * `[path]` Fixed usage examples
   182  
   183  ### 12.20.2
   184  
   185  * `[terminal]` Usage examples improvements
   186  
   187  ### 12.20.1
   188  
   189  * `[system/process]` Fixed stubs for Windows
   190  
   191  ### 12.20.0
   192  
   193  * `[system/process]` Added methods for setting and getting CPU scheduler priority
   194  * `[system/process]` Added methods for setting and getting IO scheduler priority
   195  
   196  ### 12.19.0
   197  
   198  * `[system]` Added method `GetCPUCount` for getting info about number of CPU's
   199  * `[system/process]` Added method `GetMountInfo` for getting info about process mounts
   200  * `[system]` Code refactoring
   201  * `[system/process]` Code refactoring
   202  * `[system]` Increased code coverage (78.5% → 90.5%)
   203  * `[system/process]` Increased code coverage (82.4% → 98.0%)
   204  
   205  ### 12.18.1
   206  
   207  * `[sliceutil]` Added usage examples
   208  
   209  ### 12.18.0
   210  
   211  * `[strutil]` Added methods `HasPrefixAny` and `HasSuffixAny` for checking multiple prefixes or suffixes at once
   212  
   213  ### 12.17.1
   214  
   215  * `[path]` Fixed stubs for Windows
   216  
   217  ### 12.17.0
   218  
   219  * `[options]` Method `Parse` now returns arguments as `Arguments` struct with additional methods for working with them
   220  * `[strutil]` Added methods `Before` and `After` for extracting strings before and after some substring
   221  * `[progress]` Fixed bug with rendering resulting progress bar in some situations
   222  * `[progress]` Using integer instead of floats for progress if total size is less than 1000 and `IsSize` set to false
   223  
   224  ### 12.16.0 
   225  
   226  * `[path]` Added new method for checking Unix-type globs
   227  * `[fsutil]` Fixed stubs for Windows
   228  * `[progress]` Minor UI fix
   229  
   230  ### 12.15.1
   231  
   232  * `[usage/completion/bash]` Code refactoring
   233  
   234  ### 12.15.0
   235  
   236  * `[spinner]` Added new package for showing spinner animation for long-running tasks
   237  * `[timeutil]` Added high precision mode for `ShortDuration`
   238  
   239  ### 12.14.1
   240  
   241  * `[fmtc/lscolors]` Improved environment variable parsing
   242  
   243  ### 12.14.0
   244  
   245  * `[fmtc/lscolors]` Added new package for colorizing file names with colors from dircolors
   246  
   247  ### 12.13.0
   248  
   249  * `[usage/completion/bash]` Improved completion generation
   250  * `[usage/completion/zsh]` Improved completion generation
   251  * `[usage/completion/bash]` Fixed bug with showing files with autocomplete
   252  * `[usage/completion/zsh]` Fixed bug with showing files with autocomplete
   253  
   254  ### 12.12.0
   255  
   256  * `[timeutil]` Added method `PrettyDurationInDays` for rendering pretty duration in days
   257  * `[timeutil]` Code refactoring
   258  
   259  ### 12.11.0
   260  
   261  * `[timeutil]` Added checking for parsing errors to `ParseDuration` method
   262  
   263  ### 12.10.1
   264  
   265  * `[req]` Code refactoring
   266  
   267  ### 12.10.0
   268  
   269  * `[usage/man]` Added package for generating man pages from usage info
   270  
   271  ### 12.9.0
   272  
   273  * `[usage/update]` Disabled update check from CI environments
   274  
   275  ### 12.8.1
   276  
   277  * `[knf/validators/system]` Fixed bug with source file naming
   278  
   279  ### 12.8.0
   280  
   281  * `[log]` Removed useless return value from `Aux`, `Debug`, `Info`, `Warn`, `Error`, `Crit` and `Print` methods
   282  
   283  ### 12.7.0
   284  
   285  * `[knf/validators/regexp]` Added new KNF validator for checking regular expression pattern matching
   286  * `[knf/validators/fs]` Added new KNF validator for checking shell pattern matching
   287  * `[fsutil]` Fixed bug with checking empty dirs on osx
   288  * `[initsystem]` Disabled tests on osx
   289  * `[knf/validators/fs]` Fixed tests on osx
   290  * `[knf/validators/system]` Fixed compatibility with osx
   291  * `[log]` Fixed tests on OSX
   292  * `[system]` Fixed checking user or group existence on OSX
   293  * `[system]` Fixed group lookup on osx
   294  * `[system]` Improved user info fetching on OSX
   295  
   296  ### 12.6.1
   297  
   298  * `[path]` Code refactoring
   299  * `[path]` Added more usage examples
   300  * `[timeutil]` Added more usage examples
   301  
   302  ### 12.6.0
   303  
   304  * `[timeutil]` Added method `SecondsToDuration` for convertation `float64` to `time.Duration`
   305  * `[timeutil]` `DurationToSeconds` now returns the result as a float64 number
   306  * `[hash]` Code refactoring
   307  
   308  ### 12.5.2
   309  
   310  * `[system]` Fixed compatibility with Go ≥ 1.15
   311  
   312  ### 12.5.1
   313  
   314  * License changed from EKOL to Apache-2.0
   315  
   316  ### 12.5.0
   317  
   318  * `[req]` Added method `Bytes()` for reading response body as byte slice
   319  * `[env]` Fixed tests
   320  
   321  ### 12.4.0
   322  
   323  * `[timeutil]` Added method `ShortDuration` for duration formatting
   324  * `[timeutil]` Code refactoring
   325  
   326  ### 12.3.0
   327  
   328  * `[progress]` Calculate speed and remaining time using Exponentially Weighted Moving Average (EWMA)
   329  * `[progress]` Added pass thru writer
   330  
   331  ### 12.2.0
   332  
   333  * `[progress]` Added package for creating terminal progress bar
   334  * `[usage/update]` Increased dial and request timeouts to 3 seconds
   335  * `[fmtutil]` Added possibility to define custom separators in `PrettySize` and `PrettyNum` methods
   336  * `[passwd]` Increased code coverage (94.9% → 96.8%)
   337  * `[usage/update]` Increased code coverage (92.1% → 100%)
   338  * `[req]` Tests refactoring
   339  
   340  ### 12.1.0
   341  
   342  * `[usage/update]` Added update checker for custom storages
   343  
   344  ### 12.0.0
   345  
   346  * `[path]` Added method `DirN` for reading N elements from path
   347  * `[pluralize]` Methods `Pluralize` and `PluralizeSpecial` now return only pluralized word (_incompatible changes_)
   348  * `[pluralize]` Added methods `P` and `PS` for pluralization with custom formatting
   349  * `[pluralize]` Added usage examples
   350  
   351  ---
   352  
   353  ### 11.6.3
   354  
   355  * `[usage]` Added more examples
   356  
   357  ### 11.6.2
   358  
   359  * `[cron]` Added usage examples
   360  
   361  ### 11.6.1
   362  
   363  * `[system]` Fixed bug with parsing group info in `id` output
   364  
   365  ### 11.6.0
   366  
   367  * `[usage]` Added support of raw examples (_without prefix with command name_)
   368  
   369  ### 11.5.2
   370  
   371  * `[errutil]` Fixed panic in `Add` if given Errors struct is nil
   372  
   373  ### 11.5.1
   374  
   375  * `[color]` Fixed compatibility with ARM
   376  * `[fmtutil]` Fixed compatibility with ARM
   377  * `[system]` Fixed compatibility with ARM
   378  
   379  ### 11.5.0
   380  
   381  * `[signal]` Added method `GetByName` for getting signal by its name
   382  * `[signal]` Added method `GetByCode` for getting signal by its code
   383  
   384  ### 11.4.0
   385  
   386  * `[fsutil]` Added method `ValidatePerms` for permissions validation
   387  * `[system]` Improved current user info caching mechanic
   388  * `[fsutil]` Increased code coverage (98.0% → 98.8%)
   389  
   390  ### 11.3.1
   391  
   392  * `[initsystem]` Fixed stubs for Windows
   393  
   394  ### 11.3.0
   395  
   396  * `[log]` Logger is now more concurrency friendly
   397  
   398  ### 11.2.2
   399  
   400  * `[log]` Default color for debug messages set to light gray
   401  
   402  ### 11.2.1
   403  
   404  * `[cache]` Added data removal from cache with disabled janitor
   405  
   406  ### 11.2.0
   407  
   408  * `[cache]` Added method `Has` for checking item existence
   409  * `[cache]` Janitor thread will not run if the cleaning interval is equal to 0
   410  
   411  ### 11.1.0
   412  
   413  * `[pid]` Added method `Read` for reading PID files without any configuration
   414  
   415  ### 11.0.1
   416  
   417  * `[knf]` Minor documentation fixes
   418  
   419  ### 11.0.0
   420  
   421  * `[fsutil]` `GetPerms` renamed to `GetMode`
   422  * `[fsutil]` Added support of checking for character and block devices (`C` and `B`)
   423  * `[knf]` Validators moved to sub-package (_incompatible changes_)
   424  * `[knf]` Added more validators
   425  * `[knf]` Removed useless dependencies
   426  * `[fsutil]` Increased code coverage (97.4% → 98.0%)
   427  * `[kv]` Package removed
   428  
   429  ---
   430  
   431  ### 10.18.1
   432  
   433  * `[strutil]` Fixed bug in `Substr` method for a situation when the index of start symbol is greater than the length of the string
   434  * `[strutil]` Fixed bug in `Substring` method for a situation when the index of start symbol is greater than the length of the string
   435  
   436  ### 10.18.0
   437  
   438  * `[knf]` Added `no` as a valid boolean value for `GetB`
   439  * `[knf]` Added new validators for property type validation
   440  * `[knf]` Code refactoring
   441  
   442  ### 10.17.0
   443  
   444  * `[cache]` Added package which provides simple in-memory key:value store
   445  
   446  ### 10.16.0
   447  
   448  * `[timeutil]` Added support of short durations (_milliseconds, microseconds or nanoseconds_) to `PrettyDuration` method
   449  
   450  ### 10.15.0
   451  
   452  * `[log]` Added support of ANSI colors in the output
   453  * `[log]` Using `uint8` for level codes instead of `int`
   454  
   455  ### 10.14.0
   456  
   457  * `[version]` Added method `IsZero` for checking empty version struct
   458  
   459  ### 10.13.1
   460  
   461  * `[errutil]` Method `Add` now allows adding slices with errors
   462  
   463  ### 10.13.0
   464  
   465  * `[errutil]` Added possibility to limit the number of errors to store
   466  * `[errutil]` Method `Add` now allows adding errors from other Errors struct
   467  * `[sliceutil]` Using in-place deduplication in `Deduplicate` method
   468  
   469  ### 10.12.2
   470  
   471  * `[req]` Changed default user-agent to `go-ek-req/10`
   472  
   473  ### 10.12.1
   474  
   475  * `[usage]` Fixed bug with formatting options without short name
   476  
   477  ### 10.12.0
   478  
   479  * `[req]` Added method `PostFile` for multipart file uploading
   480  
   481  ### 10.11.1
   482  
   483  * `[fsutil]` Fixed bug with filtering listing data
   484  
   485  ### 10.11.0
   486  
   487  * `[pid]` Added method `IsProcessWorks` for checking process state by PID
   488  * `[pid]` Improved process state check
   489  * `[pid]` Improved Mac OS X support
   490  
   491  ### 10.10.2
   492  
   493  * `[terminal]` Reading user input now is more stdin friendly (_you can pass the input through the stdin_)
   494  
   495  ### 10.10.1
   496  
   497  * `[usage]` Fixed bug with formatting options
   498  * `[fmtutil/table]` More copy&paste friendly table rendering
   499  
   500  ### 10.10.0
   501  
   502  * `[emoji]` New package for working with emojis
   503  
   504  ### 10.9.1
   505  
   506  * `[usage/completion/bash]` Improved bash completion generation
   507  
   508  ### 10.9.0
   509  
   510  * `[usage/completion/bash]` Added bash completion generator
   511  * `[usage/completion/zsh]` Added zsh completion generator
   512  * `[usage/completion/fish]` Added fish completion generator
   513  * `[usage]` Added method `info.BoundOptions` for linking command with options
   514  * `[csv]` Added method `reader.ReadTo` for reading CSV data into slice
   515  * `[strutil]` Fixed bug in `Fields` method
   516  * `[initsystem]` Added caching for initsystem usage status
   517  * `[initsystem]` Improved service state search for SysV scripts on systems with Systemd
   518  * `[usage]` Code refactoring
   519  
   520  ### 10.8.0
   521  
   522  * `[strutil]` Added method `Exclude` as the faster replacement for `strings.ReplaceAll`
   523  
   524  ### 10.7.1
   525  
   526  * `[fmtutil]` Fixed bug with formatting small float numbers using `PrettySize` method
   527  
   528  ### 10.7.0
   529  
   530  * `[jsonutil]` Added `Write` as alias for `EncodeToFile`
   531  * `[jsonutil]` Added `Read` as alias for `DecodeFile`
   532  * `[jsonutil]` Added `WriteGz` for writing gzipped JSON data
   533  * `[jsonutil]` Added `ReadGz` for reading gzipped JSON data
   534  
   535  ### 10.6.0
   536  
   537  * `[strutil]` Improved parsing logic for the `Fields` method
   538  * `[strutil]` Added additional supported quotation marks types
   539  
   540  ### 10.5.1
   541  
   542  * `[initsystem]` Fixed bug with parsing systemd's `failed` ActiveState status
   543  * `[initsystem]` Added tests for output parsers
   544  * `[initsystem]` Code refactoring
   545  
   546  ### 10.5.0
   547  
   548  * `[fmtc]` Added new methods `LPrintf`, `LPrintln`, `TLPrintf` and `TLPrintln`
   549  * `[fmtc]` Fixed bug with parsing reset and modification tags (_found by go-fuzz_)
   550  * `[fmtc]` Code refactoring
   551  
   552  ### 10.4.0
   553  
   554  * `[fmtc]` Improved work with temporary output (`TPrintf`, `TPrintln`)
   555  
   556  ### 10.3.0
   557  
   558  * `[fsutil]` Added method `IsReadableByUser` for checking read permission for some user
   559  * `[fsutil]` Added method `IsWritableByUser` for checking write permission for some user
   560  * `[fsutil]` Added method `IsExecutableByUser` for checking execution permission for some user
   561  
   562  ### 10.2.0
   563  
   564  * `[version]` Added method `Simple()` which returns simple version
   565  * `[version]` More usage examples added
   566  
   567  ### 10.1.0
   568  
   569  * `[system]` Improved OS version search
   570  * `[tmp]` Package refactoring
   571  
   572  ### 10.0.0
   573  * `[system]` Added method `GetCPUInfo` for fetching info about CPUs from procfs
   574  * `[fmtutil/table]` Added global variable `MaxWidth` for configuration of maximum table width
   575  * `[system]` `FSInfo` now is `FSUsage` (_incompatible changes_)
   576  * `[system]` `MemInfo` now is `MemUsage` (_incompatible changes_)
   577  * `[system]` `CPUInfo` now is `CPUUsage` (_incompatible changes_)
   578  * `[system]` `InterfaceInfo` now is `InterfaceStats` (_incompatible changes_)
   579  * `[system]` `GetFSInfo()` now is `GetFSUsage()` (_incompatible changes_)
   580  * `[system]` `GetMemInfo()` now is `GetMemUsage()` (_incompatible changes_)
   581  * `[system]` `GetCPUInfo()` now is `GetCPUUsage()` (_incompatible changes_)
   582  * `[system]` `GetInterfacesInfo()` now is `GetInterfacesStats()` (_incompatible changes_)
   583  * `[initsystem]` `HasService()` now is `IsPresent()` (_incompatible changes_)
   584  * `[initsystem]` `IsServiceWorks()` now is `IsWorks()` (_incompatible changes_)
   585  * `[system]` Fixed bug with parsing CPU stats data (_found by go-fuzz_)
   586  * `[fmtc]` Fixed bug with parsing reset and modification tags (_found by go-fuzz_)
   587  * `[initsystem]` Fixed examples
   588  * `[fmtc]` Fixed examples
   589  * `[system]` Added fuzz testing
   590  * `[cron]` Code refactoring
   591  * `[timeutil]` Code refactoring
   592  * `[fmtutil]` Increased code coverage (97.9% → 100.0%)
   593  * `[fmtutil/table]` Increased code coverage (99.4% → 100.0%)
   594  * `[knf]` Increased code coverage (99.6% → 100.0%)
   595  * `[req]` Increased code coverage (97.1% → 100.0%)
   596  * `[pid]` Increased code coverage (97.4% → 100.0%)
   597  * `[system]` Increased code coverage (73.8% → 79.0%)
   598  
   599  ---
   600  
   601  ### 9.28.1
   602  
   603  * `[initsystem]` Improved application state checking in systemd
   604  * `[system]` Fixed typo in json tag for `CPUInfo.Average`
   605  
   606  ### 9.28.0
   607  
   608  * `[system]` Improved memory usage calculation
   609  * `[system]` Added `Shmem` and `SReclaimable` values to `MemInfo` struct
   610  * `[system]` Fixed typo in json tag for `MemInfo.SwapCached`
   611  * `[system]` Improved tests
   612  
   613  ### 9.27.0
   614  
   615  * `[system/sensors]` Added package for collecting sensors data
   616  * `[strutil]` Added method `Substring` for safe substring extraction
   617  * `[strutil]` Added method `Extract` for safe substring extraction
   618  * `[strutil]` Fixed tests and example for `Substr` method
   619  * `[strutil]` Improved tests
   620  * `[strutil]` Code refactoring
   621  
   622  ### 9.26.3
   623  
   624  * `[strutil]` Optimization and improvements for `ReadField` method
   625  * `[easing]` Code refactoring
   626  * `[fmtutil]` Code refactoring
   627  * `[knf]` Code refactoring
   628  * `[log]` Code refactoring
   629  * `[options]` Code refactoring
   630  * `[pid]` Code refactoring
   631  * `[req]` Code refactoring
   632  * `[sliceutil]` Code refactoring
   633  * `[strutil]` Code refactoring
   634  * `[system]` Code refactoring
   635  * `[terminal]` Code refactoring
   636  * `[timeutil]` Code refactoring
   637  * `[uuid]` Code refactoring
   638  
   639  ### 9.26.2
   640  
   641  * `[fmtc]` Fixed bug with parsing `{}` and `{-}` as valid color tags
   642  * `[fmtc]` Added fuzz testing
   643  
   644  ### 9.26.1
   645  
   646  * `[fmtutil/table]` Fixed bug with rendering data using not-configured table
   647  
   648  ### 9.26.0
   649  
   650  * `[sliceutil]` Added method `Index` which return index of given item in slice
   651  
   652  ### 9.25.2
   653  
   654  * `[fmtutil]` Improved size parser
   655  
   656  ### 9.25.1
   657  
   658  * `[fmtutil]` Fixed various bugs with processing NaN values
   659  
   660  ### 9.25.0
   661  
   662  * `[req]` Added constants with status codes
   663  
   664  ### 9.24.0
   665  * `[req]` Added method `String` for `Query` struct for query encoding
   666  
   667  ### 9.23.0
   668  
   669  * `[log]` Added wrapper for compatibility with stdlib logger
   670  * `[log]` Fixed race condition issue
   671  
   672  ### 9.22.3
   673  
   674  * `[usage]` Fixed bug with aligning option info with Unicode symbols
   675  * `[options]` Guess option type by default value type
   676  * `[options]` Added check for unsupported default value type
   677  
   678  ### 9.22.2
   679  
   680  * `[system/process]` Fixed windows stubs
   681  
   682  ### 9.22.1
   683  
   684  * `[fsutil]` Improved `CopyDir` method
   685  
   686  ### 9.22.0
   687  
   688  * `[fsutil]` Added method `CopyDir` for recursive directories copying
   689  * `[fsutil]` Removed useless method `Current`
   690  * `[fsutil]` Tests refactoring
   691  * `[fsutil]` Code refactoring
   692  
   693  ### 9.21.0
   694  
   695  * `[system/process]` Added new type `ProcSample` as a lightweight analog of ProcInfo for CPU usage calculation
   696  * `[system/process]` Code refactoring
   697  * `[system/process]` Increased code coverage (75.5% → 82.4%)
   698  * `[system]` Code refactoring
   699  
   700  ### 9.20.1
   701  
   702  * `[fmtutil]` Added method `PrettyPerc` for formatting values in percentages
   703  
   704  ### 9.20.0
   705  
   706  * `[fmtc]` Added methods `Print` and `Sprintln` for better compatibility with `fmt` package
   707  * `[fmtutil/table]` Fixed minor bug with output formatting
   708  * `[options]` Code refactoring
   709  
   710  ### 9.19.0
   711  
   712  * `[directio]` Added sub-package `directio` for writing/reading data with using direct IO
   713  * `[fmtc]` 256 colors support with new tags (foreground: `{#000}`, background: `{%000}`)
   714  * `[fmtc]` Added method `Is256ColorsSupported` for checking support of 256 color output
   715  * `[fmtc]` Improved color tags syntax
   716  * `[fmtc]` Added tags for resetting modificators (e.g. `{!*}`)
   717  * `[fmtc]` Removed color tags overriding (i.e. now `{*}{r} == {r*}`)
   718  * `[color]` Added method `RGB2Term` for converting RGB colors to terminal color codes
   719  
   720  ### 9.18.1
   721  
   722  * `[system]` Fixed bug with extra new line symbol in user `Shell` field
   723  
   724  ### 9.18.0
   725  
   726  * `[fmtc]` Temporary output feature moved from T struct to `TPrintf` and `TPrintln`
   727  
   728  ### 9.17.4
   729  
   730  * Dependencies now download with initial `go get` command
   731  
   732  ### 9.17.3
   733  
   734  * `[options]` Fixed bug with using `Bound` or `Conflict` fields for options (thx to @gongled)
   735  * `[netutil]` Code refactoring
   736  * `[netutil]` Increased code coverage (78.8% → 87.9%)
   737  
   738  ### 9.17.2
   739  
   740  * `[netutil]` Improved main IP search
   741  
   742  ### 9.17.1
   743  
   744  * `[strutil]` Added usage example for `Copy` method
   745  * `[system/procname]` Added usage examples
   746  
   747  ### 9.17.0
   748  
   749  * `[netutil]` Ignore TUN/TAP interfaces while searching main IP address
   750  * `[initsystem]` Added method `IsEnabled` which return info about service autostart
   751  * `[initsystem]` Method `GetServiceState` renamed to `IsServiceWorks`
   752  * `[strutil]` Added method `Copy` for forced copying of strings
   753  
   754  ### 9.16.0
   755  
   756  * `[strutil]` Improved `Fields` parsing
   757  * `[fmtutil/table]` Added method `RenderHeaders` for forced headers rendering
   758  
   759  ### 9.15.0
   760  
   761  * `[strutil]` Added ellipsis suffix customization
   762  * `[strutil]` Added support of custom separators for `ReadField`
   763  * `[req]` Closing response body after parsing data
   764  * `[system]` Fixed bug with parsing `id` command output with empty group names
   765  * `[system]` Fixed bug with calculating transferred bytes on active interfaces
   766  * `[system]` Improved `id` and `getent` commands output parsing
   767  * `[system]` Code refactoring
   768  
   769  ### 9.14.5
   770  
   771  * `[terminal]` Fixed bug with empty title output
   772  
   773  ### 9.14.4
   774  
   775  * `[system]` Code refactoring
   776  
   777  ### 9.14.3
   778  
   779  * `[initsystem]` Fixed bug with checking service state in systemd
   780  
   781  ### 9.14.2
   782  
   783  * `[system]` Fixed windows stubs
   784  * `[system]` Fixed bug with unclosed file descriptor
   785  
   786  ### 9.14.1
   787  
   788  * `[initsystem]` Fixed bug in SysV service state determination
   789  
   790  ### 9.14.0
   791  
   792  * `[strutil]` Added new method `ReadField` for reading space/tab separated fields from given data
   793  * `[system]` Code refactoring
   794  
   795  ### 9.13.0
   796  
   797  * `[system]` Improved CPU usage calculation
   798  * `[system/process]` Code refactoring
   799  * `[system]` Code refactoring
   800  
   801  ### 9.12.0
   802  
   803  * `[knf]` Added new validators: `NotLen`, `NotPrefix` and `NotSuffix`
   804  * `[knf]` Validators code refactoring
   805  
   806  ### 9.11.2
   807  
   808  * `[system/process]` Fixed bug with parsing CPU data
   809  * `[system/process]` Increased code coverage (0.0% → 87.5%)
   810  * `[usage/update]` Increased code coverage (0.0% → 80.0%)
   811  
   812  ### 9.11.1
   813  
   814  * `[system/process]` Improved error handling in `GetInfo`
   815  
   816  ### 9.11.0
   817  
   818  * `[system]` Improved IO utilization calculation
   819  * `[system]` Improved network speed calculation
   820  
   821  ### 9.10.0
   822  
   823  * `[system]` Added method `GetCPUStats` which return basic CPU info from `/proc/stat`
   824  * `[system]` Improved IO utilization calculation
   825  
   826  ### 9.9.2
   827  
   828  * `[initsystem]` Added stubs for windows
   829  
   830  ### 9.9.1
   831  
   832  * Code refactoring
   833  
   834  ### 9.9.0
   835  
   836  * `[system]` Improved disk usage calculation (now it similar to `df` command output)
   837  
   838  ### 9.8.0
   839  
   840  * `[initsystem]` New package for working with different init systems (sysv, upstart, systemd)
   841  
   842  ### 9.7.1
   843  
   844  * `[fmtc]` Improved utf8 support in temporary messages
   845  
   846  ### 9.7.0
   847  
   848  * `[fmtc]` Added method `NewT` which creates a new struct for working with the temporary output
   849  * `[fmtc]` More docs about color tags
   850  * `[knf]` Removing trailing spaces from property values
   851  
   852  ### 9.6.0
   853  
   854  * `[system/procname]` Added method `Replace` which replace just one argument in process command
   855  
   856  ### 9.5.0
   857  
   858  * `[knf]` Added new getters `GetU`, `GetU64` and `GetI64`
   859  * `[usage]` Improved API for `NewInfo` method
   860  
   861  ### 9.4.0
   862  
   863  * `[options]` Added support of mixed options (string / bool)
   864  
   865  ### 9.3.0
   866  
   867  * `[terminal]` Improved title rendering for `ReadAnswer` method
   868  * `[terminal]` Simplified API for `ReadAnswer` method
   869  
   870  ### 9.2.0
   871  
   872  * `[fmtutil]` Improved floating numbers formatting with `PrettyNum`
   873  
   874  ### 9.1.4
   875  
   876  * `[fmtutil/table]` Fixed bug with color tags in headers when colors is disabled
   877  
   878  ### 9.1.3
   879  
   880  * `[timeutil]` Fixed bug with formatting milliseconds
   881  * `[timeutil]` Improved tests
   882  
   883  ### 9.1.2
   884  
   885  * `[terminal]` Fixed bug with masking password in tmux
   886  
   887  ### 9.1.1
   888  
   889  * `[fmtutil/table]` Fixed bug with rendering data with color tags
   890  
   891  ### 9.1.0
   892  
   893  * `[version]` Fixed bug with version comparison
   894  * `[version]` Added method `Int()` which return version as integer
   895  
   896  ### 9.0.0
   897  
   898  * Package `args` renamed to `options` (_incompatible changes_)
   899  * `[fmtutil/table]` Added new package for rendering data as a table
   900  * `[fmtutil]` Added support of separator symbol configuration
   901  * `[usage]` Improved output about a newer version
   902  * `[usage]` Increased code coverage (0.0% → 100%)
   903  * `[usage]` Code refactoring
   904  
   905  ---
   906  
   907  ### 8.0.3
   908  
   909  * `[usage]` Improved options and commands info rendering
   910  
   911  ### 8.0.2
   912  
   913  * Overall documentation improvements
   914  
   915  ### 8.0.1
   916  
   917  * `[system/process]` Fixed windows stubs
   918  * `[system]` Package refactoring
   919  * `[fsutil]` Fixed checking empty directory on FreeBSD
   920  * `[pid]` Fixed checking process state on FreeBSD
   921  
   922  ### 8.0.0
   923  
   924  * `[system/process]` Added method `GetMemInfo` for obtaining information about memory consumption by process.
   925  * `[system/process]` Added method `GetInfo` which return partial info from `/proc/[PID]/stat`.
   926  * `[system/process]` Added method `CalculateCPUUsage` which can be used for process CPU usage calculation.
   927  * `[system]` Methods for executing commands moved to `system/exec` package (_incompatible changes_)
   928  * `[system]` Methods for changing process name moved to `system/procname` package (_incompatible changes_)
   929  * `[system]` Minor improvements
   930  * `[system]` Code refactoring
   931  * `[system]` Increased code coverage (0.0% → 79.5%)
   932  
   933  ---
   934  
   935  ### 7.5.0
   936  
   937  * `[errutil]` Implemented error interface (_added method_ `Error() string`)
   938  * `[errutil]` Minor improvements
   939  * `[system]` Fixed windows stubs
   940  
   941  ### 7.4.0
   942  
   943  * `[fmtutil]` Added flag `SeparatorFullscreen` which enable full size separator
   944  * `[terminal/window]` Window size detection code moved from `terminal` to `terminal/window` package
   945  * `[terminal/window]` Fixed bug with unclosed TTY file descriptor
   946  * `[fsutil]` Fixed bug with `fsutil.IsLink` (_method returns true for symlinks_)
   947  * `[fsutil]` Fixed bug with `fsutil.GetSize` (_method returns 0 for non-existent files_)
   948  * `[fsutil]` Improved input arguments checks in `fsutil.CopyFile`
   949  * `[fsutil]` Added input arguments checks to `fsutil.MoveFile`
   950  * `[fsutil]` Increased code coverage (49.8% → 97.9%)
   951  * `[knf]` Increased code coverage (99.2% → 99.6%)
   952  * `[jsonutil]` Increased code coverage (92.3% → 100%)
   953  
   954  ### 7.3.0
   955  
   956  * `[sortutil]` Added methods `NatualLess` and `StringsNatual` for natural ordering
   957  * `[jsonutil]` Added optional argument to `EncodeToFile` method with file permissions (0644 by default)
   958  * `[jsonutil]` Code refactoring
   959  * `[jsonutil]` Improved tests
   960  * `[jsonutil]` Added usage examples
   961  
   962  ### 7.2.0
   963  
   964  * `[knf]` Return default value for the property even if config struct is nil
   965  
   966  ### 7.1.0
   967  
   968  * `[system]` Added methods `CalculateNetworkSpeed` and `CalculateIOUtil` for metrics calculation without blocking main thread
   969  * `[system]` Code and examples refactoring
   970  
   971  ### 7.0.3
   972  
   973  * `[passwd]` Fixed panic in `Check` for some rare cases
   974  * `[fsutil]` Fixed typo
   975  * `[pid]` Fixed typo
   976  * `[system]` Fixed typo
   977  * `[tmp]` Fixed typo
   978  * `[knf]` Increased code coverage
   979  
   980  ### 7.0.2
   981  
   982  * `[version]` Fixed bug with version comparison
   983  * `[version]` Improved version data storing model
   984  * `[usage]` Fixed bug with new application version checking mechanics
   985  
   986  ### 7.0.1
   987  
   988  * `[fsutil]` Fixed windows stubs for compatibility with latest changes
   989  
   990  ### 7.0.0
   991  
   992  * `[usage]` Added interface for different ways to check application updates
   993  * `[usage]` Added Github update checker
   994  * `[usage]` Moved `CommandsColorTag`, `OptionsColorTag`, `Breadcrumbs` to `Info` struct (_incompatible changes_)
   995  * `[fsutil]` Now `ListingFilter` must be passed as value instead of pointer (_incompatible changes_)
   996  * `[fsutil]` Added support of filtering by size for `ListingFilter`
   997  * `[version]` Now `Parse` return value instead of pointer
   998  * `[cron]` Improved expressions parsing
   999  * `[version]` Added fuzz testing
  1000  * `[cron]` Added fuzz testing
  1001  * `[knf]` Added fuzz testing
  1002  
  1003  ---
  1004  
  1005  ### 6.2.1
  1006  
  1007  * `[usage]` Improved working with GitHub API
  1008  
  1009  ### 6.2.0
  1010  
  1011  * `[netutil]` Now GetIP return primary IPv4 address
  1012  * `[netutil]` Added method `GetIP6` which return main IPv6 address
  1013  * `[usage]` Showing info about latest available release on GitHub
  1014  
  1015  ### 6.1.0
  1016  
  1017  * `[knf]` Added tabs support in indentation
  1018  * `[timeutil]` Added new sequences `%n` (_new line symbol_) and `%K` (_milliseconds_)
  1019  * `[timeutil]` Code refactoring
  1020  
  1021  ### 6.0.0
  1022  
  1023  * `[passwd]` Much secure hash generation (now with sha512, bcrypt, and AES)
  1024  * `[system]` Improved changing process and arguments names
  1025  * `[system/process]` Fixed windows stubs
  1026  
  1027  ---
  1028  
  1029  ### 5.7.1
  1030  
  1031  * `[usage]` Improved build info output
  1032  * `[system]` Improved OS version search process
  1033  
  1034  ### 5.7.0
  1035  
  1036  * `[system/process]` `GetTree` now can return tree for custom root process
  1037  * `[system/process]` Fixed threads marking
  1038  * `[fmtutil]` Added method `CountDigits` for counting the number of digits in integer
  1039  * `[terminal]` Now `PrintWarnMessage` and `PrintErrorMessage` prints messages to stderr
  1040  * `[usage]` Added support for optional arguments in commands
  1041  
  1042  ### 5.6.0
  1043  
  1044  * `[system]` Added `Distribution` and `Version` info to `SystemInfo` struct
  1045  * `[arg]` Added bound arguments support
  1046  * `[arg]` Added conflicts arguments support
  1047  * `[arg]` Added method `Q` for merging several arguments to string (useful for `Alias`, `Bound` and `Conflicts`)
  1048  
  1049  ### 5.5.0
  1050  
  1051  * `[system]` Added method `CurrentTTY` which return path to current tty
  1052  * `[system]` Code refactoring
  1053  
  1054  ### 5.4.1
  1055  
  1056  * `[fmtc]` Fixed bug with parsing tags
  1057  
  1058  ### 5.4.0
  1059  
  1060  * `[usage]` Changed color for arguments from dark gray to light gray
  1061  * `[usage]` Added breadcrumbs output for commands and options
  1062  * `[fmtutil]` Fixed special symbols colorization in `ColorizePassword`
  1063  
  1064  ### 5.3.0
  1065  
  1066  * `[fmtutil]` Added method `ColorizePassword` for password colorization
  1067  * `[passwd]` Improved password generation and strength check
  1068  
  1069  ### 5.2.1
  1070  
  1071  * `[log]` Code refactoring
  1072  * `[tmp]` Added permissions customization for each temp struct
  1073  
  1074  ### 5.2.0
  1075  
  1076  * `[terminal]` Added password mask symbol color customization
  1077  * `[terminal]` [go-linenoise](https://github.com/essentialkaos/go-linenoise) updated to v3
  1078  
  1079  ### 5.1.1
  1080  
  1081  * `[req]` Improved `Engine` initialization routine
  1082  * `[terminal]` Fixed bug in windows stub with error variable name
  1083  
  1084  ### 5.1.0
  1085  
  1086  * `[req]` Improved `SetUserAgent` method for appending subpackages versions
  1087  
  1088  ### 5.0.1
  1089  
  1090  * `[usage]` Fixed examples header
  1091  
  1092  ### 5.0.0
  1093  
  1094  * `[req]` Fixed major bug with setting method through helper methods
  1095  * `[req]` Multi-client feature (_use `req.Engine` instead `req.Request` struct methods_)
  1096  * `[crypto]` Package divided into multiple packages (`hash`, `passwd`, `uuid`)
  1097  * `[uuid]` Added UUID generation based on SHA-1 hash of namespace UUID and name (_version 5_)
  1098  * `[req]` Added different types support for `Query`
  1099  * `[knf]` Added `NotContains` validator which checks if given config property contains any value from given slice
  1100  * `[kv]` Using values instead pointers
  1101  * `[system]` Added custom duration support for `GetNetworkSpeed` and `GetIOUtil`
  1102  * `[version]` Improved version parsing
  1103  * `[system]` More logical `RunAsUser` arguments naming
  1104  * `[terminal]` Minor fixes in windows stubs
  1105  * `[netutil]` Added tests
  1106  * `[system]` Code refactoring
  1107  * Added usage examples
  1108  
  1109  ---
  1110  
  1111  ### 3.5.1
  1112  
  1113  * `[usage]` Using dark gray color for license and copyright
  1114  * `[fmtutil]` Added global variable `SeparatorColorTag` for separator color customization
  1115  * `[fmtutil]` Added global variable `SeparatorTitleColorTag` for separator title color customization
  1116  
  1117  ### 3.5.0
  1118  
  1119  * `[terminal]` Using forked [go.linenoise](https://github.com/essentialkaos/go-linenoise) package instead original
  1120  * `[terminal]` Added hints support from new version of `go.linenoise`
  1121  * `[fmtc]` Light colors tag (`-`) support
  1122  * `[usage]` Using dark gray color for option values and example description
  1123  * `[tmp]` Added `DefaultDirPerms` and `DefaultFilePerms` global variables for permissions customization
  1124  * `[tmp]` Improved error handling
  1125  
  1126  ### 3.4.2
  1127  
  1128  * `[strutil]` Fixed bug with overflowing int in `Tail` method
  1129  
  1130  ### 3.4.1
  1131  
  1132  * `[terminal]` Improved reading user input
  1133  
  1134  ### 3.4.0
  1135  
  1136  * `[httputil]` Added `GetRequestAddr`, `GetRemoteAddr`, `GetRemoteHost`, `GetRemotePort` methods
  1137  
  1138  ### 3.3.1
  1139  
  1140  * `[usage]` Fixed bug with rendering command groups
  1141  * `[terminal]` Small fixes in windows stubs
  1142  
  1143  ### 3.3.0
  1144  
  1145  * `[system/process]` Added new package for getting information about active system processes
  1146  * `[terminal]` Fixed bug with title formating in `ReadAnswer` method
  1147  
  1148  ### 3.2.3
  1149  
  1150  * `[terminal]` Fixed bug with title formating in `ReadUI` method
  1151  
  1152  ### 3.2.2
  1153  
  1154  * `[req]` Added content types constants
  1155  
  1156  ### 3.2.1
  1157  
  1158  * `[knf]` Fixed typo in tests
  1159  * `[strutil]` Removed unreachable code
  1160  
  1161  ### 3.2.0
  1162  
  1163  * `[strutil]` Added method `Len` which returns number of symbols in string
  1164  * `[strutil]` UTF-8 support for `Substr`, `Tail`, `Head` and `Ellipsis` methods
  1165  * `[strutil]` Added some benchmarks to tests
  1166  * `[fsutil]` Fixed `GetPerm` stub for Windows
  1167  * `[fsutil]` Fixed package description
  1168  
  1169  ### 3.1.3
  1170  
  1171  * `[req]` `RequestTimeout` set to 0 (_disabled_) by default
  1172  
  1173  ### 3.1.2
  1174  
  1175  * `[terminal]` Fixed bug with source name file conventions
  1176  * `[system]` Fixed bug with appending real user info on MacOS X
  1177  
  1178  ### 3.1.1
  1179  
  1180  * `[req]` Small fixes in Request struct fields types
  1181  
  1182  ### 3.1.0
  1183  
  1184  * `[req]` Lazy transport initialization
  1185  * `[req]` Added `DialTimeout` and `RequestTimeout` variables for timeouts control
  1186  
  1187  ### 3.0.3
  1188  
  1189  * `[system]` Removed debug output
  1190  
  1191  ### 3.0.2
  1192  
  1193  * Added makefile with some helpful commands (`fmt`, `deps`, `test`)
  1194  * Small fixes in docs
  1195  
  1196  ### 3.0.1
  1197  
  1198  * `[sliceutil]` Code refactoring
  1199  * `[knf]` Typo fixed
  1200  * `[terminal]` Typo fixed
  1201  * Some minor changes
  1202  
  1203  ### 3.0.0
  1204  
  1205  * `[fmtutil]` Pluralization moved from `fmtutil` to separate package `pluralize` (_incompatible changes_)
  1206  * `[pluralize]` Brand new pluralization package with more than 140 languages support
  1207  * `[timeutil]` Improved `PrettyDuration` output
  1208  * `[system]` Now `SessionInfo` contnains full user info (`Info` struct) instead username (_incompatible changes_)
  1209  * `[timeutil]` Code refactoring
  1210  * `[system]` Code refactoring
  1211  * `[log]` Code refactoring
  1212  * `[arg]` Code refactoring
  1213  
  1214  ---
  1215  
  1216  ### 2.0.2
  1217  
  1218  * `[pid]` Added method `IsWorks` which return true if process with PID from PID file is active
  1219  * `[pid]` Increased code coverage
  1220  
  1221  ### 2.0.1
  1222  
  1223  * `[terminal]` Fixed bugs with Windows stubs
  1224  * `[signal]` Fixed bugs with Windows stubs
  1225  
  1226  ### 2.0.0
  1227  
  1228  * `[color]` New package for working with colors
  1229  * `[usage]` Added color tags support for description
  1230  * `[terminal]` Improved reading y/n answers (_incompatible changes_)
  1231  * `[strutil]` Added method `Fields` for "smart" string splitting
  1232  * `[system]` Methods `GetUsername` and `GetGroupname` deprecated
  1233  * `[system]` Added method `GroupList` for user struct which returns slice with user groups names
  1234  * `[jsonutil]` Code refactoring
  1235  * `[usage]` Code refactoring
  1236  
  1237  ---
  1238  
  1239  ### 1.8.3
  1240  
  1241  * `[signal]` Added method `Send` for sending signal to process
  1242  
  1243  ### 1.8.2
  1244  
  1245  * `[log]` Fixed bug with logging empty strings
  1246  
  1247  ### 1.8.1
  1248  
  1249  * `[sortutil]` Added method `VersionCompare` which can be used for custom version sorting
  1250  
  1251  ### 1.8.0
  1252  
  1253  * `[sortutil]` Added case insensitive strings sorting
  1254  * `[sliceutil]` Added `Deduplicate` method
  1255  * `[strutil]` Added `ReplaceAll` method
  1256  * `[terminal]` method `fmtutil.GetTermSize` moved to `terminal.GetSize`
  1257  * `[timeutil]` Added method `ParseDuration` which parses duration in `1w2d3h5m6s` format
  1258  
  1259  ### 1.7.8
  1260  
  1261  * `[terminal]` Custom prompt support
  1262  * `[terminal]` Custom masking symbols support
  1263  * `[terminal]` Code refactoring
  1264  
  1265  ### 1.7.7
  1266  
  1267  * `[fsutil]` Fixed bug in `List` method with filtering output
  1268  * `[fsutil]` Fixed bug with `NotPerms` filtering
  1269  
  1270  ### 1.7.6
  1271  
  1272  * `[env]` Added methods for getting env vars as string, int, and float
  1273  
  1274  ### 1.7.5
  1275  
  1276  * `[usage]` Added docs for exported fields in About struct
  1277  
  1278  ### 1.7.4
  1279  
  1280  * `[fsutils]` Added fs walker (bash `pushd`/`popd` analog)
  1281  
  1282  ### 1.7.3
  1283  
  1284  * `[fsutil]` Method `ListAbsolute` ranamed to `ListToAbsolute`
  1285  
  1286  ### 1.7.2
  1287  
  1288  * `[errutil]` Added method Chain
  1289  
  1290  ### 1.7.1
  1291  
  1292  * `[log]` Improved min level changing
  1293  
  1294  ### 1.7.0
  1295  
  1296  * `[fsutil]` Fixed major bug with closing file descriptor after directory listing
  1297  * `[fsutil]` Fixed major bug with closing file descriptor after counting lines in file
  1298  * `[fsutil]` Fixed major bug with closing file descriptor after checking number of files in directory
  1299  
  1300  ### 1.6.5
  1301  
  1302  * `[fsutil]` Improved docs
  1303  * `[fsutil]` Added method (wrapper) for moving files
  1304  
  1305  ### 1.6.4
  1306  
  1307  * `[path]` Added method IsDotfile for checking dotfile names
  1308  
  1309  ### 1.6.3
  1310  
  1311  * `[strutil]` Added methods PrefixSize and SuffixSize
  1312  
  1313  ### 1.6.2
  1314  
  1315  * `[fsutil]` Improved working with paths
  1316  * `[fsutil]` Added method ProperPath to windows stub
  1317  
  1318  ### 1.6.1
  1319  
  1320  * `[path]` Fixed windows stub
  1321  
  1322  ### 1.6.0
  1323  
  1324  * `[path]` Added package for working with paths
  1325  
  1326  ### 1.5.1
  1327  
  1328  * `[knf]` Fixed bug in HasProp method which returns true for unset properties
  1329  
  1330  ### 1.5.0
  1331  
  1332  * `[tmp]` Improved error handling
  1333  * `[tmp]` Changed name pattern of temporary files and directories
  1334  
  1335  ### 1.4.5
  1336  
  1337  * `[pid]` Fixed bug with PID file creation
  1338  * `[pid]` Increased coverage
  1339  
  1340  ### 1.4.4
  1341  
  1342  * `[errutil]` Added method Num which returns number of errors
  1343  
  1344  ### 1.4.3
  1345  
  1346  * `[errutil]` Improved Add method
  1347  
  1348  ### 1.4.2
  1349  
  1350  * `[fsutil]` Added method `ProperPath` which return first proper path from given slice
  1351  
  1352  ### 1.4.1
  1353  
  1354  * `[fsutil]` Added partial FreeBSD support
  1355  * `[system]` Added partial FreeBSD support
  1356  * `[log]` Some minor fixes in tests
  1357  
  1358  ### 1.4.0
  1359  
  1360  * `[kv]` Added package with simple key-value structs
  1361  
  1362  ### 1.3.3
  1363  
  1364  * `[strutil]` Fixed bug in Tail method
  1365  
  1366  ### 1.3.2
  1367  
  1368  * `[strutil]` Added method Head for subtraction first symbols from the string
  1369  * `[strutil]` Added method Tail for subtraction last symbols from the string
  1370  
  1371  ### 1.3.1
  1372  
  1373  * Improved TravisCI build script for support pkg.re
  1374  * Added pkg.re usage
  1375  
  1376  ### 1.3.0
  1377  
  1378  * `[system]` Fixed major bug with OS X compatibility
  1379  * `[fmtutil]` Fixed tests for OS X
  1380  
  1381  ### 1.2.2
  1382  
  1383  * `[req]` Added flag for marking connection to close
  1384  
  1385  ### 1.2.1
  1386  
  1387  * `[crypto]` Small improvements in hash generation
  1388  * `[csv]` Increased code coverage
  1389  * `[easing]` Increased code coverage
  1390  * `[fmtc]` Increased code coverage
  1391  * `[httputil]` Increased code coverage
  1392  * `[jsonutil]` Increased code coverage
  1393  * `[pid]` Increased code coverage
  1394  * `[req]` Increased code coverage
  1395  * `[req]` Increased default timeout to 10 seconds
  1396  * `[strutil]` Increased code coverage
  1397  * `[timeutil]` Increased code coverage
  1398  
  1399  ### 1.2.0
  1400  
  1401  * `[log]` Now buffered I/O must be enabled manually
  1402  * `[log]` Auto flushing for bufio
  1403  
  1404  ### 1.1.1
  1405  
  1406  * `[system]` Added JSON tags for User, Group and SessionInfo structs
  1407  * `[usage]` Info now can use os.Args`[0]` for info rendering
  1408  * `[version]` Added package for working with version in semver notation
  1409  
  1410  ### 1.1.0
  1411  
  1412  * `[arg]` Changed default fail values (int -1 → 0, float -1.0 → 0.0)
  1413  * `[arg]` Increased code coverage
  1414  * `[arg]` Many minor fixes
  1415  * `[cron]` Fixed rare bug
  1416  * `[cron]` Increased code coverage
  1417  * `[crypto]` Increased code coverage
  1418  * `[easing]` Increased code coverage
  1419  * `[errutil]` Increased code coverage
  1420  * `[fmtc]` Increased code coverage
  1421  * `[fmtutil]` Increased code coverage
  1422  * `[jsonutil]` Increased code coverage
  1423  * `[knf]` Fixed bug in Reload method for global config 
  1424  * `[knf]` Improved Reload method
  1425  * `[knf]` Increased code coverage
  1426  * `[log]` Increased code coverage
  1427  * `[mathutil]` Increased code coverage
  1428  * `[pid]` Increased code coverage
  1429  * `[rand]` Increased code coverage
  1430  * `[req]` Fixed bug with Accept header
  1431  * `[req]` Increased code coverage
  1432  * `[sliceutil]` Increased code coverage
  1433  * `[sortutil]` Increased code coverage
  1434  * `[spellcheck]` Increased code coverage
  1435  * `[strutil]` Increased code coverage
  1436  * `[system]` Added method system.SetProcName for changing process name
  1437  * `[timeutil]` Fixed bug in PrettyDuration method
  1438  * `[timeutil]` Increased code coverage
  1439  * `[tmp]` Increased code coverage
  1440  
  1441  ### 1.0.1
  1442  
  1443  * `[system]` Fixed bug in fs usage calculation
  1444  * `[usage]` Improved new Info struct creation
  1445  
  1446  ### 1.0.0
  1447  
  1448  Initial public release