<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Announcement on Clément Joly – Open-Source, Rust &amp; SQLite</title><link>https://joly.pw/tags/announcement/</link><description>Recent content in Announcement on Clément Joly – Open-Source, Rust &amp; SQLite</description><image><title>Clément Joly – Open-Source, Rust &amp; SQLite</title><url>https://joly.pw/images/open-graph-home-original.png</url><link>https://joly.pw/images/open-graph-home-original.png</link></image><generator>Hugo -- 0.154.3</generator><language>en</language><copyright>Clément Joly</copyright><lastBuildDate>Wed, 11 Mar 2026 03:32:38 +0000</lastBuildDate><atom:link href="https://joly.pw/tags/announcement/index.xml" rel="self" type="application/rss+xml"/><item><title>New Asciinema Hugo Module Versions</title><link>https://joly.pw/blog/new-asciinema-hugo-module-versions/</link><pubDate>Thu, 07 Mar 2024 07:35:45 +0000</pubDate><guid>https://joly.pw/blog/new-asciinema-hugo-module-versions/</guid><description>&lt;p&gt;I’ve just added the last 8 versions of the &lt;a href="https://github.com/asciinema/asciinema-player/"&gt;Asciinema player&lt;/a&gt; to &lt;a href="https://joly.pw/gohugo-asciinema/"&gt;gohugo-asciinema&lt;/a&gt;, my &lt;a href="https://gohugo.io/"&gt;Hugo&lt;/a&gt; module to easily integrate the Asciinema player to your website.
Lots of exciting new features, like improved decoding and rendering efficiency as well as some support for streaming asciicasts.
See the &lt;a href="#changelogs"&gt;changelog links below&lt;/a&gt; for details of the changes.
There were no changes made to the Hugo module itself, besides copying the JS &amp;amp; CSS from the Asciinema player.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I’ve just added the last 8 versions of the <a href="https://github.com/asciinema/asciinema-player/">Asciinema player</a> to <a href="/gohugo-asciinema/">gohugo-asciinema</a>, my <a href="https://gohugo.io/">Hugo</a> module to easily integrate the Asciinema player to your website.
Lots of exciting new features, like improved decoding and rendering efficiency as well as some support for streaming asciicasts.
See the <a href="#changelogs">changelog links below</a> for details of the changes.
There were no changes made to the Hugo module itself, besides copying the JS &amp; CSS from the Asciinema player.</p>
<p>Security note: all the releases are <a href="/open-source/docs/security/">signed</a>.
You can even check that the files JS and CSS file in the plugin match the ones uploaded in release pages.
Thanks to <a href="https://github.com/ku1ik">@ku1ik</a> for providing these files directly!</p>
<h2 id="updating-in-hugo">Updating in Hugo</h2>
<p>As usual to get the latest version the player on your website, you can run:</p>
<pre tabindex="0"><code>hugo mod get -u cj.rs/gohugo-asciinema
</code></pre><h2 id="changelogs">Changelogs</h2>
<p>Here is the changelogs in the upstream Asciinema player for the updated versions:</p>
<ul>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.7.0">3.7.0</a></li>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.6.4">3.6.4</a></li>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.6.3">3.6.3</a></li>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.6.2">3.6.2</a></li>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.6.1">3.6.1</a></li>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.5.0">3.5.0</a></li>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.4.0">3.4.0</a></li>
<li><a href="https://github.com/asciinema/asciinema-player/releases/tag/v3.3.0">3.3.0</a></li>
</ul>
<h2 id="delay-updating-the-css-and-js-files">Delay Updating the CSS and JS Files</h2>
<p>I apologize for the delay in updating those versions in my Hugo module.
I do have alerts set up when a new version comes in but I’m still testing manually to make sure that the updated version works well.
This Hugo module being a side-project, I did not get the chance to do the testing any earlier.
I’ve tested all those versions against various pages of my website, and it all worked well.
But please feel free to <a href="https://github.com/cljoly/gohugo-asciinema/issues/new/choose">report</a> any problem you may encounter.</p>
<p>Moving forward, I’ll rely <a href="https://github.com/cljoly/gohugo-asciinema/blob/abb45e1c71409f195ab1d25d20bd548f12291e0c/update.fish">on a script</a> to automate the bulk of the update, that should help updating only a few days after the release.
That script is not perfect and will be improved incrementally.</p>
<p>Since this is a release related to Asciinema, here is an asciicast of that new script downloading the latest CSS and JS, making a commit and tagging it.</p>
<div id="demo3"></div>
<script>
AsciinemaPlayer.create("./update.json", document.getElementById('demo3'), {
"poster": "npt:0:05",
});
</script>
<noscript><blockquote><p>To run this asciicast without javascript, use <code>asciinema play https://joly.pw/update.json</code> with <a href="https://asciinema.org/">Asciinema</a></p></blockquote></noscript>

