Hash :
44480f7c
Author :
Date :
2025-04-01T08:28:02
xkbcomp: Enable lists of keysyms and actions {} and {a}
Motivations:
- Follow the principle of least astonishment;
- Ensure consistency;
- Enhance the use of custom defaults;
- Facilitate the tests.
There is some ambiguity because we use `{}` to denote both an empty list of
keysyms and an empty list of actions. But as soon as we get a keysym or an
action, we know whether it is a `MultiKeySymList` or a `MultiActionList`.
So we just count the `{}` at the *beginning* using `NoSymbolOrActionList`,
then replace it by the relevant count of `NoSymbol` or `NoAction()` once the
ambiguity is solved. If not, this is a list of empties of *some* type: we
drop those empties and delegate the type resolution using `ExprEmptyList()`.
This directory contains fragments for the future NEWS file.
We use <code>towncrier</code> to produce useful, summarized news files.
There are 3 sections types:
changes/api changes/tools changes/build There are 3 news fragments types:
.breaking .feature .bugfix
Add a short description of the change in a file changes/SECTION/ID.FRAGMENT.md,
where:
SECTION and FRAGMENT values are described in the previous section. ID is the corresponding issue identifier on Github, if relevant. If there is
no such issue, then ID should start with + and some identifier that make
the file unique in the directory. Examples:
changes/api/463.bugfix.md. changes/tools/+add-verbose-opt.feature.md. Guidelines for the fragment files:
Install <code>towncrier</code> from Pypi:
python3 -m pip install towncrier
Then build the changelog:
# Only check the result. Useful after adding a new fragment.
towncrier build --draft --version 1.8.0
# Write the changelog & delete the news fragments
towncrier build --yes --version 1.8.0