CHANGES
=======

0.32.0
------

* fix: use \`--random\_generator=tausworthe64\`
* Update min version of tox and remove constraints for pycodestyle
* Bump hacking and flake8-import-order versions
* Support Python 3.12 and remove Python 3.7

0.31.0
------

* Add note on setup\_user function in the ipmi module
* Skip areca check if cli64 is not installed
* Run tests on ubuntu jammy
* Add support for Python 3.11
* Fix parsing of fio output
* Pin importlib-metadata under 5.0.0 for Python 3.7

0.30.0
------

* Remove support for Python 3.6

0.29.1
------

* Refactor bios\_hp module

0.29.0
------

* [trivial] use list literal for rtc\_clock
* [Trivial] Simplify chain relations
* Fix regression in detect script
* Refactor parse dmesg function
* Refactor auxv detect function
* Support Python 3.10
* Update test-requirements and min requirements
* Security update set Babel min version to 2.9.1

0.28.0
------

* Move remaining functions from detect to detect\_utils
* Remove runtime dependency on pbr
* Move detect\_rtc\_clock to rtc module
* Move parse sdr function to ipmi module
* Move smart fields to smart\_utils\_info as dict
* Add line to setup.cfg limiting to Python >=3.6
* Run github actions on pull requests
* Start using github actions

0.27.0
------

* Add support for Python 3.9
* Remove ddr timings info
* Move detect temperatures function to its own module
* Update requirements and tox minversion
* Refactor infiniband module
* Move ipmi detect logic to its module

0.26.0
------

* Fix final output
* Move detect system to its own module
* Move some more functions to detect-utils
* Move more generic functions to detect-utils
* Set safe version of hacking
* Use ubuntu focal travis environment for tests
* Move logic to retrieve system uuid to detect\_utils
* Fix output of hpacucli when no info available
* Move 2 more functions to detect\_utils
* Move detect\_disks to diskinfo module
* Move detect\_megacli in the megacli module
* Move detect\_hpa in the hpacucli module
* detect: Don't add empty lists
* setup: Defaulting to python3
* Import detect\_utils as module
* Move detect\_areca in the areca module as detect
* Set flake8-import-order min version to 0.17.1
* Remove pylint check
* Use mock from unittest

0.25.0
------

* Bump hacking to 3.0.0
* Add disk rotation rate to SMART collected data
* Collect CPU architecture, SMT state and threads per core
* Simple refactor of test\_detect\_utils
* Get the CPU scaling governor on kernels < 4.3
* Handle check\_output exception
* Fix travis CI
* simplify \_from\_file function
* detect: Fixing numa cpu\_count computation
* Fix typos, improve docstrings
* Remove hardware.cardiff and the hardware-cardiff tool (fixes #124)

0.24.0
------

* Stop using six library
* Drop the dependency on netaddr
* Skip network drive grouping when network drives not detected
* No need to import print\_function anymore
* Use correct python version for tox based on env
* Stop supporting Python 2.x

0.23.0
------

* Fix hpacucli with python3
* Use bionic instead of xenial for travis CI
* Use tox-travis for testing
* Drop Python 3.5 in favor of Python 3.8
* Enabling docs testing in travis
* Rename FakeAMD back to AuthenticAMD

0.22.0
------

* Fix error mem benchmark with Python 3
* Use string format instead of concatenation
* Improve resiliency to failure
* Enforce 80 columns line length
* Remove unused files under hardware/cardiff/VM
* Add auxv detection
* Add auxv detection
* Add auxv detection
* Smart support for nvme devices
* [BUGZILLA 1729237] Fix benchmark output for disks
* Cosmetic change to adapt to new pep8 style
* Cleaning test\_detect

0.21.1
------

* test: correctly ignore errors
* refactor: ignore decode errors
* Bugzilla 17288042: UnicodeDecodeError
* Bugzilla 1728042: Hardware-detect fails with UnicodeDecodeError during Auto-Discovery
* Bugzilla 1728042: Hardware-detect fails with UnicodeDecodeError during Auto-Discovery
* Call dmesg inside its parsing function
* Split lscpu output on first colon occurrance only

0.21.0
------

* Basic support for nvme devices
* Use pure argparse
* Move smart utils to its own module
* Fix error cpu benchmark with Python 3.x
* fix travis config for python 3.7 by using xenial

0.20.1
------

* detect: Add support and testing for ppc64le and aarch64
* detect: Refactor the code in get\_cpus()
* Don't repeat the same string formatting
* Move file I/O into a generic function for reuse
* Small typo fixes
* Be more robust when parseing NUMA information
* Do not access /sys on system running unit tests
* Adding license information to requirements

0.20.0
------

* Make the cache info collection more robust
* hardware/megacli.py: Fixing typo
* quality: Improving coding style
* detect: Reporting CPU boost
* detect: Don't read scaling governor with cat
* hpacucli: Avoid parenthesis in items
* detect: Enforcing en\_US-UTF-8
* bios\_hp: Don't execute hp-conrep on non HP systems
* Add test\_detect\_utils
* bios\_hp: Improve dump\_hp\_bios testing
* detect: Reworking CPU detection
* Rewriting tox.ini
* Fixing pep8 test
* Adding proper coverage test
* Refactoring of test\_detect
* hardware: Reporting HP's bios configuration
* Adding support for python 3.7
* Increasing pbr version
* Fixing empty raise statement
* Switching to ipaddress
* Fixing broken pep8 test
* hardware/hpacucli.py: Reporint 'ctrl slot=x show'
* hardware/hpacucli.py: Improving generic\_parsing() to avoid wrong split
* hardware/detect.py: Reporting io scheduler
* hardware/detect.py: Reporting nr\_requests
* Fixing pep8 error on newly landed hpacucli patch
* hardware/hpacucli.py: Avoid PDs not being detected
* Updating test-requirements to use latest pylint
* Drop support for python 3.4 in favor of 3.6
* hardware/hpacucli.py: Adding ssacli support
* Fixing parsing issues with python3.x in detect\_utils
* Remove old reference to sdparm requirement
* Use sysfs instead of forking sdparm for WCE/RCD
* Add a system UUID on ppc64le
* Add mock to test-requirements
* Fixup tox warnings and set basepython for pylint
* Switch py27 and py34 in envlist
* New task in hardware detection: detect RTC setting
* Adding how to install
* support python 3.5
* Fix Infiniband device naming
* Fix Infiniband device enumeration
* setup: Adding Python 3 classifier
* documentation: Adding doc requirements
* documentation: Making runtime deps explicit
* Enhance documentation
* Fix Python 3 issues
* Fix pep8 warnings
* Run autopep8
* megacli: Searching various version of megacli executable
* detect: Adding Areca support
* matcher: Adding range() function

0.18
----

* Allow floating numbers in gt, ge, lt and le functions
* fix backtracking bug (bad saved state on variables)
* cardiff: Comparing hardware physical disks
* cardiff: Improving code quality
* cardiff: Tests shall use check.xxxx() functions
* cardiff: Moving print\_groups calls into compare\_type()
* detect: Automatic megacli's LD description
* hardware/cardiff/check.py: fix pep8 warnings
* README.rst: fix url for Travis image status
* .travis.yml: use the new infrastructure based on containers
* Use travis\_wait to avoid timeout when installing python dependencies
* cardiff: Insuring data are tuples
* cardiff: Fixing typo
* cardiff: Fixing gnuplot header
* cardiff: Reworking modes ordering

0.17
----

* Resist to an invalid UTF-8 string from the hardware detection

0.16
----

* hardware/cardiff: support for gnuplot v5
* hardware/cardiff: fix pep8 fixes
* tools/cardiff: fix call to analyze\_data

0.15
----

* hardware/matcher.py: improve generate\_filename\_and\_macs
* hardware/cmdb.py: do not abort if there is an error backuping a cmdb file
* Revert "Fix empty print statements"
* tools/pylintrc: do not disable C0325 anymore
* tools/pylintrc: do not report C0325 for Python3 compat
* fix pylint C0325 reports for other keywords than the print keywork
* Fix empty print statements

0.14
----

* - imported cardiff from edeploy
* hardware/infiniband.py: fix the use of cmd. Fixes #13
* If checking for processor number

0.13
----

* Remove the psutil dependency
* Add support for benchmark tests
* tox.ini: switch to python 3.4
* README.rst: add travis status image
* tox.ini: activate coverage check by default
* tox.ini: use find to lookup python files to be checked by pylint
* .travis.yml: add coverage gating via tools/check-coverage.sh
* tools/check-pylint-score.sh: remove debug traces
* tools/check-pylint-score.sh: fix sed expression to cope with pylint first run format and multiple runs format
* tools/check-pylint-score.sh: output commands to be able to debug travis
* tools/check-pylint-score.sh: back to standard sh and cleanup temp file
* .travis.yml: fix typo in command
* try to fix .travis.yml for multiple python versions
* tox.ini: add a tox check to avoid regressing the pylint score
* hardware/state.py: remove none mac

0.12
----

* CONTRIBUTING.rst: fix bad urls. Closes #8
* hardware/cmdb.py: fix cmdb\_filename requesting a trailing / in cfg\_dir

0.11
----

* remove debug print, it ends up in the result on stdout

0.10
----

* hardware/matcher.py: add boolean functions
* hardware/detect.py: refactoring to add unit tests
* detect: Adding more serial id fallbacks

0.9
---

* hardware: specify the logger by module. Fixes #4
* hardware.generate: don't yield on tuple

0.8
---

* hardware.state: added an hardware\_info method
* hardware/detect.py: abort if lshw returns an error. Fixes #3
* detect: Fixing megaraid pdisk counting
* Add tests to reproduce the merge problem
* Fix typo in generate\_dict from generate.py

0.7
---

* hardware/state.py: fix typo in \_\_init\_\_

0.6
---

* finalize python 3 port
* hardware/state.py: init \_lockfd to be safe
* hardware/state.py: set \_lock\_fd in unlock

0.5
---

* hardware.generate: support config-tools use cases
* hardware.matcher: added a regexp function to be used in specs files

0.4
---

* hardware.state: add locking methods

0.3
---

* added state.py
* fix import to be compatible with python 3
* hardware/cmdb.py: manage error using exceptions

0.2.1
-----

* requirements.txt: force pbr >= 0.8.2

0.2
---

* hardware/cmdb.py: expose generate for load\_cmdb

0.1
---

* setup.cfg: fix script entry point
* let pbr create the hardware-detect script
* added .travis.yml
* added cmdb.py
* matcher.py: added generate\_filename\_and\_macs
* added generate.py
* put test\_matcher.py in hardware/tests
* added matcher.py
* README.rst: fix nested list
* tox.ini,setup.cfg: list only supported python versions
* describe hardware features in README.rst
* remove openstack-common.conf
* tox.ini: ignore H302 reports from flake8
* fix flake8 reports on test\_megacli.py
* continue to refactor to fix flake8 reports
* detect.py: fix flake8 reports
* tests: remove unused files
* tests put output snippets in tests/samples
* imported files from edeploy/src
* Initial Cookiecutter Commit
