| Age | Commit message (Collapse) | Author |
|
New features:
- db92bb7 ("Add dependency loop detection") adds long-overdue
dependency loop detection.
Previously, dependency loops would trigger hard-to-debug Python
RecursionError exceptions during evaluation. They now generate a
KconfigError instead, with a helpful message that shows the items in
the loop.
Backwards-incompatible changes (major version bumped to 7):
- eb6c21a ("Turn MenuNode/Symbol/Choice.referenced() into a
@property") fixes some inconsistency in the recently-added
referenced-symbols APIs. Oversight.
Other changes:
- f6eb4f4 ("Add Symbol/Choice.referenced() convenience methods")
makes it easier to get all the symbols/choices referenced by a
symbol or choice. Previously, you'd have to loop through all the
menu nodes (definition locations) yourself, which might not be
obvious.
- ca89ca0 ("Rename KconfigSyntaxError to KconfigError") changes to
a better exception name, as KconfigSyntaxError was raised for some
things that aren't syntax errors.
The old name is kept as an alias for now for backwards
compatibility.
|
|
Just adds commit dc0b022 ("Correctly report choice locations in some
warnings").
|
|
Fixes:
- c880151 ("Fix incorrectly ordered properties for some nested
multi.def. symbols") fixes a bug that could cause symbols/choices
defined in multiple locations and nested in particular ways within
if's and menus to get their properties in the wrong order.
The Linux kernel wasn't affected (which is how it managed to slip
through), but projects that make heavy use of symbols defined in
multiple locations might have been. Comprehensive selftests have
been added to cover property ordering on nested multi.def.
symbols/choices.
New features:
- 4af3e0c ("menuconfig: Support starting a search from the info
dialog") and 330017a ("menuconfig: Support viewing symbol info from
within the jump-to dialog") makes working with the menuconfig a bit
smoother to work with.
- 68043b2 ("Add MenuNode function that returns referenced items")
makes it easier to find out what symbols/choices a symbol, choice,
menu, or comment references, which is handy e.g. for searching.
|
|
Just to fix the rendering of the README on PyPI with commit b727f4d
("Fix link to allyesconfig.py in README").
|
|
Changed behavior (giving the major version bump):
- cbf32e2 ("Expand environment variables in strings directly") makes
'option env' "bounce" symbols redundant, though they are still
supported for backwards compatibility (with the caveat that they
must have the same name as the environment variables they
reference to preserve behavior).
A warning is printed if 'option env="FOO"' appears on a symbol
that's not named FOO.
This change will likely appear in the C tools soon as well.
Other new features:
- The menuconfig implementation is now bundled in the PyPI package,
along with implementations of the Kconfig oldconfig and
all{def,no,yes,mod}config tools.
A genconfig script is provided for generating a C header from the
configuration, as well as (optionally) the sync_deps() directory
structure for implementing incremental builds.
- 63a4418 ("Record which MenuNode has each property") makes it
possible to generate documentation for symbols defined in multiple
locations with each property shown on the right definition. See
genrest.py in Zephyr.
This change also cleans up the parsing code a bit. Dependency
propagation is now done after parsing, in _finalize_tree().
- 94020be ("Make Kconfig._choices public") and fc73c46 ("Provide lists
with all menus and comments") gives easier access to Kconfig items
of a specific type, without having to walk the menu tree. This turns
out to be handy e.g. when generating documentation and implementing
search.
Improvements and new warnings:
- da40c01 ("Force encoding to UTF-8 by default on Python 3")
- 7427079 ("Get rid of the predefined UNAME_RELEASE symbol")
- f64591c ("Warn if prompt contains leading or trailing whitespace")
- c14e411 ("Warn if quotes are omitted around string defaults")
Misc. minor refactoring and cleanup has been done as well.
|
|
There should be a script available that generates the output header for
the build. It usually makes sense to generate both the header and any
incremental build information at the same time (automatically during
build), so roll them both into the same script.
|
|
These currently include menuconfig, oldconfig, syncconfig, alldefconfig,
and all{no,mod,yes}config, which probably cover what 90% of people will
need to use. More scripts could be added later.
Use the entry_points mechanism
(http://setuptools.readthedocs.io/en/latest/setuptools.html#automatic-script-creation),
which gives something that works out-of-the-box on Windows. It also
removes the .py suffix for the installed scripts.
|
|
New features:
- ed3ceaa ("Make warnings available in a list")
API changes:
- 8983f7e ("Make disable_warnings() disable all warnings")
This is a minor API behavior change, so the major version is bumped.
It's unlikely to break anything people were depending on.
|
|
4.2.1 should have been 4.3.0. That was not a bugfix release. Braino.
|
|
New features:
- 105c835 ("Add helper for splitting expressions")
- 509e374 ("Add Choice.direct_dep field")
A terminal menuconfig implementation has been added which relies on
these features.
Other improvements:
- c1c5ef2 ("Print a warning for malformed .config lines")
- 09b8c58 ("Give filename and context for UnicodeDecodeError")
|
|
New features and improvements:
- 7245bad ("Parenthesize && expressions within || expressions")
makes expressions more readable.
- 2259d35 ("Generalize is_menuconfig to non-symbol items")
can simplify menuconfig implementations.
- c7ac6f8 ("Add parent deps to the right in _T_IF") makes parent
dependencies consistently appear on the right in expressions, with
the outermost parent dependency the furthest to the right.
New warnings:
- 7ba79ca ("Warn if user (.config) value is outside of 'range'")
- 225ec4b ("Warn if a choice symbol is selected or implied")
Some obscure false positive warnings for named choices were fixed too.
This came up in
https://github.com/zephyrproject-rtos/zephyr/issues/6948.
- e8408a0 ("Move sanity checking to after _finalize_tree()")
|
|
Only adds daac69d ("Add a globbing source statement").
'gource' doubles as an include-if-exists function.
|
|
Includes a small API behavior change, hence the major version bump:
- db63301 ("Return "" for unwritten symbols in Symbol.config_string")
New features:
- Support for incremental builds using the same scheme as the
include/config/ directory in the C tools. See the new
Kconfig.sync_deps() function and commit 378dedc ("Add support for
incremental builds").
- Minimal configuration (defconfig) writing, generating identical files
to the C implementation. See commit 652f11b ("Add minimal
configuration file generation support").
The C 'make savedefconfig' implementation is currently broken in
obscure cases involving tristate choices (due to broken invalidation
code), so the tests are disabled for now. I have a patch for the C
implementation that I will submit.
Fixes:
- user_value wasn't set for choice symbols set to y via load_config()
with replace=True. Fixed by commit 0bd841d ("Properly remember y user
values for choice symbols"). Didn't affect correctness, only the API.
Other changes:
- 778ec47 ("Only write '# CONFIG_FOO is not set' for visible symbols")
mirrors a change I made to the C tools.
- bbe3ae9 ("Do not write the defconfig_list symbol to .config") mirrors
another change made to the C tools.
- Misc. refactoring and cleanup.
|
|
Adds a Kconfig extension contributed by RomaVis: aea0232 ("Implement
'rsource' statement ('source' with relative path)").
|
|
Only includes 2a88c0c ("Include direct deps. in
Symbol/Choice.__str__()").
|
|
- Only includes e8b4ecb ("Don't special-case user_value for choice
symbols set to y").
Since that's a tiny change to the behavior of the API, the major version
is bumped.
|
|
Just adds f66cd71 ("Allow "n"/"m"/"y" as aliases for 0/1/2 in
set_value()").
|
|
This release tightens up syntax checking and adds all the warnings
generated by the C implementation (plus a few extra ones), making
Kconfiglib more viable as a replacement for the C tools, rather than
just being an auxiliary library.
Syntax checking changes:
- a84848b ("Tighten up syntax checking")
- 8716316 ("Generate a parse error for extra tokens at EOL")
- 416083a ("Flag constant symbols where they're not allowed")
Warning changes:
- 9c309400 ("Add some post-parsing warnings")
- da0bfa3a ("Error out for malformed hex/int/string defaults")
- 5d2041a9 ("Add more choice type and prompt sanity checks")
- 67f825fc ("Warn if there's more than one help text")
- 990c780f ("Add some warnings related to selects and implies")
- 7432ade8 ("Warn if a symbol is defined with multiple types")
- 5eeea863 ("Improve int/hex sanity checking")
- ad94bb45 ("Sanity-check range values")
- e930c140 ("Warn if a symbol/choice has multiple prompts")
- 60d12911 ("Warn if help text is empty")
- d43d2e83 ("Warn if menuconfig statement has no prompt")
- 3db12f72 ("Warn if a choice symbol has defaults")
- 0eadd61c ("Warn if choice symbol has prompt outside choice")
Also includes various code nits.
|
|
Shows up as a nice sidebar on PyPI.
|
|
Can test the python_requires now too.
|
|
- 955ea4 ("Support <, > relational operators with tristates") adds a
small recent feature from upstream. Haven't even seen any relational
operators besides = and != being used yet I think.
- 8d7235 ("Tighten up regexes") cleans up and optimizes the regexes
used during parsing and .config reading a bit.
|
|
Just has b82ea0a ("Enable universal newlines mode for Python 2").
|
|
Just adds a new warning: 0087b40 ("Warn if a symbol with unsatisfied
deps is selected")
|
|
Small docstring improvements:
- 1c37079 ("Add more detail to the write_config() docstring")
- 121d4a7 ("Add more detail to the write_autoconf() docstring")
- 27fbded ("Fix outdated comments referencing user_str/tri_value")
- e01cb49 ("Mention user_value in the load_config() docstring")
- ed32010 ("Add some more detail to the module docstring")
Code nit:
- 532b561 ("Simplify escape()")
|
|
Parsing performance improvements related to help texts:
- c800f70 ("Simplify _deindent()")
- 707204a ("Get rid of _next_help_line()")
- f0a87cc ("Micro-optimize _T_HELP parsing")
Also includes various code nits.
Brings 'make scriptconfig' with allyesconfig.py down to 1.3 seconds,
including the 'make' overhead.
|
|
- 97c7501 ("Fix 'source "missing"' error message for Python 3") makes
the hint re. environment variables display properly for Python 3 when
a sourced file can't be opened.
- 8574dc5 ("Make PyPI's README formatter happy") makes PyPI format the
README properly.
|
|
- 7dc5b74 ("Detect recursive 'source' and print backtrace") makes
debugging recursive 'source's a bit easier.
- Various minor code nits.
|
|
- 94c63de ("Support disabling warnings for redundant assignments")
adds support for disabling warnings in the case where a symbol is
assigned more than once within a .config file but always assigned the
same value.
Contributed by Sebastian Bøe.
- Various other minor code nits.
|
|
- d2a2727 (Implement autoconf.h generation) adds support for generating
C headers in the same format as used for include/generated/autoconf.h
in the kernel, contributed by Carles Cufi from the Zephyr project.
- 5d693b2 (Don't write out 'option env' symbols to C header) makes
it so that attempts to manually set user values on 'option env'
symbols are rejected (though such symbols were never written out to
.config files).
|
|
- Small parsing performance improvements:
80b9198 (Micro-optimize Symbol.__init__() a bit)
626b6ea (Check for type first when parsing properties)
d6aa5cf (Tokenize in _next_line())
- Minor documentation nits (typos, etc.)
|
|
Just a few nits and a small optimization: d890343 (Micro-optimize
write_config() a bit). No bug fixes or functional changes.
|
|
To get 3832555 (Reenable accidentally disabled no-prompt warning) in.
|
|
|
|
Fixes an imply-related issue: 1774239 (Make 'imply' consider direct
dependencies). Imply support should be solid now.
|
|
The only fix is 2a2fcbd (Propagate dependencies to range conditions),
which fixes an obscure issue with dependencies on 'range x y'
properties.
Also includes some internal cleanup and optimization.
|
|
Fixes:
- After 250b370 (Refactor load_config() and fix minor issues),
print_undef_assign=True also considers
"# CONFIG_NOT_DEFINED is not set", which acts like an "n" assignment
in practice.
- 7cbfa47 (Fix undef. assign warning in set_user_value())
Also contains some internal cleanup and optimization.
|
|
Fixes two minor issues that didn't trigger for the kernel defconfigs but
were found by inspecting the Kconfig C sources:
- 5f3d307 (Fix 'default' on non-visible choice symbols)
- f76a524 (Hide non-tristate symbols in non-y tristate choices)
Also includes some minor optimizations and a lot of code cleanups,
including prefixing all internal identifiers with _.
|
|
Shows up when you do 'pip show kconfiglib', which previously showed
UNKNOWN for the license. I was hoping it'd be inferred from the trove
classifiers.
Make this a 1.0.2 release.
|
|
Gets the get_defconfig_filename() fixes out.
|
|
Preparation for adding to PyPI. Switch to setuptools and add a bunch
more metadata. Use semantic versioning (http://semver.org).
|
|
|
|
|