<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Kconfiglib.git/tests, branch v12.2.0</title>
<subtitle>Fork of https://github.com/zephyrproject-rtos/Kconfiglib.git</subtitle>
<id>https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v12.2.0</id>
<link rel='self' href='https://git.mcdonnell.dev/Kconfiglib.git/atom?h=v12.2.0'/>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/'/>
<updated>2019-06-03T23:51:58Z</updated>
<entry>
<title>Remove reference to Kconfiglib 1 API</title>
<updated>2019-06-03T23:51:58Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2019-06-03T23:51:58Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=9d37b21392fb5aa732a2692c5aaa3836777cdd28'/>
<id>urn:sha1:9d37b21392fb5aa732a2692c5aaa3836777cdd28</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix obscure crash with rsource and $srctree pointing to a symlink</title>
<updated>2019-06-01T04:21:54Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2019-06-01T02:15:04Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=92791a3fe15bb2d5c14039fbd531be73255f0c6d'/>
<id>urn:sha1:92791a3fe15bb2d5c14039fbd531be73255f0c6d</id>
<content type='text'>
Sourcing a file with an absolute path and using rsource in it triggered
a relpath() between the absolute path and $srctree. Since e.g.
symlink/../bar/ = bar/ is not guaranteed for symlinks, this could lead
to the rsource'd file not being found if $srctree pointed to a symlink.

Switch to a simpler, more textual method for stripping $srctree from
glob results, which should be robust against symlink shenanigans. This
also makes the code a bit easier to follow.

Discovered by Marc Herbert.

Piggyback some minor cleanup.
</content>
</entry>
<entry>
<title>Use the '&lt;type&gt; "prompt"' shorthand in __str__()</title>
<updated>2019-05-25T16:04:15Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2019-05-25T15:04:09Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=9f57bf933508901f07d22c75fca42e62145f5512'/>
<id>urn:sha1:9f57bf933508901f07d22c75fca42e62145f5512</id>
<content type='text'>
Pro: Looks cleaner and matches how definitions are usually written.

