• Show log

    Commit

  • Hash : 23598fa1
    Author : Pierre Le Marre
    Date : 2025-03-25T22:52:06

    Enable merge mode “replace” in include statements
    
    Previously only the merge modes “override” and “augment” were available
    in include statements, using the prefix ‘+’ and ‘|’ respectively. While
    on one hand `replace` include statement can be used in keymap files, on
    the other hand *rules* files have no way to express the *replace* mode.
    
    This commit enables the merge mode “replace” using the prefix `^`. This
    prefix was chosen due to its similarity with the `XOR` bit operator,
    which convey *mutual exclusion*.
    
    Other candidates:
    - `!` conveys some kind of higher precedence, akin to CSS `!important`.
      But it conflicts with the section header `!`, which is a token in the
      current parser. It would require special handling, not worth it. It
      also convey the meaning of negation, which is confusing.
    - `&` has the advantage of not corresponding to a token in the rules
      parser. `^` seems however to stand out more and it is less likely to
      trigger erroneous comparison with `|` and `&` bit operators.
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/libxkbcommon.git
    Git SSH git@git.kmx.io:kc3-lang/libxkbcommon.git
    Public access ? public
    Description

    keymap handling library for toolkits and window systems

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags

  • README.md

  • Fragments for the changelog

    This directory contains fragments for the future NEWS file.

    Introduction

    We use <code>towncrier</code> to produce useful, summarized news files.

    There are 3 sections types:

    • API: changes/api
    • Tools: changes/tools
    • Build System: changes/build

    There are 3 news fragments types:

    • Breaking changes: .breaking
    • New: .feature
    • Fixes: .bugfix

    Adding a fragment

    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:

    • A bug fix for the issue #463 is an API change, so the corresponding file should be named changes/api/463.bugfix.md.
    • A new feature for tools like #448 corresponds to e.g. changes/tools/+add-verbose-opt.feature.md.

    Guidelines for the fragment files:

    • Use the Markdown markup.
    • Use past tense, e.g. “Fixed a segfault”.
    • Look at the previous releases NEWS file for further examples.

    Build the changelog

    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