Change log for confget, the configuration file variable extractor

4.1.0	2021/11/28
	- declare the REGEX and the REGEX_IMPL_<language>_<library>
	  features and check for REGEX in the TAP test
	- C implementation:
	  - add support for the pcre2 library and make it the default
	- Python implementation:
	  - tests: add a version to the dependency on the "hacking" library
	    to help out recent versions of pip with the combinatorial
	    explosion
	- Rust implementation:
	  - declare compatibility with the 2021 edition with no changes

4.0.1	2021/10/01
	- Python implementation:
	  - fix the unit tests on Python 3.5: open the test files in
	    text mode, not in binary mode
	  - add MANIFEST.in to include more files in the sdist archive

4.0.0	2021/09/29
	INCOMPATIBLE CHANGE:
	- C implementation: when showing more than one variable, order them
	  by variable name instead of whatever order they appeared in
	  the input file. This brings the C implementation in line with
	  the Python and Rust ones.

	- Python implementation:
	  - do not use open() without an encoding specified: either open
	    the files in binary mode or use io.open() and specify it
	  - cap the version of the Python 2.x configparser dependency
	  - fix a test class constructor name
	  - silence a pylint diagnostic message about f-strings; we still
	    have to support Python 2.x for a while longer
	  - silence a pylint diagnostic message about "abstractproperty"
	    being deprecated for the same reason
	- Rust implementation:
	  - turn `html_root_url` into a crate-level attribute
	  - drop some unneeded borrows

3.0.2	2021/06/23
	- Python implementation
	  - tox tests: catch up with the mypy dependency changes
	- Rust implementation:
	  - implement the Default trait for the Config object;
	    the get_default() method is now deprecated
	  - use version 0.4 of the expect-exit crate
	  - fix the code examples in the documentation
	  - add the html_root_url documentation attribute
	  - add a link to the change log on GitLab

3.0.1	2021/05/12
	- Rust implementation:
	  - implement some suggestions from the clippy tool
	  - add some Cargo.toml/crates.io metadata

3.0.0	2021/05/11

	INCOMPATIBLE CHANGES:
	- the "http_get" backend has been dropped, "ini" is currently
	  the only confget backend
	- Python implementation: the INI file is opened when read_file()
	  is invoked, not when the backend object is constructed

	- add a test querying a single variable in list-all mode
	- Python implementation:
	  - rename the "black_reformat" tox environment to "black-reformat"
	  - explicitly specify black version 21
	  - disable some more pylint diagnostics, since we still need to
	    preserve Python 2.x compatibility
	  - improve the tox-devel.sh experience a bit
	  - add "six" as a dependency to the "pylint" tox environment,
	    since pylint itself no longer depends on it
	  - add the read_ini_file() convenience function
	  - use the read_ini_file() function in the command-line tool,
	    since right now there are no other backends
	- add a Rust implementation


2.3.4	2020/05/02
	- add a test for values containing a "=" character
	- add a test for the "-P suffix" command-line option
	- Python implementation:
	  - fix a bug parsing values containing a "=" character
	  - implement the "-P suffix" command-line option
	  - setup.py: use "tests_require" instead of "test_requires"
	  - push the source down into a src/ subdirectory

2.3.3	2020/04/07
	- Python implementation: allow the tests to be run from
	  another directory, e.g. the confget top-level source one
	- Makefile: if NO_DOC_BUILD is set, do not build the manual
	  page and do not install it and the examples

2.3.2	2020/04/06
	- Python implementation improvements and bugfixes:
	  - reformat the function and module docstrings
	  - make some imports conditional on the Python version
	  - separate the tests into developer-only (to be run within
	    the full confget source tree) and sdist-ready
	  - make it possible to run some tests from the sdist
	  - fix some test infrastructure nits

2.3.1	2020/04/01
	- fix the Python's top-level module typed exports
	- fix two pylint false positives in the Python module

2.3.0	2019/09/09
	- fix a typographical error in the previous changelog entry
	- also exclude the PyPy implementation from the check for
	  too many long options in the 14-bespoke-too-many test
	- Python implementation:
	  - reformat the source code using the black tool
	  - handle input encodings correctly for the standard input
	  - add the get_parser() method to return a ConfigParser object
	  - make the unit tests less verbose
	  - move the configuration for the black, flake8, and pylint
	    tools out of tox.ini into other configuration files
	- C implementation:
	  - show the correct version number in the "-q features" output

2.2.0	2019/01/13
	- add a Python implementation: a confget library that may
	  also be invoked from the command line with the same
	  interface as the C confget tool
	- generate the TAP tests automatically from JSON definitions

2.1.1	2018/11/27
	- fix the check for more than one requested query type

2.1.0	2017/11/11
	- allow the installation commands to be overridden, e.g. for
	  package builds which do not require root privileges
	- add "-q features" and "-q feature NAME" with only the "BASE"
	  feature defined so far
	- support "--help" and "--version"

