Very quick video showing how I’ve now moved the Model and decode_flags functions from the main Gleam module into an internal/data.gleam module so that those two item do not get exported by the built JavaScript.
Just a quick exploration of whether functions need to be public or private to be unit tested, and whether public functions are exported in the JavaScript produced by Gleam.
In this session I first ensure the new JavaScript file produced by Gleam is imported into the UI with a version param.
I then switch the example app from lustre.simple application type, to lustre.application, fixing up the function annotations and adding a proper Model as I go along.
I finish off by making sure I can get unit tests to run.
In this session I start to convert a WordPress plugin that uses Elm for its front end to use Gleam and Lustre instead.
After a bit on fumbling around, I get the basic build up and running, bundling and importing the JavaScript output of Lustre’s example counter application into the WordPress dashboard widget UI.
In this session I finish with packaging Snippet Expander for Debian and Ubuntu by showing how debuild has been cleaned up, CI/CD now creates .deb attached to release, and then do the same for .tgz to round things out.
The .deb and .tgz are tested to make sure they’re looking good for use on Debian.
In this session I continue with packaging Snippet Expander for Debian and Ubuntu by fixing up the X11 dependent tests that run when making a .deb, and fixing up some of the lintian warnings.
Things get a little unstuck when I try and automatically suppress some warnings that I don’t care about though.
In this session I continue with packaging Snippet Expander for Debian and Ubuntu by trying to get the debuild CLI tool to build a .deb file, and eventually succeed! 🎉
By the end I have a .deb file that has the correct contents, and installs.
There’s still a bunch of clean up to do, and probably something needs to be done about Snippet Expander’s icon not showing in Budgie desktop’s menu, but we finally got it to work.
00:00:00 make site
00:01:20 make install
00:31:00 debuild
00:34:40 debuild –rootcmd
00:37:15 debian/rules $(prefix)
00:41:30 make deb fails!
01:10:10 debuild works!
01:13:25 .deb looks good
01:18:51 .deb works
01:22:48 fixup config
01:28:03 fixup make deb
01:34:05 commit all the things!
01:44:04 outro