-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare release 1.8 #548
Comments
EDIT: false alarm. |
I will try this week to set up and document the website & release process so that all maintainers can do a release. |
I have moved the website over to github pages. It needs some time for DNS TTL to run out. After it moves over, the previous server should no longer see accesses (@fooishbar FYI). I will write a RELEASING.md doc now explaining the steps needed for a release. EDIT: See #560. |
Maybe we should mention the motivation for this change, namely, to prepare for support of more than 4 layouts.
Agree, it's not a problem to do many releases. |
While the initial motivation was indeed supporting >4 layouts, the change would be also useful if we keep the 4 layouts limit. But I agree, it’s a kind of sneak preview.
Indeed, so we can release single “risky”1 changes rather than group them. Footnotes
|
We have already quite a few new features and MR are stalled, let’s cut a release.
This is our current changelog for 1.8:
libxkbcommon 1.8 - 2024-11-29
API
Breaking changes
Updated keysyms case mappings to cover full Unicode 16.0. This change
provides a consistent behavior with respect to case mappings, and affects
the following:
xkb_keysym_to_lower()
andxkb_keysym_to_upper()
give different outputfor keysyms not covered previously and handle title-cased keysyms.
Example of title-cased keysym:
0x10001f2
(U+01F2
“Dz”):xkb_keysym_to_lower(0x10001f2) == 0x10001f3
(U+01F3
“dz”)xkb_keysym_to_upper(0x10001f2) == 0x10001f1
(U+01F1
“DZ”)Implicit alphabetic key types are better detected, because they use the
latest Unicode case mappings and now handle the title-cased keysyms the
same way as upper-case ones.
Note: As before, only simple case mappings (i.e. one-to-one) are supported.
For example, the full upper case of
U+01F0
“ǰ” is “J̌” (2 characters:U+004A
and
U+030C
), which would require 2 keysyms, which is not supported by thecurrent API.
New
Implement the
GroupLatch
action, usually activated with the keysymISO_Group_Latch
. (#455.group-latch)symbols: Added support for multiple actions per levels:
interpret
statements are used to find an action corresponding for each keysym, as expected.SetMods
,LatchMods
,LockMods
;SetGroup
,LatchGroup
,LockGroup
.Some examples:
SetMods
+SetGroup
: okSetMods
+SetMods
: errorSetMods
+LockMods
: errorSetMods
+LockGroup
: ok(#486.multiple-actions-per-level)
rules: Use XKB paths to resolve relative paths in include statements. (#501.rules-includes)
Updated keysyms using latest [xorgproto] (commit:
d7ea44d5f04cc476dee83ef439a847172f7a6bd1
):Additions:
XKB_KEY_XF86RefreshRateToggle
XKB_KEY_XF86Accessibility
XKB_KEY_XF86DoNotDisturb
Relevant upstream merge request: xorgproto-91.
Added deprecated keysym warnings:
These warnings are activated by setting the log verbosity to at least 2.
It is advised to fix these warnings, as the deprecated items may be removed in a
future release.
Added the following modifiers names definitions in
xkbcommon-names.h
:XKB_MOD_NAME_MOD1
XKB_MOD_NAME_MOD2
XKB_MOD_NAME_MOD3
XKB_MOD_NAME_MOD4
XKB_MOD_NAME_MOD5
XKB_VMOD_NAME_ALT
XKB_VMOD_NAME_META
XKB_VMOD_NAME_NUM
XKB_VMOD_NAME_SUPER
XKB_VMOD_NAME_HYPER
XKB_VMOD_NAME_LEVEL3
XKB_VMOD_NAME_LEVEL5
XKB_VMOD_NAME_SCROLL
Rules: Added support for special layouts indexes:
layout[single]
is the same as withoutexplicit index:
layout
.the RMLVO configuration. Acts as both
layout
andlayout[1]
.layout[2]
..layout[4]
.Also added:
%i
which correspond to the index of the matched layout.:all
qualifier: it applies the qualified item to all layouts.See the documentation
for further information.
Fixes
Previously, setting explicit actions for a group in symbols files made the parser
skip compatibility interpretations for all the groups in the corresponding key,
resulting in possibly broken groups with no explicit actions or missing key fields.
Fixed by skipping interpretations only for groups with explicit actions when parsing
a keymap and setting relevant fields explicitly when serializing a keymap to a string. (#511.explicit-interp-per-group)
registry: Fixed
libxml2
global error handler not reset after parsing, whichcould trigger a crash if the corresponding
rxkb_context
has been freed.Contributed by Sebastian Keller. (#529.fix-xml-error-handler)
xkb_keymap_new_from_names
: Allow only one group per key in symbols sections.While the original issue was fixed in
xkeyboard-config
project, the previous handling in
libxkbcommon
of extra key groups was deemed unintuitive.Note: rules resolution may still produce more groups than the input layouts.
This is currently true for some legacy rules in
xkeyboard-config
. (#262.only-one-group-per-key)xkb_keysym_to_utf8
: Require only 5 bytes for the buffer, as UTF-8 encodes codepoints on up to 4 bytes + 1 byte for the NULL-terminating byte.
Previous standard RFC 2279
(1998) required up to 6 bytes per code point, but has been superseded by
RFC 3629 (2003). (#418)
rules: Fix handling of wild card
*
to match the behavior oflibxkbfile
.Previously
*
would match any value, even empty one. Now:model
andoptions
: always match.layout
andvariant
: match any non-empty value.(#497)
Fixed
xkb_keymap_get_as_string
truncating the 4 longest keysyms names, such asGreek_upsilonaccentdieresis
.The following functions now allow to query also virtual modifiers, so they work
with any modifiers (real and virtual):
xkb_state_mod_index_is_active
xkb_state_mod_indices_are_active
xkb_state_mod_name_is_active
xkb_state_mod_names_are_active
xkb_state_mod_index_is_consumed
xkb_state_mod_index_is_consumed2
xkb_state_mod_mask_remove_consumed
Warning: they may overmatch in case there are overlappings virtual-to-real
modifiers mappings.
Tools
New
Added
--test
option tocompile-keymap
andcompile-compose
, to enable testingcompilation without printing the resulting file.
Added
xkbcli dump-keymap-wayland
andxkbcli dump-keymap-x11
debugging toolsto dump a keymap from a Wayland compositor or a X server, similar to what
xkbcomp -xkb $DISPLAY -
does for X servers.xkbcli how-to-type
: added new input formats and their corresponding documentation.Unicode code points can be passed in the following formats:
0xNNNN
orU+NNNN
.Keysyms can to be passed in the following formats:
0xNNNN
;Fixes
Greek_upsilonaccentdieresis
.Build system
Breaking changes
Fixes
--undefined-version
in the linker because it breaks on olderGNU
ld
. (#481)There are still a 2 MR initially planned for 1.8:
Incorrect implementation ofLatchToLock
andClearLock
#549While I am eager to see both merged, a reasonable option is to cut a release now, even if we cut another one “soon”.
TODO:
Some previous release issues/MRs for reference:
@bluetech @whot
The text was updated successfully, but these errors were encountered: