Awesome: v4.1 changelog draft

Created on 9 Feb 2017  路  16Comments  路  Source: awesomeWM/awesome

Awesome v4.1 is the first stable release for the Awesome 4.0 API. It adds
non-breaking new features and fix bugs. The main purpose of the release is to provide additional stability while also adding features submitted by our contributors. This release contains about 350 commits by 35 contributors, including many new developers. Thanks a lot.

New features

The shape API has been extended to both client, notifications and wibox.

The prompt now supports syntax highlight and more advanced key hooks.

The prompt widget gained many new themes variables.

There is a new 2D grid layout with rowspan and colspan support.

There is a new only_on_screen container to make it easier to share wiboxes across multiple screens.

Various documentation improvements. Thanks for the feedbacks.

The taglist now has volatile theme variables.

There is now extra enviroment variables such as AWESOME_ICON_PATH and
AWESOME_THEMES_PATH for those who prefer not installing Awesome.

Dynamic "C" Lua libraries are now detected like pure Lua ones.

gears.timer gained many new constructor arguments to make it easier to use.

Input shape mask are now supported. It is possible to create a wibox with
passthough inputs.

There is a new awful.widget.client_icon widget capable of fetching icons of different sizes.

New theme variables

This release adds a ton of new theme variables to make Awesome prettier. We also thank all users who submitted screenshot.

theme.arcchart_thickness
theme.fullscreen_hide_border
theme.hotkeys_bg
theme.hotkeys_border_colo
theme.hotkeys_border_width
theme.hotkeys_description_font
theme.hotkeys_fg
theme.hotkeys_font
theme.hotkeys_group_margin
theme.hotkeys_label_bg
theme.hotkeys_label_fg
theme.hotkeys_modifiers_fg
theme.hotkeys_shape
theme.maximized_honor_padding
theme.notification_bg
theme.notification_border_color
theme.notification_border_width
theme.notification_fg
theme.notification_font
theme.notification_height
theme.notification_margin
theme.notification_opacity
theme.notification_shape
theme.notification_width
theme.prompt_bg_cursor
theme.prompt_bg
theme.prompt_fg_cursor
theme.prompt_fg
theme.prompt_font
theme.taglist_bg_volatile
theme.taglist_fg_volatile
theme.taglist_shape_border_color_volatile
theme.taglist_shape_border_width_volatile
theme.taglist_shape_volatile
theme.taglist_spacing
theme.tasklist_disable_icon
theme.tasklist_disable_task_name
theme.titlebar_close_button_focus_hover
theme.titlebar_close_button_focus_press
theme.titlebar_close_button_normal_hover
theme.titlebar_close_button_normal_press
theme.titlebar_floating_button_focus_active_hover
theme.titlebar_floating_button_focus_active_press
theme.titlebar_floating_button_focus_inactive_hover
theme.titlebar_floating_button_focus_inactive_press
theme.titlebar_floating_button_normal_active_hover
theme.titlebar_floating_button_normal_active_press
theme.titlebar_floating_button_normal_inactive_hover
theme.titlebar_floating_button_normal_inactive_press
theme.titlebar_maximized_button_focus_active_hover
theme.titlebar_maximized_button_focus_active_press
theme.titlebar_maximized_button_focus_inactive_hover
theme.titlebar_maximized_button_focus_inactive_press
theme.titlebar_maximized_button_normal_active_hover
theme.titlebar_maximized_button_normal_active_press
theme.titlebar_maximized_button_normal_inactive_hover
theme.titlebar_maximized_button_normal_inactive_press
theme.titlebar_minimize_button_focus_hover
theme.titlebar_minimize_button_focus_press
theme.titlebar_minimize_button_normal_hover
theme.titlebar_minimize_button_normal_press
theme.titlebar_ontop_button_focus_active_hover
theme.titlebar_ontop_button_focus_active_press
theme.titlebar_ontop_button_focus_inactive_hover
theme.titlebar_ontop_button_focus_inactive_press
theme.titlebar_ontop_button_normal_active_hover
theme.titlebar_ontop_button_normal_active_press
theme.titlebar_ontop_button_normal_inactive_hover
theme.titlebar_ontop_button_normal_inactive_press
theme.titlebar_sticky_button_focus_active_hover
theme.titlebar_sticky_button_focus_active_press
theme.titlebar_sticky_button_focus_inactive_hover
theme.titlebar_sticky_button_focus_inactive_press
theme.titlebar_sticky_button_normal_active_hover
theme.titlebar_sticky_button_normal_active_press
theme.titlebar_sticky_button_normal_inactive_hover
theme.titlebar_sticky_button_normal_inactive_press
theme.wibar_bgimage
theme.wibar_bg
theme.wibar_border_color
theme.wibar_border_width
theme.wibar_cursor
theme.wibar_fg
theme.wibar_height
theme.wibar_ontop
theme.wibar_opacity
theme.wibar_shape
theme.wibar_stretch
theme.wibar_type
theme.wibar_width

Noteworthy fixes

  • Some applications such as VLC and Terminator had large unpainted areas
  • The magnifier layout was broken
  • Un-maximization misbehaved
  • Docking area is now per-tag again
  • CMake missing dependencies detection is fixed
  • Support for FreeBSD and OpenBSD have been restored.
  • Dialog and transient window can be moved to other screens again
  • The fallback mode (when Awesome fails to load rc.lua) is now more robust

Behavior changes

This is a stable release and we tried to minimize any upgrade impact. However
various bugfix induced minor, not noticeable, changes:

  • HiDPI support fix changed the default theme "taglist square". This is only
    true if the original theme file is used (not a copy).
  • Maximization now honor the screen padding. There is an option to restore the
    previous behavior.
  • Un-maximized clients are now restored to their current screen instead of the
    screen where they were maximized.
  • Hotkey popup no longer enable the Vim module by default due to user
    complaints

awful.util has been split into multiple modules in the gears library to reduce the dependency graph. This allows for better unit testing. awful.util will be deprecated in Awesome v5. For now, it is still safe to use it. However, new code should use the functions from gears instead of awful.util.

Other

The minimal LGI version is now 0.8.0. It was found that Awesome 4.0 also had
an issue in the menubar module when used with 0.7.3. GTK+3 is now required
to run the integration tests.

Most helpful comment

Since the previous release had a Daft Punk codename, I suggest with all the huge internal changes we did we title this one Technologic.

~buy it~, use it, break it, fix it,
trash it, change it, ~mail~ - upgrade it
:grin:

All 16 comments

when are you planning to do a release?

The shape API has been extended to both client and wibox.

it will be also nice to get naughty PR updated and merged before then

when are you planning to do a release?

psychon proposed the beginning or March. I agree with that timeline. There is quite many bugfix already.

Set the 11th of March now (one month from now): https://github.com/awesomeWM/awesome/milestone/4.

Although I would rather certainly do a release (4.0.1) soon already, since there are so many bugfixes already.

Although I would rather certainly do a release (4.0.1) soon already, since there are so many bugfixes already.

I prefer not releasing x.y.Z releases anymore. If there is important bugs to fix, then just go ahead with x.Y. x.y.Z forces us to keep a stable branch and that wont work.

I disagree. We should rather have more bugfix releases - but I am OK with calling them 4.1 then already.
My point is more that we should get fixes out sooninsh, and not only in a month from now.
What about the version to be included in Debian?

I am also ok to call pure bugfix release 4.1/2/3/4/5. My point is not "have less releases". My point is "releases should always be from the master branch". Given the master branch may have new features, then the x.y.Z can't be used. If 4.1 is released tomorrow morning, I am totally fine with that. What I am not ok with:

  • Introduce API breakages this soon after 4.0
  • Introduce breaking changes that would have been easy to temporarily make backward compatible
  • Introduce behavior changes that are uncalled for
  • Keep a separate "stable" branch no dev will test or use or bother to backport commits to

I totally agree.
What about branching off 4.1 then, and stabilize it (until a release (or just release it), but do not let it diverge)?

Anyway, that's not really the point of this issue, so let's rather create a new one or discuss on IRC.

No branching, if you want it to be released this weekend, just go through the changelog above and lets make it happen. I can run the theme script now to generate the list of new variables.

I do not want to push it.. but branching is fine, since it's only like a tag after all.

But who will test the branch? If the branch goes untested, then that makes it less stable than master, so what's the point? Nobody will backport and vet every commits in a timely way in the first place.

Since the previous release had a Daft Punk codename, I suggest with all the huge internal changes we did we title this one Technologic.

~buy it~, use it, break it, fix it,
trash it, change it, ~mail~ - upgrade it
:grin:

//TODO there is a script, but there's no point to run it now

Is there a point for that now?

Is there a point for that now?

Done

Did we want to move awful.util.deprecate[_class] to gears.debug before 4.1 is a go?

I can do that tomorrow (Mar 15).

That would be welcome, but not absolutely necessary, so don't feel any rush. The deprecation itself wont kick-in until 5.0

Was this page helpful?
0 / 5 - 0 ratings

Related issues

elyoas picture elyoas  路  5Comments

bew picture bew  路  5Comments

legostax picture legostax  路  5Comments

SethBarberee picture SethBarberee  路  3Comments

xordspar0 picture xordspar0  路  5Comments