<p>Please feel free to use this script and open a PR if you spot an update before I do in the future 😁.</p>
]]></content:encoded></item><item><title>My Commits and Tags Are Now Signed</title><link>https://joly.pw/blog/my-commits-and-tags-are-now-signed/</link><pubDate>Fri, 29 Dec 2023 22:36:01 +0000</pubDate><guid>https://joly.pw/blog/my-commits-and-tags-are-now-signed/</guid><description>&lt;h2 id="announcement"&gt;Announcement&lt;/h2&gt;
&lt;p&gt;I’m now signing my git commit and tags with an SSH key.
Details of the fingerprint can be found in the &lt;a href="https://joly.pw/open-source/docs/security/#signature"&gt;security document&lt;/a&gt;.
It says that commit after 2024-01-01 are going to be signed, because I’m starting now on one machine and I will propagate the configuration over the next few days to other machines.&lt;/p&gt;
&lt;h2 id="why"&gt;Why&lt;/h2&gt;
&lt;p&gt;Why bother with cryptographic signatures? &lt;br&gt;
Anyone can pretend to be me.
They just need to write my name and email in the author fields of a commit message.
However&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, I’m the only one able to produce signatures with that particular public key.
This will help to check that I’m actually the author of the commits and tags you rely on when using my code.&lt;/p&gt;</description><content:encoded><![CDATA[<h2 id="announcement">Announcement</h2>
<p>I’m now signing my git commit and tags with an SSH key.
Details of the fingerprint can be found in the <a href="https://joly.pw/open-source/docs/security/#signature">security document</a>.
It says that commit after 2024-01-01 are going to be signed, because I’m starting now on one machine and I will propagate the configuration over the next few days to other machines.</p>
<h2 id="why">Why</h2>
<p>Why bother with cryptographic signatures? <br>
Anyone can pretend to be me.
They just need to write my name and email in the author fields of a commit message.
However<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, I’m the only one able to produce signatures with that particular public key.
This will help to check that I’m actually the author of the commits and tags you rely on when using my code.</p>
<p>I’m doing it only now because GPG <a href="https://words.filippo.io/giving-up-on-long-term-pgp/">can be quite hard to use</a>, especially with multiple machines.
So I had to wait for the SSH signing scheme in Git to be supported more widely.</p>
<h2 id="verification">Verification</h2>
<h3 id="code-hosting-platforms">Code Hosting Platforms</h3>
<p>GitHub will check this, adding a “verified” badge like this:</p>
<figure class="align-center ">
    <img loading="lazy" src="./signed-commit.webp#center"
         alt="https://github.com/cljoly/.github/commit/4df602d7a8689676c5d907b8f0fc84f60970496e" width="95%"/> <figcaption>
            When viewing a signed commit on GitHub<p><a href="https://github.com/cljoly/.github/commit/4df602d7a8689676c5d907b8f0fc84f60970496e">https://github.com/cljoly/.github/commit/4df602d7a8689676c5d907b8f0fc84f60970496e</a></p>
        </figcaption>
</figure>

<figure>
    <img loading="lazy" src="./commit-list.webp"/> <figcaption>
            Signed commits in the commit log on GitHub.
        </figcaption>
</figure>

<p>Codeberg shows similar badges.</p>
<h3 id="locally">Locally</h3>
<p>Signatures can of course also be verified locally.
This <a href="https://calebhearth.com/sign-git-with-ssh">blog post</a> explains in details how to do it. <br>
<em>TL;DR</em>: populate a file (<code>allowed_signers</code>) with trusted keys, configures git to use it and then commands like <code>git log --show-signature</code> will check that signatures are valid for each commit.</p>
<h2 id="caveats">Caveats</h2>
<p>I wrote earlier that I was the only one able to generate this signature for this particular public key.
This is true only as long as the corresponding secret key remains secret.
I’m using a strong password to encrypt that key on my disk and that password is accessible only by physically touching a <a href="https://www.yubico.com/products/yubikey-5-overview/">Yubikey</a>.
This goes a long way towards preventing the private key leaking.
However, it is still possible for an attacker taking full control of my machine for extended periods of time to intercept that password and to decipher the secret key with it.
Then, they will be able to produce signatures as if they were me.
It would be a bit harder for the attacker if the SSH key was on the Yubikey, but then it becomes tricky to work on multiple machines.
So that’s the setup for now, a compromise between potentially higher level of security and usability so that I actually use it.</p>
<p>Currently, I’m not signing release artifacts, but I might in the future.
GPG is more common for this, but <a href="https://words.filippo.io/giving-up-on-long-term-pgp/">it’s very hard to maintain long term GPG keys</a>.
With this <code>allowed_signers</code> SSH file, rotating keys seems easier, so I’m more likely to do it more often and limit risks.
I’ll try with only commit and tag signing first.
Then I’ll apply the learnings to sign release artefacts.</p>
<p><em>EDIT</em>(2023-12-31): This <a href="https://lobi.to/writes/wacksigning/">blog post</a> describes the various options to sign commits very well, in particular talking about revocation scenarios. It was written shortly after I wrote this piece. I mostly agree with the author, but I think that SSH is a good middle ground: revocation works very well locally, it can be paired with Yubikey verification and it’s already supported by code hosting providers, without pesky OpenID verifications like gitsign.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>See the <a href="https://joly.pw/blog/#caveats">Caveats</a> at the end of this post.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item></channel></rss>