Subject: [PATCH guix-artwork] website: Add post about the Codeberg migration.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 8 May 2025 16:22:28 +0200

* website/posts/codeberg.md,
website/static/blog/img/codeberg-logo.svg: New files.
---
 website/posts/codeberg.md                 | 132 ++++++++++++++++++++++
 website/static/blog/img/codeberg-logo.svg |  53 +++++++++
 2 files changed, 185 insertions(+)
 create mode 100644 website/posts/codeberg.md
 create mode 100644 website/static/blog/img/codeberg-logo.svg

Hello!

Here’s a post essentially summarizing GCD 002 to communicate about
the upcoming Codeberg migration.

I think we should publish it in the coming days so people less
involved in Guix learn about it soon enough.

Thoughts?

Ludo’.

diff --git a/website/posts/codeberg.md b/website/posts/codeberg.md
new file mode 100644
index 0000000..efabc61
--- /dev/null
+++ b/website/posts/codeberg.md
@@ -0,0 +1,132 @@
+title: Migrating to Codeberg
+date: 2025-05-12 14:00
+author: Ludovic Courtès
+tags: Community
+---
+
+The Guix project will be migrating all its repositories along with bug
+tracking and patch tracking to [Codeberg](https://codeberg.org) within a
+month.  This decision is the result of a collective consensus-building
+process that lasted several months.  This post shows the upcoming
+milestones in that migration and discusses what it will change for
+people using Guix and for contributors.
+
+![Codeberg logo.](/static/blog/img/codeberg-logo.svg)
+
+# Context
+
+For those who haven’t heard about it, Codeberg is a source code
+collaboration platform.  It is run by [Codeberg
+e.V.](https://docs.codeberg.org/getting-started/what-is-codeberg/#what-is-codeberg-e.v.%3F),
+a non-profit registered in Germany.  The software behind Codeberg is
+[Forgejo](https://forgejo.org/), a free software forge (licensed under
+GPLv3) supporting the “merge request” style of workflow familiar to many
+developers.
+
+Since its inception, Guix has been hosting its source code on
+[Savannah](https://savannah.gnu.org/projects/guix), with bug reports and
+patches handled by email, tracked by a [Debbugs
+instance](https://bugs.gnu.org), and visible on [the project’s
+tracker](https://issues.guix.gnu.org).  Debbugs and Savannah are hosted
+by the Free Software Foundation (FSF) though all three services are
+administered by volunteers.
+
+The motivation and the main parts of the migration are laid out in [the
+second Guix Consensus
+Document](https://archive.softwareheritage.org/browse/content/sha1_git:4d78cab341653e17db5f09beaf425f9634b5e81e/?origin_url=https://git.savannah.gnu.org/git/guix/guix-consensus-documents.git&path=002-codeberg.md)
+(GCD).  The GCD process itself was adopted just a few months ago; it’s a
+major milestone for the project that we’ll discuss in more detail in a
+future post.  Suffice to say that this GCD was [discussed and improved
+publicly for two months](https://issues.guix.gnu.org/76503), after which
+deliberation among members of [Guix
+teams](https://guix.gnu.org/manual/devel/en/html_node/Teams.html) led to
+[acceptance](https://codeberg.org/futurile/guix-org/src/branch/master/gcd-voting-summary/gcd002-voting-summary.md).
+
+# Milestones
+
+Migration to Codeberg will happen gradually.  To summarize the GCD, the
+key milestones are the following:
+
+  1. By June 7th, [Git
+     repositories](https://savannah.gnu.org/git/?group=guix) will be
+     migrated to Codeberg.
+
+  2. Between May 21st and June 4th (exact date yet to be decided), the
+     Guix repository itself will be migrated on a flag day.
+
+  3. Until at least May 7th, 2026,
+     `https://git.savannah.gnu.org/git/guix.git` will be a mirror of
+     `https://codeberg.org/guix/guix.git`.
+
+  4. Until December 31st, 2025, bug reports and patches will still be
+     accepted by email, in addition to Codeberg (issues and pull
+     requests).
+
+Of course, this is just the beginning.  Our hope is that the move can
+help improve much needed tooling such as the [QA
+infrastructure](https://qa.guix.gnu.org) following work on
+[Forgejo/Cuirass
+integration](https://hpc.guix.info/blog/2025/01/join-the-guix-science-community/)
+started earlier this year, and possibly develop new tools and services
+to assist in the maintenance of this huge package collection that Guix
+provides.
+
+# What this will change for you
+
+As a user, the main change is that your [`channels.scm` configuration
+files](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-pull.html),
+if their refer to the `git.savannah.gnu.org` URL, should be changed to
+refer to `https://codeberg.org/guix/guix.git` once migration is
+complete.  But don’t worry: `guix pull` will tell you if/when you need
+to update your config files and the old URL will remain a mirror for at
+least a year anyway.
+
+Also, channel files produced by `guix describe` to pin Guix to a
+specific revision and to re-deploy it later anytime with
+[`time-machine`](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-time_002dmachine.html)
+will always work, even if the refer to the `git.savannah.gnu.org` URL,
+and even when that repository eventually vanishes, thanks to [automatic
+fallback to Software
+Heritage](https://guix.gnu.org/en/blog/2024/source-code-archiving-in-guix-new-publication/).
+
+As a contributor, nothing changes for bug reports and patches that you
+already submitted by email: just keep going!
+
+Once the Guix repository has migrated though, you’ll be able to report
+bugs at Codeberg and create *pull requests* for changes.  The latter is
+a relief for many—no need to fiddle with admittedly intricate email
+setups and procedures—but also a pain point for those who had come to
+master and appreciate the email workflow.
+
+For this reason, the “User Interfaces” section of the GCD describes the
+options available besides the Web interface—command-line and Emacs
+interfaces in particular.  Some are still work-in-progress, but it’s
+exciting to see, for example, that over the past few months many
+improvements landed in [`fj.el`](https://codeberg.org/martianh/fj.el/)
+and that a [Forgejo-capable branch of
+Magit-Forge](https://github.com/pinoaffe/forge/tree/forgejo-support) saw
+the light.  Check it out!
+
+A concern brought up during the discussion is that of having to create
+an account on Codeberg to be able to contribute—sometimes seen as a
+hindrance compared to the open-for-all and distributed nature of
+cooperation by email.  This remains an open issue, though hopefully one
+that will become less acute as [support for federation in
+Forgejo](https://codeberg.org/forgejo-contrib/federation/src/branch/main/FederationRoadmap.md)
+develops.  In the meantime, as the GCD states, occasional bug reports
+and patches sent by email to `guix-devel` will be accepted.
+
+# Moving forward
+
+This was an summary of what is to come; check out [the
+GCD](https://archive.softwareheritage.org/browse/content/sha1_git:4d78cab341653e17db5f09beaf425f9634b5e81e/?origin_url=https://git.savannah.gnu.org/git/guix/guix-consensus-documents.git&path=002-codeberg.md)
+for more info, and reach out to the [`guix-devel` mailing
+list](https://guix.gnu.org/contact/) if you have any questions!
+
+Real work begins now.  We hope the migration to Codeberg will be smooth
+and enjoyable for all.  For one thing, it already proved our ability to
+collectively decide on the project’s future, which is no small feat.
+There’s a lot to expect from the move in improving the project’s ability
+to work flawlessly at this scale—more than 100 code contributors and
+2,000 commits each month, and more than 33,000 packages available in
+Guix proper.  Let’s make the best of it, and until then, happy hacking!
diff --git a/website/static/blog/img/codeberg-logo.svg b/website/static/blog/img/codeberg-logo.svg
new file mode 100644
index 0000000..c70675c
--- /dev/null
+++ b/website/static/blog/img/codeberg-logo.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" id="svg6989" version="1.1" viewBox="0 0 132.29166 132.29167" height="500" width="500" sodipodi:docname="Codeberg-logo_stacked.svg" inkscape:version="1.0 (b51213c273, 2020-08-10)" inkscape:export-filename="/home/robert/Documents/Codeberg/Logo-Kit/svg/Codeberg-logo_stacked.png" inkscape:export-xdpi="191.92" inkscape:export-ydpi="191.92">
+  <sodipodi:namedview inkscape:document-rotation="0" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1531" inkscape:window-height="873" id="namedview10644" showgrid="false" inkscape:zoom="0.70710678" inkscape:cx="428.59466" inkscape:cy="361.19591" inkscape:current-layer="g6939-3" inkscape:window-x="69" inkscape:window-y="27" inkscape:window-maximized="1"/>
+  <title id="title11271">Codeberg logo</title>
+  <defs id="defs6983">
+    <linearGradient xlink:href="#linearGradient6924" id="linearGradient6918" x1="42519.285" y1="-7078.7891" x2="42575.336" y2="-6966.9307" gradientUnits="userSpaceOnUse"/>
+    <linearGradient id="linearGradient6924">
+      <stop style="stop-color:#ffffff;stop-opacity:0" offset="0" id="stop6920"/>
+      <stop id="stop6926" offset="0.49517274" style="stop-color:#71c2ff;stop-opacity:1"/>
+      <stop style="stop-color:#39aaff;stop-opacity:1" offset="1" id="stop6922"/>
+    </linearGradient>
+  </defs>
+  <metadata id="metadata6986">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title>Codeberg logo</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Robert Martinez</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license rdf:resource="http://creativecommons.org/licenses/by/4.0/"/>
+        <dc:date>2020-05-41</dc:date>
+        <dc:rights>
+          <cc:Agent>
+            <dc:title>Codeberg and the Codeberg Logo are trademarks of Codeberg e.V.</dc:title>
+          </cc:Agent>
+        </dc:rights>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/by/4.0/">
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/>
+        <cc:requires rdf:resource="http://creativecommons.org/ns#Notice"/>
+        <cc:requires rdf:resource="http://creativecommons.org/ns#Attribution"/>
+        <cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g id="layer1">
+    <g transform="matrix(1.4006354,0,0,1.4006354,-15690.065,2662.0533)" id="g6939">
+      <path transform="scale(0.26458333)" d="m 42405.785,-6929.3027 c -6.178,0 -11.002,2.0754 -14.474,6.2246 -3.518,4.1491 -5.278,9.6275 -5.278,16.4375 0,5.2313 1.286,9.7874 3.856,13.666 3.563,5.4118 8.974,8.1172 16.236,8.1172 5.049,0 9.447,-1.872 13.191,-5.6153 l -3.451,-5.3437 c -3.336,2.1198 -6.221,3.1797 -8.658,3.1797 -3.699,0 -6.653,-1.4205 -8.863,-4.2617 -2.074,-2.7062 -3.112,-5.9541 -3.112,-9.7422 0,-4.2845 0.88,-7.7572 2.639,-10.418 2.031,-3.1118 4.894,-4.668 8.59,-4.668 2.661,0 5.615,1.1725 8.863,3.5176 l 3.451,-5.6133 c -4.331,-3.653 -8.661,-5.4804 -12.99,-5.4804 z m 122.604,0 -8.522,4.8027 v 38.8301 h 6.901 l 0.677,-3.043 c 2.074,2.5706 5.004,3.8555 8.791,3.8555 3.835,0 7.061,-1.1512 9.676,-3.4512 3.336,-3.0216 5.004,-7.4634 5.004,-13.3262 0,-4.5551 -1.126,-8.208 -3.379,-10.959 -2.572,-3.1118 -6.136,-4.6679 -10.689,-4.6679 -1.626,0 -3.114,0.3158 -4.467,0.9472 -1.714,0.8116 -3.045,1.9396 -3.992,3.3829 z m -45.871,0.1347 -8.528,4.7364 v 9.8086 c -2.119,-1.7137 -4.734,-2.5704 -7.845,-2.5704 -3.609,0 -6.698,1.1958 -9.268,3.586 -3.427,3.202 -5.141,7.7561 -5.141,13.664 0,4.1943 1.061,7.6225 3.18,10.2832 2.525,3.2021 6.198,4.8028 11.023,4.8028 1.716,0 3.386,-0.3837 5.008,-1.1504 1.623,-0.7665 2.797,-1.7356 3.52,-2.9082 l 1.217,3.2461 h 6.834 z m -47.993,11.9746 c -4.422,0 -8.008,1.3973 -10.757,4.1934 -3.024,3.0667 -4.536,7.0803 -4.536,12.041 0,4.3747 1.353,8.0741 4.059,11.0957 3.024,3.3373 6.77,5.0059 11.234,5.0059 3.833,0 7.192,-1.3082 10.077,-3.9238 3.474,-3.1119 5.21,-7.1717 5.21,-12.1778 0,-4.2842 -1.171,-7.9141 -3.517,-10.8906 -2.797,-3.5628 -6.72,-5.3438 -11.77,-5.3438 z m 67.071,0 c -4.374,0 -7.982,1.4438 -10.825,4.3301 -3.157,3.1569 -4.736,7.1472 -4.736,11.9727 0,4.9159 1.399,8.7722 4.195,11.5683 2.933,2.9765 7.016,4.4649 12.247,4.4649 4.87,0 8.929,-1.4438 12.177,-4.3301 l -2.166,-4.5313 c -3.202,1.8039 -6.269,2.7051 -9.199,2.7051 -2.076,0 -3.88,-0.6764 -5.412,-2.0293 -1.494,-1.3981 -2.33,-3.1345 -2.506,-5.209 h 21.109 v -3.1113 c 0,-4.4649 -1.173,-8.0965 -3.519,-10.8926 -2.706,-3.2922 -6.495,-4.9375 -11.365,-4.9375 z m 67.666,0 c -4.374,0 -7.982,1.4438 -10.824,4.3301 -3.158,3.1569 -4.737,7.1472 -4.737,11.9727 0,4.9159 1.399,8.7722 4.195,11.5683 2.931,2.9765 7.013,4.4649 12.247,4.4649 4.87,0 8.928,-1.4438 12.173,-4.3301 l -2.162,-4.5313 c -3.202,1.8039 -6.27,2.7051 -9.203,2.7051 -2.074,0 -3.877,-0.6764 -5.412,-2.0293 -1.492,-1.3981 -2.326,-3.1345 -2.502,-5.209 h 21.108 v -3.1113 c 0,-4.4649 -1.172,-8.0965 -3.518,-10.8926 -2.706,-3.2922 -6.495,-4.9375 -11.365,-4.9375 z m 33.017,0 c -1.353,0 -2.684,0.3604 -3.992,1.0821 -1.265,0.6763 -2.121,1.4884 -2.572,2.4355 l -0.811,-2.7051 h -7.24 v 30.711 h 8.391 v -22.0528 c 0.72,-1.5785 1.848,-2.3671 3.383,-2.3671 1.668,0 3.245,0.8564 4.734,2.5703 l 7.17,-3.9239 c -1.986,-3.8334 -5.006,-5.75 -9.063,-5.75 z m 22.016,0 c -3.563,0 -6.654,1.1958 -9.272,3.586 -3.426,3.202 -5.14,7.7561 -5.14,13.664 0,4.1492 1.06,7.5774 3.179,10.2832 2.482,3.2021 5.979,4.8028 10.489,4.8028 3.696,0 6.559,-1.5116 8.59,-4.5332 0,6.7648 -2.435,10.1484 -7.305,10.1484 -3.429,0 -6.519,-0.9029 -9.268,-2.707 l -2.166,4.3301 c 3.563,3.2471 7.78,4.8711 12.651,4.8711 4.689,0 8.297,-1.3758 10.824,-4.127 2.57,-2.7961 3.855,-6.7883 3.855,-11.9746 v -27.5313 h -6.562 l -0.676,3.3145 c 0,-0.451 -0.653,-1.1273 -1.961,-2.0293 -1.985,-1.3979 -4.398,-2.0977 -7.238,-2.0977 z m -122.768,6.0215 c 4.06,0 6.203,2.2094 6.43,6.6289 h -13.059 c 0.497,-4.4195 2.706,-6.6289 6.629,-6.6289 z m 67.666,0 c 4.057,0 6.199,2.2094 6.426,6.6289 h -13.055 c 0.497,-4.4195 2.706,-6.6289 6.629,-6.6289 z m -134.668,0.066 c 4.375,0 6.561,3.3819 6.561,10.1465 0,6.4943 -2.186,9.7422 -6.561,9.7422 -4.376,0 -6.566,-3.2479 -6.566,-9.7422 0,-6.7646 2.19,-10.1465 6.566,-10.1465 z m 33.446,0 c 1.489,0 2.774,0.4963 3.857,1.4883 1.126,0.9472 1.847,2.1642 2.162,3.6524 v 8.5918 c -0.224,1.6685 -1.035,3.1568 -2.433,4.4648 -1.399,1.2626 -2.909,1.8945 -4.532,1.8945 -4.374,0 -6.562,-3.3603 -6.562,-10.0801 0,-3.0667 0.678,-5.5008 2.031,-7.3046 1.353,-1.8039 3.179,-2.7071 5.477,-2.7071 z m 158.15,0 c 1.444,0 2.75,0.5196 3.922,1.5567 1.222,0.9922 1.921,2.186 2.098,3.584 v 7.7812 c 0,1.9392 -0.677,3.629 -2.03,5.0723 -1.353,1.3979 -2.953,2.0976 -4.802,2.0976 -4.42,0 -6.631,-3.3603 -6.631,-10.0801 0,-3.0667 0.678,-5.5008 2.031,-7.3046 1.353,-1.8039 3.157,-2.7071 5.412,-2.7071 z m -90.898,0.068 c 2.073,0 3.697,0.9012 4.871,2.7051 1.171,1.8038 1.758,4.2612 1.758,7.373 0,3.1569 -0.631,5.6393 -1.893,7.4434 -1.262,1.8038 -2.976,2.7051 -5.141,2.7051 -1.67,0 -3.138,-0.5641 -4.4,-1.6915 -1.227,-1.1275 -1.903,-2.5248 -2.029,-4.1933 v -7.375 c 0,-1.9392 0.655,-3.5844 1.963,-4.9375 1.353,-1.3528 2.976,-2.0293 4.871,-2.0293 z" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.8986px;line-height:1.25;font-family:Tajawal;-inkscape-font-specification:'Tajawal Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-0.284861px;word-spacing:0px;fill:#2185d0;fill-opacity:1;stroke:none;stroke-width:1.69121" id="path6736"/>
+      <g id="g6933">
+        <path id="path6733" style="font-variation-settings:normal;opacity:0.5;vector-effect:none;fill:url(#linearGradient6918);fill-opacity:1;stroke:none;stroke-width:3.67846;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1" d="m 42519.285,-7078.7891 a 0.76086879,0.56791688 0 0 0 -0.738,0.6739 l 33.586,125.8886 a 87.182358,87.182358 0 0 0 39.381,-33.7636 l -71.565,-92.5196 a 0.76086879,0.56791688 0 0 0 -0.664,-0.2793 z" transform="scale(0.26458333)"/>
+        <path id="circle6810" style="opacity:1;fill:#2185d0;fill-opacity:1;stroke:none;stroke-width:2.01453px;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000" d="m 42517.32,-7119.4805 a 87.182358,87.182358 0 0 0 -86.855,87.1817 87.182358,87.182358 0 0 0 13.312,46.3047 l 72.688,-93.9727 a 1.3609979,1.0158567 0 0 1 2.359,0 l 72.692,93.9766 a 87.182358,87.182358 0 0 0 13.314,-46.3086 87.182358,87.182358 0 0 0 -87.182,-87.1817 87.182358,87.182358 0 0 0 -0.328,0 z" transform="scale(0.26458333)"/>
+      </g>
+    </g>
+  </g>
+  <g transform="translate(163.82259,-34.182907)" id="layer1-5">
+    <g id="g6939-3" transform="matrix(1.4006354,0,0,1.4006354,-15687.959,2663.0891)"/>
+  </g>
+</svg>
\ No newline at end of file

base-commit: be38d5ad867dd1352a1660b5296d35fedb77bccd
-- 
2.49.0