2.0.0	2016/04/03
	
	INCOMPATIBLE CHANGES:
	- if a variable is specified more than once in the config file,
	  only the *last* value will be displayed regardless of the presence or
	  the order of the confget command-line options; previously,
	  confget without -l would only display the first value
	- the configuration file is always parsed completely and any syntax
	  errors will cause confget to fail even if they occur after
	  the specification of the requested variables
	- confget now requires a C99 compiler to build.  This is activated
	  by the -std=c99 option passed to the compiler; to override this,
	  set the STD_CFLAGS environment variable

	Other changes:
	- replace _BSD_SOURCE and _GNU_SOURCE with _POSIX_C_SOURCE and
	  _XOPEN_SOURCE
	- install the test scripts themselves in addition to the test
	  config files as examples
	- teach the manual page test about compressed manpage files
	- use linker flags for Large File Support, too, if provided
	- treat an empty section name (-s '') as requesting only variables
	  declared before any section has been defined
	- remove an outdated -f option specification in the HTTP GET
	  example in the manual page
	- clean up some of the use of the strcmp(3) function
	- clean up some internal error handling
	- remove the obsolete $Ringlet VCS tags from the source files
	- minimize the scope of some variables by using C99 declarations
	- add the -O (override) command-line option allowing variables in
	  a certain section to override those in the unnamed section at
	  the start of the config file

1.05	2013/11/03
	- display the version string before the help if both requested
	- support building without a .depend file
	- use the C99 '%z' printf(3) format specifier and remove
	  the less portable 'long long' casts
	- add 'const' qualifiers to lots of pointers
	- make makedep.sh honor CC and quote some expansions there
	- build with large file support under Linux by defining
	  _FILE_OFFSET_BITS to be 64

1.04	2012/10/11
	- detect automatically the "read-a-line" C library function
	  (getline(3) or fgetln(3)) by trying to compile and link simple
	  programs using either one
	- separate the C preprocessor flags from the C compiler flags:
	  - honor CPPFLAGS if passed by a build system
	  - rename the PCRE_CFLAGS variable to PCRE_CPPFLAGS, since that
	    is what it actually is
	  - pass CPPFLAGS instead of CFLAGS to makedep.sh and use them
	- stop misusing LFLAGS, use just LDFLAGS as we should
	- add the "-q sections" command-line option to list the names of
	  the sections in an INI file
	- add the 10-qsections test for the above

1.03	2011/07/06
	- support spaces in INI file section names, as suggested by
	  green <greenfreedom10@gmail.com> in Debian bug #632400
	- do not make the compiler warnings fatal by default

1.02	2009/03/20
	- do not fail the regexp tests if confget was compiled without
	  regular expression support
	- explain the Config::IniFiles cross-reference in the manual
	  page, as discussed with George Danchev on the debian-mentors
	  mailing list
	- split the install target into separate targets for the various
	  components of the program
	- add some comments to the t/t1.ini and t/t2.ini files, describing
	  the structure of the INI files parsed by confget
	- install the t1.ini and t2.ini files as examples, as discussed
	  with George Danchev on the debian-mentors mailing list

1.01	2008/11/06
	- if '-' is specified for the configuration file name, read from
	  the standard input stream
	- improve the general description of confget in the manual page
	- add an 'http_get' backend for decoding HTTP GET request variables
	- make the filename argument non-mandatory, since there are
	  configuration types (e.g. http_get) that do not read their data
	  from a file
	- completely drop the non-functional stub for a Java properties
	  backend type

1.00	2008/10/16
	- add the '-p prefix' and '-P postfix' command-line options
	- add the '-S' command-line flag so shell scripts may safely
	  read individual variables or slurp the contents of whole sections
	- add regular expression support through the PCRE library and
	  the '-x' command-line flag

0.03	2008/10/14
	- avoid overlong strings in confget.c's usage() function
	- add sample high-warning-level compiler flags to the Makefile
	- protect argument names in the function declarations
	- do not use a generic name such as "fp" for a global variable
	- clear out the config file variable after closing the file
	- pull in the correct definition for strdup()

0.02	2008/10/14
	- by default, use the binary files' group for the manpages, too
	- add support for different configuration file types
	  - ini - the already-supported INI file backend
	- add the '-t type' and '-T' command-line options
	- add a trivial README file
	- add a simple TODO list
	- automatically track source dependencies
	- use fgetln(3) or getline(3) to read lines from a file
	- move more variable matching logic into foundvar()
	- fix a bug when parsing key/value lines without whitespace
	- add the -L command-line option to display all variables with
	  names matching the specified pattern
	- mark some Makefile targets as phony
	- allow more than one variable or pattern to be specified on
	  the command line
	- note that either -DHAVE_GETLINE or -DHAVE_FGETLN must be defined
	  in the C compiler's flags at build time
	- make the section argument optional and let the first section in
	  the INI file be used instead
	- add the -m command-line option to match the values against a pattern

0.01	2008/09/25
	- Initial public release.

Comments: Peter Pentchev <roam@ringlet.net>
