<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>maillists &amp;mdash; csantosb</title>
    <link>https://infosec.press/csantosb/tag:maillists</link>
    <description>Random thoughts</description>
    <pubDate>Wed, 13 May 2026 23:28:56 +0000</pubDate>
    <item>
      <title>git forges</title>
      <link>https://infosec.press/csantosb/git-forges</link>
      <description>&lt;![CDATA[img br/&#xA;Using #git is not the whole picture on #modernhw version control landscape. Git is great when one decides to locally follow changes, take diffs, create branches and so on. When it comes to collaboration with other people or to create a community around a common project, the need for extra tooling arises, and it becomes evident that git alone is not enough. A #gitforge fills this gap. !--more-- br/&#xA;Git bare repositories are a means of sharing the local git history remotely. Bares doesn’t show the worktree, as they are used solely as a common exchange place. This might be a remote server accessible through ssh, for example. Several different users may collaborate this way, provided they agree on a common workflow. Bares are more than enough for some needs. A front end on top of it may help to get an overview of what is going on and to take a look at branches, users and the like. All it takes to make this workflow useful is a little management, as git was designed with a fully distributed architecture in mind. Check the docs for more details. br/&#xA;Now, this approach is a bit too bare bones for most people. On top of bare git repositories, some decided to add extra functionality to ease using git remotely, calling for contributors attracted by buttons, colors, menus and most generally, being used to web frontends. Web forges include all usual suspects (project creation and configutation, markup rendering, user account and authorizations, project overview, etc.), as well as more advanced features (continuous integration, #ci, for testing and deployment with git hooks, wikis, code linters, built in actions, issue tracking, etc.). They abstract the use of git showing diffs, logs, issues threads, etc. As any other web gui tool, they come with its own set of inconvenients in what concern user freedom. br/&#xA;Popular examples are all around. #Gitlab may be deployed as a custom (not federated) instance, and is commonly found in research and public institutions; codeberg, based on forgejo, is a great example of how to deploy a lightweight #freesoftware instance of a collaborative forge (and the promise to federate on the fediverse). Many others exist, which more or less features, bells and whistles. You always have the choice. br/&#xA;&#xA;sourcehut&#xA;&#xA;#Sourcehut, as a collaborative platform, deserves special attention. It departs from mainstream forges, following a different paradigm based on the most robust, distributed and flexible technology at our hands since decades, plain text #email. Git, since its origins, includes a close integration with email, as they both share a distributed philosophy, avoiding central point of failure silos (surprising how mosft git forges tend to concentrate in silos). Sourcehut core architecture is based on mail exchange, patches and #maillists, which turns out to be a much more flexible approach than that of what most forges propose. Their concept of project goes well beyond that of usual workflows, integrating nicely git with email, wikis, bug trackers and build features. They’re still in an alpha stage, so expect the best still to come. br/]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://git.sr.ht/~csantosb/csbwiki/blob/master/pics/forge.png" alt="img"> <br/>
Using <a href="/csantosb/tag:git" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">git</span></a> is not the whole picture on <a href="/csantosb/tag:modernhw" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">modernhw</span></a> version control landscape. Git is great when one decides to locally follow changes, take diffs, create branches and so on. When it comes to collaboration with other people or to create a community around a common project, the need for extra tooling arises, and it becomes evident that git alone is not enough. A <a href="/csantosb/tag:gitforge" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">gitforge</span></a> fills this gap.  <br/>
<a href="https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server" rel="nofollow">Git bare repositories</a> are a means of sharing the local git history remotely. Bares doesn’t show the worktree, as they are used solely as a common exchange place. This might be a remote server accessible through ssh, for example. Several different users may collaborate this way, provided they agree on a common workflow. Bares are more than enough for some needs. A front end on top of it may help to get an overview of what is going on and to take a look at branches, users and the like. All it takes to make this workflow useful is a little management, as git was designed with a fully distributed architecture in mind. Check the docs for more details. <br/>
Now, this approach is a bit too bare bones for most people. On top of bare git repositories, some decided to add extra functionality to ease using git remotely, calling for contributors attracted by buttons, colors, menus and most generally, being used to web frontends. Web forges include all usual suspects (project creation and configutation, markup rendering, user account and authorizations, project overview, etc.), as well as more advanced features (continuous integration, <a href="/csantosb/tag:ci" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">ci</span></a>, for testing and deployment with git hooks, wikis, code linters, built in actions, issue tracking, etc.). They abstract the use of git showing diffs, logs, issues threads, etc. As any other web gui tool, they come with its own set of inconvenients in what concern user freedom. <br/>
Popular examples are all around. <a href="/csantosb/tag:Gitlab" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Gitlab</span></a> may be deployed as a custom (not federated) instance, and is <a href="https://about.gitlab.com/" rel="nofollow">commonly found</a> in research and public institutions; <a href="https://codeberg.org/" rel="nofollow">codeberg</a>, based on <a href="https://forgejo.org/" rel="nofollow">forgejo</a>, is a great example of how to deploy a lightweight <a href="/csantosb/tag:freesoftware" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">freesoftware</span></a> instance of a collaborative forge (and the promise to federate on the <a href="https://www.fediverse.to/" rel="nofollow">fediverse</a>). Many others exist, which more or less features, bells and whistles. You always <a href="https://drewdevault.com/2022/03/29/free-software-free-infrastructure.html" rel="nofollow">have the choice</a>. <br/></p>

<h1 id="sourcehut">sourcehut</h1>

<p><a href="/csantosb/tag:Sourcehut" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Sourcehut</span></a>, as a collaborative platform, deserves special attention. It departs from mainstream forges, following a <a href="https://begriffs.com/posts/2018-06-05-mailing-list-vs-github.html" rel="nofollow">different paradigm</a> based on the most robust, distributed and flexible technology at our hands since decades, <a href="https://useplaintext.email/" rel="nofollow">plain text</a> <a href="/csantosb/tag:email" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">email</span></a>. Git, since its origins, includes a close integration with email, as they both share a distributed philosophy, avoiding central point of failure silos (surprising how mosft git forges tend to concentrate in silos). <a href="https://drewdevault.com/2018/07/02/Email-driven-git.html" rel="nofollow">Sourcehut</a> core architecture is based on mail exchange, patches and <a href="/csantosb/tag:maillists" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">maillists</span></a>, which turns out to be a much more flexible approach than that of what most forges propose. Their concept of project goes well beyond that of usual workflows, integrating nicely git with email, wikis, bug trackers and build features. They’re still in an alpha stage, so expect the best still to come. <br/></p>
]]></content:encoded>
      <guid>https://infosec.press/csantosb/git-forges</guid>
      <pubDate>Sun, 08 Dec 2024 22:36:11 +0000</pubDate>
    </item>
    <item>
      <title>sourcehut crash course</title>
      <link>https://infosec.press/csantosb/sourcehut-crash-course</link>
      <description>&lt;![CDATA[img br/&#xA;Everything you need to get started with sourcehut, an original and interesting #gitforge . !--more-- br/&#xA;#Sourcehut is organized in independent, closely related services. #Git repositories, #maillists, #wiki pages, #bug trackers, etc. belong to different domains, see below. They cooperate to provide a pleasant and practical experience when doing #modernhw. br/&#xA;Check the official documentation for details in all that follows. br/&#xA;Each user is given a ~alias. Each user’s service will appear under the SERVICE.sr.ht/~user domain, and are accessible in the top panels of the web interface. br/&#xA;Main services are: br/&#xA;&#xA;git&#xA;&#xA;git.sr.ht/~user/project, #git repositories. br/&#xA;There are no groups to combine them. I use dot notation to group my projects git.sr.ht/~user/group1.prj1. br/&#xA;&#xA;builds&#xA;&#xA;builds.sr.ht/~user, task building service, with the list of builds by the user, with user’s recent activity. br/&#xA;builds.sr.ht, similar to the previous. br/&#xA;Builds are trigger by a .build.yml manifest, or by a .build folder folder with up to 4 manifest files, at the root of a project. br/&#xA;It is also possible to automatically submit builds when a patch to a repo with build manifests is sent to a mailing list. This is achieved by appending the project name as a prefix to the subject of the message, for example [PATCH project-name]. br/&#xA;Check doc for details. br/&#xA;&#xA;hub&#xA;&#xA;The main tab, sourcehut, gives access to the hub hub.sr.ht/~user (identical to sr.ht/~user). br/&#xA;The hub displays user’s projects. br/&#xA;Projects are groups of git repositories, #maillists and bug trackers. There may be any of them in a project. br/&#xA;Sourcehut itself is organised as a project here https://sr.ht/~sircmpwn/sourcehut, and may be used as an example. br/&#xA;&#xA;todo&#xA;&#xA;todo.sr.ht/~user, ticket tracking service, with the list of trackers created by the user, with user’s recent activity br/&#xA;todo.sr.ht, similar to the previous br/&#xA;&#xA;man&#xA;&#xA;man.sr.ht/~user/NAME, #wiki service to create documentation, with the wikis created by the user br/&#xA;man.sr.ht, sourcehut documentation br/&#xA;man.sr.ht/builds.sr.ht, builds service documentation br/&#xA;man.sr.ht/hub.sr.ht, hub service documentation, etc. br/&#xA;&#xA;lists&#xA;&#xA;lists.sr.ht/~user/NAME, #email #maillists service, with the list created by the user, with user’s recent activity br/&#xA;lists.sr.ht, lists the user follows, with recent activity br/&#xA;&#xA;Extra services are alse provided: br/&#xA;&#xA;chat&#xA;&#xA;chat.sr.ht, without the user alias, is a paid service. It provides a bouncer to save history of IRC channels while not connected, and may be used from another IRC client. br/&#xA;&#xA;paste.sr.ht&#xA;&#xA;Paste hosting service. br/&#xA;&#xA;srht.site&#xA;&#xA;Once again, the official documentation gives in depth details about the previous. And remember, there is also hut to operate from the #cli. br/]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://git.sr.ht/~csantosb/csbwiki/blob/master/pics/sourcehut.png" alt="img"> <br/>
Everything you need to get started with <a href="https://sr.ht" rel="nofollow">sourcehut</a>, an <a href="https://infosec.press/csantosb/git-forges#sourcehut" rel="nofollow">original and interesting</a> <a href="/csantosb/tag:gitforge" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">gitforge</span></a> .  <br/>
<a href="/csantosb/tag:Sourcehut" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Sourcehut</span></a> is organized in independent, closely related services. <a href="/csantosb/tag:Git" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">Git</span></a> repositories, <a href="/csantosb/tag:maillists" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">maillists</span></a>, <a href="/csantosb/tag:wiki" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">wiki</span></a> pages, <a href="/csantosb/tag:bug" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">bug</span></a> trackers, etc. belong to different domains, see below. They cooperate to provide a pleasant and practical experience when doing <a href="/csantosb/tag:modernhw" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">modernhw</span></a>. <br/>
Check the <a href="https://man.sr.ht" rel="nofollow">official documentation</a> for details in all that follows. <br/>
Each user is given a <code>~alias</code>. Each user’s service will appear under the <code>SERVICE.sr.ht/~user</code> domain, and are accessible in the top panels of the web interface. <br/>
Main services are: <br/></p>

<h1 id="git">git</h1>

<p><code>git.sr.ht/~user/project</code>, <a href="/csantosb/tag:git" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">git</span></a> repositories. <br/>
There are no groups to combine them. I use dot notation to group my projects <code>git.sr.ht/~user/group1.prj1</code>. <br/></p>

<h1 id="builds">builds</h1>

<p><code>builds.sr.ht/~user</code>, task building service, with the list of builds by the user, with user’s recent activity. <br/>
<code>builds.sr.ht</code>, similar to the previous. <br/>
Builds are trigger by a <code>.build.yml</code> manifest, or by a <code>.build</code> folder folder with up to 4 manifest files, at the root of a project. <br/>
It is also possible to automatically submit builds when a patch to a repo with build manifests is sent to a mailing list. This is achieved by appending the project name as a prefix to the subject of the message, for example [PATCH project-name]. <br/>
Check <a href="https://man.sr.ht/builds.sr.ht/" rel="nofollow">doc</a> for details. <br/></p>

<h1 id="hub">hub</h1>

<p>The main tab, <code>sourcehut</code>, gives access to the hub <code>hub.sr.ht/~user</code> (identical to <code>sr.ht/~user</code>). <br/>
The hub displays user’s projects. <br/>
Projects are groups of git repositories, <a href="/csantosb/tag:maillists" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">maillists</span></a> and bug trackers. There may be any of them in a project. <br/>
Sourcehut itself is organised as a project here <a href="https://sr.ht/~sircmpwn/sourcehut" rel="nofollow">https://sr.ht/~sircmpwn/sourcehut</a>, and may be used as an example. <br/></p>

<h1 id="todo">todo</h1>

<p><code>todo.sr.ht/~user</code>, ticket tracking service, with the list of trackers created by the user, with user’s recent activity <br/>
<code>todo.sr.ht</code>, similar to the previous <br/></p>

<h1 id="man">man</h1>

<p><code>man.sr.ht/~user/NAME</code>, <a href="/csantosb/tag:wiki" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">wiki</span></a> service to create documentation, with the wikis created by the user <br/>
<code>man.sr.ht</code>, <code>sourcehut</code> documentation <br/>
<code>man.sr.ht/builds.sr.ht</code>, builds service documentation <br/>
<code>man.sr.ht/hub.sr.ht</code>, hub service documentation, etc. <br/></p>

<h1 id="lists">lists</h1>

<p><code>lists.sr.ht/~user/NAME</code>, <a href="/csantosb/tag:email" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">email</span></a> <a href="/csantosb/tag:maillists" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">maillists</span></a> service, with the list created by the user, with user’s recent activity <br/>
<code>lists.sr.ht</code>, lists the user follows, with recent activity <br/></p>

<p><strong>Extra services</strong> are alse provided: <br/></p>

<h1 id="chat">chat</h1>

<p><code>chat.sr.ht</code>, without the user alias, is a paid service. It provides a <a href="https://sourcehut.org/blog/2021-11-29-announcing-the-chat.sr.ht-public-beta/" rel="nofollow">bouncer to save history of IRC channels</a> while not connected, and may be used from another IRC client. <br/></p>

<h1 id="paste-sr-ht">paste.sr.ht</h1>

<p>Paste hosting service. <br/></p>

<h1 id="srht-site">srht.site</h1>

<p>Once again, the <a href="https://man.sr.ht" rel="nofollow">official documentation</a> gives in depth details about the previous. And remember, there is also <a href="https://sr.ht/~emersion/hut/" rel="nofollow">hut</a> to operate from the <a href="/csantosb/tag:cli" class="hashtag" rel="nofollow"><span>#</span><span class="p-category">cli</span></a>. <br/></p>
]]></content:encoded>
      <guid>https://infosec.press/csantosb/sourcehut-crash-course</guid>
      <pubDate>Fri, 29 Nov 2024 14:33:48 +0000</pubDate>
    </item>
  </channel>
</rss>