Skip to content

[meta] Apply to GNOME Circle #12

Description

@GeopJr

This is more of a discussion.

If you believe gtk4.cr+gi-crystal are "production-ready", would you like to submit them to Circle?

In my opinion, it could promote Crystal for building GTK apps!

My main concerns on the application form are:

  • Project license: gi-crystal is BSD-3-Clause while gtk.cr is MIT, not sure which one should be listed
  • Please list some examples of where the project is used: I know of Tijolo and Collision, I believe they are enough but if you know anything else, add it!

I don't think an org is required but I am willing to transfer over libadwaita.cr, gettext.cr, non-blocking-spawn and/or any other gtk related lib or script I have so there's a "central authority" (+ so releases don't lag behind).

Activity

  1. hugopl commented on Jun 6, 2022

    @hugopl
    Owner

    I'm fine on whatever license.

    I think's production ready, but not feature complete, there's a lot of things that still missing, from what I remember now:

    • Revisit GVariant implementation.
    • Check missing bits on GValue implementation.
    • Support to declare GObject properties.
    • Improve structs, so a Point struct with just 2 integers don't need to allocate heap memory.
    • Support to declare signals with GObjects, enums and any other Crystal object as parameters (currently only number, bool and String are supported).
    • Support to declare interfaces to GObject type system
    • Support to implement GObject interfaces on user types.
    • Support to implement virtual functions.

    Most of these things are not hard to do. Maybe the submission to Gnome circle can give a bit of visibility to the project, and if I have time I can then write some blog posts on planet.gnome about the bindings development, so yes, I think it's a good idea.

    However we still have not much applications done with this bindings yet. I'm rewriting Tijolo using this binding but the current last release still using GTK3 + https://github.com/jhass/crystal-gobject and leaking memory :-(.

    I didn't know about your Collision application, so I think it would be nice to also add a list of apps using the gtk4/adwaita shard on README, not only for visibility, but also because it helps people new to GTK to try out the shard.

    About having a "central authority", I think this would be useful if the central authority be gnome itself, however they use their own instance of gitlab, I not only prefer to work on github as I think github has more visibility, but if some day we get blessed by gnome org we can move the repo to their gitlab instance and keep mirrors on github.

  2. GeopJr commented on Jun 6, 2022

    @GeopJr
    ContributorAuthor

    I'm fine on whatever license.

    Not sure if one of the two projects should re-license just so they are the same one or just leave it as is.

    However we still have not much applications done with this bindings yet. I'm rewriting Tijolo using this binding but the current last release still using GTK3 + https://github.com/jhass/crystal-gobject and leaking memory :-(.

    I didn't know about your Collision application, so I think it would be nice to also add a list of apps using the gtk4/adwaita shard on README, not only for visibility, but also because it helps people new to GTK to try out the shard.

    Yeah, I don't think Collision alone is going to be enough 😢 Other options are either going around migrating any gtk3 crystal apps to gtk4 or getting around to finishing some wip apps I have or get some new people to give it a try!

    For newcomers I had written https://ultimate-gtk4-crystal-guide.geopjr.dev some time ago (switched to a new frontend recently), but it might be a bit outdated or wrong in some places as it mostly documents my workflow. However it does cover everything Collision supports + more (gresource, UI files, css, icons, i18n with gettext, bundling files, flatpak, makefile, multithreading, creating an example stat info app step by step & others). Perhaps we could work on that to have a defacto guide (I think gtk-rs also has a similar book) to help newcomers.

    Collision has been around for like almost a year(?) and hadn't had a single bug report related to the bindings which is a +1 on the stability of them.

    About having a "central authority", I think this would be useful if the central authority be gnome itself, however they use their own instance of gitlab, I not only prefer to work on github as I think github has more visibility, but if some day we get blessed by gnome org we can move the repo to their gitlab instance and keep mirrors on github.

    I think I used the wrong word, I meant that eg. If gi-crystal introduces a breaking change or important fix then you or the central authority(?) should be able to instantly update the other libraries (like libadwaita.cr or gettext) so users won't have to wait for (in the case of libadwaita.cr) me to update it or review and merge a PR for them to use it.

    I don't really have an opinion on the others, let me know if there's anything I can help with (even indirectly like guides, websites, logos etc)!

  3. hugopl commented on Jun 7, 2022

    @hugopl
    Owner

    Perhaps we could work on that to have a defacto guide (I think gtk-rs also has a similar book) to help newcomers.

    I think translate the gtk-rs book to Crystal would be a very good idea, however besides English not being my mother language I prefer to spend my spare time making gi-crystal better rather than translating (to Crystal, not Portuguese!) a book, even knowing it would be extreme valuable.

    About get told about breaking changes, I think this isn't a problem now, and probably not in the future as well if depending shards stick to a version in shard.yml instead of just use master branch. To be extra safe an application can also include in the released tarball the generated bindings, so the code doesn't stop compiling if some new version of glib/gtk/etc introduces some construct that crashes the generator.

    Anyway, every time I start coding Tijolo I find new bugs/missing features on gi-crystal, so I think we felt it as production ready just because there's not much people using it yet, hehehe

  4. hugopl commented on Jun 7, 2022

    @hugopl
    Owner

    BTW I just enabled discussions https://github.com/hugopl/gi-crystal/discussions 🙂

  5. GeopJr commented on Jun 9, 2022

    @GeopJr
    ContributorAuthor

    Great! You can turn this into a discussion by clicking the "Convert to discussion" button on the sidebar (so it doesn't count as an issue!)

    github issue sidebar with the buttons Lock conversation, Pin issue, Transfer issue, Convert to discussion, Delete issue

  6. Repository owner locked and limited conversation to collaborators on Jun 9, 2022
  7. converted this issue into a discussion #16 on Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions