Olivier, Simon & Tobias

Feb 21, 2022

Please welcome Olivier Goffart, Simon Hausmann, @tr0nical and Tobias Hunger, @t_hunger from @slint_ui, the fast and easy UI Toolkit formerly known as SixtyFPS.

Feb 21. to 28. on @imakefoss

Interview: https://t.co/nGLvqPi69L

@imakefoss is a rotation curation account. https://t.co/io2bwPaCDY

Feb 21, 2022

Hey everyone, this week we’re taking over the IMakeFOSS account. We’ll share a little about how we’re developing our project, the community around it, and the larger ecosystem around us.

– @slint_ui (Simon)

Feb 21, 2022

A habit that our @t_hunger introduced in the project are weekly regular summaries, with direct links to the commits on GitHub. They make it easy for everyone in the community to stay up-to-date. You can read our latest summary here:

https://t.co/zyvVANCPWH

– @slint-ui (Simon)

Feb 22, 2022

Let’s talk about everybodies favorite topic: Software licenses. We use SPDX to provide license information: GPL-3.0-only OR LicenseRef-Slint-commercial

– @slint_ui(@thunger)

Feb 22, 2022

As a company developing free software, we picked a dual license model. That has worked in the C++ world to build a world-class toolkit before.

– @slint_ui (@t_hunger)

Feb 22, 2022

We use the @fsfe’s REUSE tool and our project is fully compliant. This help us, our users and customers to meet their respective license obligations.

– @slint_ui (@t_hunger)

Feb 24, 2022

How you respond to contributions has a big impact on how users and observers perceive your project. We’d like to share a few observations that we’ve made over the years that you may find useful.

– @slint_ui (Simon)

Feb 24, 2022

Assume the best intentions by the submitter. They’ve jumped through some hoops to make it to this merge request.

Feb 24, 2022

In your feedback focus on what you would like the contributor to change to get it ready for merging.

Feb 24, 2022

Consider accepting and merging even if it’s not perfect. You or the contributor can fix some things can in a follow-up patch. This also helps with long term engagement and trust.

Feb 24, 2022

Help the contributor to break the big problem down into pieces.

Feb 24, 2022

Consider accepting contributions that expand the scope of your project, especially if the contributor expresses willingness to support. That can be documentation how to integrate with libraries that you may not use yourself, for example.

Feb 24, 2022

Respond timely and your contributors will appreciate it, a lot. It’s a huge motivational boost to get your changes into, that can be worth your priority.

Feb 25, 2022

We’re using Rust to write our libraries, aka crates. We can’t and don’t want to reinvent every wheel, so we depend on other crates for functionality like image decoders. Similarly, our offering are crates that Rust developers can depend on.

– @slint_ui (Simon)

Feb 25, 2022

@slint_ui One key aspect in a forest of dependencies is dealing with changes in the API. For Rust semantic versioning ( https://t.co/WkCTpYvqKB ) is the common mechanism to communicate to your users how they can upgrade to your latest version.

Feb 25, 2022

@slint_ui For example a new minor or patch version won’t require any changes for any users, while a new major version might. Cargo, the rust build system, can automatically pick a new version if it’s compatible with what you have specified.

Feb 25, 2022

@slint_ui Special care must taken when you’re using types from another crate in your public API. That means whenever you upgrade to a new major version of that dependency, your next release must also bump the major version.

Feb 25, 2022

@slint_ui You need to also to be careful when making existing functionality optional using Cargo’s feature system. If anyone uses your crate with default-features = false then they might run into problems and you would have to release a new major version to communicate that.

Feb 25, 2022

@slint_ui Olivier has written an article that describes the problem in detail and offers a solution won’t require you to bump your major version:

https://t.co/Z4TKlJnsAF

Feb 28, 2022

Thanks for reading us this week!

If you’re interested in more about native UI toolkits, C++, Rust and how we combine this with FOSS, follow us on @slint_ui