unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: David Pirotte <david@altosw.be>
To: guile-user <guile-user@gnu.org>, guile-devel <guile-devel@gnu.org>
Subject: GNU G-Golf 0.8.0-rc.5 available for testing
Date: Fri, 19 Jul 2024 21:02:50 -0300	[thread overview]
Message-ID: <20240719210250.2d533054@tintin> (raw)

[-- Attachment #1: Type: text/plain, Size: 6151 bytes --]

Hello Guilers,

The fifth release candidate of the upcoming GNU G-Golf 0.8.0 release is
now available for testing:


* Tarball and a GPG detached signature [*]:

	http://ftp.gnu.org/gnu/g-golf/g-golf-0.8.0-rc.5.tar.gz
	http://ftp.gnu.org/gnu/g-golf/g-golf-0.8.0-rc.5.tar.gz.sig


* Install

Dependencies and complete installation instructions are given in the
distributed INSTALL file, or here:

	https://www.gnu.org/software/g-golf/install.html


* Noteworthy changes in 0.8.0-rc.5

Here is a summary of the noteworthy changes in this release, also
available in NEWS file and on the G-Golf website.

** New interfaces

g-markup-escape-text
gi-import-by-name
  new #:allow-constant? optional keyword argument

GVariant
GVariantClass
GVariantType

The GLib Variant, VariantType and VariantClass typelib entries are now
imported. Testing has been so far somewhat limited, but for what it's
worth, the AdwDemoPageTabView, added in this release, defines and uses a
couple of g-variant-new-boolean based simple actions. However, they work
iif g-simple-action-new-stateful calls pass #f (NULL) as their
parameter-type arg, and therefore, (as stated by the upstream
documentation), none of the action activate callback ever receives a
valid g-variant arg value (it always is #f (NULL)). This needs further
investigation, but you may (and even may prefer to) implement an hold an
action state as/in a goops slot, i.e. in the (pages tab-view
tab-view-demo-page) module, the icon?, loading?, needs-attention?,
indicator? and muted? slots.

** Enhancement

*** Template and ui sxml files support

Syntax highlighting support for the comments attribute has been added.

*** g-closure-marshal

(1) <closure> initialize method has been updated to not force the
#:return-type and #:param-types initialize keyword arguments, as as
GObject actually fills the GClosure structure with those (unless you are
testing <closure> and plan to call the invoke g-golf method).

(2) some GObject function/method GClosure arg(s) should preserve the
GValue pointer when calling the user scheme closure, instead of
extracting its value - for example, bind-property-full last two args
expect a BindingTransformFunc GClosure, for which it is essential to
preserve its second and third GValue arguments, as the user needs to
actually set either one, the other or both.

Note that wrt (2), there is no way to automatically detect which
argument(s) of a callback require(s) a GValue pointer preservation prior
to call the user scheme closure. Therefore, g-golf implements a (simple)
mechanism to handle those situations, but it has to be maintained
'manually' - if you come across a similar need, not being covered by the
existing implementation, let us know, we'll fix it. Those interested may
search and read both the preserve-g-value-ptr? procedure code as well as
the preceding comment, which briefly explains how it works, in the
(g-golf hl-api callable) module.

** Examples

*** Adwaita Demo

The Adwaita demo has been restructured, and now properly support the
Dark Style desktop (or application) mode.

The following Adwaita Demo pages have been added:

  AdwDemoPageAvatar
  AdwDemoPageSplitViews
  AdwDemoPageTabView

** Bug fixing

*** <gtype-instance> g-param slots initialization

It was a bug not to call g-inst-g-param-set-property, whether the
instance initialization was passed an init-kw arg or whether the
initialization has to use the p-spec default value - fixed.

*** gi-import-registered with-methods? default value

Removing the specialization default value for the with-methods? argument
when the namespace is part of the namespace import exception list.

The fix allows to automatically (gi) import GLib/GObject typelib
component(s) that are not part of the manually (ffi) defined subset,
such as the GVariant type, constructors and methods.


* You can help

1. Testing by installing from the tarball, or from the source if you
   prefer, on the distro of your choice.

2. By running the distributed examples.

Ultimately, one of the best way to test, and participate, is to select
G-Golf to develop the next application of your dream! Here is an
overview of the GNOME platform libraries [1], accessible using G-Golf.
In particular, libadwaita [2] provides a number of widgets that change
their layout based on the available space. This can be used to make
applications adapt their UI between desktop and mobile devices (as shown
in the G-Golf port of the "Adwaita demo").


* Contact

Consider joining us on irc [3], where you may ask for help or report a
problem [4].

However, if you prefer:

	G-Golf uses the guile-user@gnu.org mailing list
	Report bugs to bug-g-golf@gnu.org


Thanks!
David


[*] Use a .sig file to verify that the corresponding file (without the
    .sig suffix) is intact.  First, be sure to download both the .sig
    file and the corresponding tarball.  Then, run a command like this:

	gpg --verify g-golf-0.8.0-rc.5.tar.gz

    If that command fails because you don't have the required public
    key, then run this command to import it:

	gpg --keyserver keys.gnupg.net --recv-keys A3057AD7

    and rerun the 'gpg --verify' command


[1] https://developer.gnome.org/documentation/introduction/overview/libraries.html
[2] https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/
[3] https://www.gnu.org/software/g-golf/contact.html
[4] When reporting a problem, or if you think you found a bug, it is
very important that you prepare a minimal reproducible example (MRE),
sometimes also referred to as a short self-contained correct example
(SSCCE)

	http://www.sscce.org/
	https://en.wikipedia.org/wiki/Minimal_reproducible_example

Also, on irc, we chat :), so please do not write code snipsets directly
in the channel, unless 2 or 3 lines of code, nor (long/huge) error
messages of course - for more then 2 or 3 lines of code, or error
messages, always use a tor-friendly paste service (avoid those that
track its visitors and require javascript, thanks!).

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

                 reply	other threads:[~2024-07-20  0:02 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240719210250.2d533054@tintin \
    --to=david@altosw.be \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).