Con: Makes it harder to discover that 'bool "foo"' is just shorthand for
'bool' + 'prompt "foo"' (though it's documented).

The pros probably win.
</content>
</entry>
<entry>
<title>Strip direct deps. from property conditions in Symbol/Choice/MenuNode.__str__()</title>
<updated>2019-05-25T14:18:29Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2019-05-25T11:52:09Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=bb33eed5cc6bdce2b65aa570ecd9a400bcd9c180'/>
<id>urn:sha1:bb33eed5cc6bdce2b65aa570ecd9a400bcd9c180</id>
<content type='text'>
Commit e81a77b ("Consistently put direct deps. last when propagating")
makes the position of the direct deps. in property conditions
predictable after dependency propagation, making it easy to strip them
as needed.

Use this to implement MenuNode.orig_{prompt,defaults,selects,implies,ranges},
which work like the non-orig_* versions but omit the direct deps. Use
those in turn to omit the direct deps in Symbol/Choice.__str__().

The direct deps. (with propagated parent deps.) can still be seen after
'depends on ...', so there is no loss of information.

This unclutters Kconfig definitions shown in menuconfig/guiconfig and in
any generated documentation. The old output also had duplicated
dependencies, though it doesn't matter for evaluation.

Before:

  config A
  	bool
  	prompt "A" if DEP
  	default y if FOO &amp;&amp; DEP
  	depends on DEP

After:

  config A
  	bool
  	prompt "A"
  	default y if FOO
  	depends on DEP
</content>
</entry>
<entry>
<title>Consistently put direct deps. last when propagating</title>
<updated>2019-05-24T11:08:12Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2019-05-24T10:14:31Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=e81a77bdb0687b62f91d7dc4d5b84b443808c0a7'/>
<id>urn:sha1:e81a77bdb0687b62f91d7dc4d5b84b443808c0a7</id>
<content type='text'>
Preparation for some later additions. Previously, the 'visible if' deps
appeared to the right of the 'depends on' deps. Now, the direct deps
always appear last.

With this change, the prompt tuple is only updated once for any given
menu node too, which should be a tiny bit faster.
</content>
</entry>
<entry>
<title>Make {load,write}_config(filename=None) implement the standard behavior</title>
<updated>2018-12-08T02:28:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-12-07T23:41:01Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=7b4f72fa7a19b7c38312a6f6fd553ca45f04e9a6'/>
<id>urn:sha1:7b4f72fa7a19b7c38312a6f6fd553ca45f04e9a6</id>
<content type='text'>
Make the previously obligatory 'filename' argument to load_config() and
write_config() default to None, and have that implement the behavior
you'd usually want: read/write either KCONFIG_CONFIG or ".config" if
unset, and read the 'option defconfig_list' configuration file if
KCONFIG_CONFIG/".config" doesn't exist.

For load_config(), filename=None also allows the configuration file to
be missing without raising an error. load_config() returns True if a
local configuration file was loaded, which is useful to check in the
menuconfig (if no local configuration file exists, we always want to
prompt for saving the configuration when exiting).

Also add a 'verbose' argument (default True) to load_config() and
read_config() that makes them print which files were read/written in
filename=None mode.

Also generalize olddefconfig.py and oldconfig.py to not require there to
already be a local configuration file. This was a bit silly for
olddefconfig.py in particular.

Remove the examples/defconfig.py script. It's a duplicate of
olddefconfig.py.
</content>
</entry>
<entry>
<title>Fix removal of multiple consecutive 'if' nodes</title>
<updated>2018-11-02T02:52:46Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-11-02T01:35:49Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=0e6cd82908f5c649e15e6a63ad77a94f627449d2'/>
<id>urn:sha1:0e6cd82908f5c649e15e6a63ad77a94f627449d2</id>
<content type='text'>
Despite 'if' nodes being flattened before 'if' removal, consecutive 'if'
nodes can still show up for code like the following:

  ...

  if X
  endif

  if X
  endif

  ...

_remove_ifs() failed to remove the second 'if' node, leading to a crash
e.g. when turning on show-all mode in the menuconfig in a menu with such
code (due to the unexpected 'if' node).

Stuff like the above could potentially result from 'osource's with no
matches, though I just spotted the error while looking over the code.

Fix the 'if' removal logic to properly handle consecutive 'if' nodes.
</content>
</entry>
<entry>
<title>Support enabling the assignment-to-undef. symbol warning via the environment</title>
<updated>2018-10-26T21:34:18Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-10-26T20:23:27Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=699fd81bf3a67606396035697357c5665dcd68af'/>
<id>urn:sha1:699fd81bf3a67606396035697357c5665dcd68af</id>
<content type='text'>
This makes it possible to enable it for the bundled tools, by setting
KCONFIG_WARN_UNDEF_ASSIGN=y. Previously, the code had to be modified to
call Kconfig.enable_undef_warnings().

Also rename KCONFIG_STRICT to KCONFIG_WARN_UNDEF, for consistency. Keep
supporting KCONFIG_STRICT as an alias for backwards compatibility.
</content>
</entry>
<entry>
<title>Make Kconfig.choices match its description</title>
<updated>2018-10-16T05:35:53Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-10-16T04:58:54Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=98af94da6a9ef81c8e2c56fbf60741fa8d2a2dd1'/>
<id>urn:sha1:98af94da6a9ef81c8e2c56fbf60741fa8d2a2dd1</id>
<content type='text'>
Kconfig.choices has accidentally been identical to
Kconfig.unique_choices all along, because named choices defined in
multiple locations (which are pretty obscure) were only added once.

Fix Kconfig.choices to match its description. This simplifies the code a
bit too.

Kconfig.unique_choices is usually what you want.
</content>
</entry>
<entry>
<title>Refactor parsing to get rid of _saved_line</title>
<updated>2018-09-29T16:08:52Z</updated>
<author>
<name>Ulf Magnusson</name>
<email>ulfalizer@gmail.com</email>
</author>
<published>2018-09-29T14:27:21Z</published>
<link rel='alternate' type='text/html' href='https://git.mcdonnell.dev/Kconfiglib.git/commit/?id=c1dcaa3ccbb263f021157f2aebd185c6388c28a1'/>
<id>urn:sha1:c1dcaa3ccbb263f021157f2aebd185c6388c28a1</id>
<content type='text'>
Handle the line-after-help-text case specially, which allows _has_tokens
(renamed to _reuse_tokens) to be used as the unget mechanism for help
texts as well, leaving _saved_line unused. Move the _reuse_tokens check
into _next_line().

This makes _parse_block() as straightforward as _parse_properties(), and
simplifies _parse_properties() a tiny bit too by getting rid of the
'_tokens_i = -1' assignment.
</content>
</entry>
</feed>
