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

From: Ludovic Courtès <[email-masked]>
Date: Sat, 10 May 2025 16:41:58 +0200

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

Changes since v1:

  • Mention May 25th date for guix.git migration, as proposed
    in <https://lists.gnu.org/archive/html/guix-devel/2025-05/msg00063.html>.

  • Thank the Savannah and Debbugs volunteers.

No mention of git.guix.gnu.org as suggested by Ahmad Draidi because
we have yet to settle that issue and I’d like this post to go out
tomorrow Sunday 11th so people have enough time to learn about the
plan.  Worst case we’ll adjust the URL mentioned in the blog post
afterwards.  WDYT?

Thanks,
Ludo’.

diff --git a/website/posts/codeberg.md b/website/posts/codeberg.md
new file mode 100644
index 0000000..e7b2200
--- /dev/null
+++ b/website/posts/codeberg.md
@@ -0,0 +1,133 @@
+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 who have been supportive over these 13
+years—thanks!
+
+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, and probably earlier, [Git
+     repositories](https://savannah.gnu.org/git/?group=guix) will all
+     have migrated to [Codeberg](https://codeberg.org/guix)—some have
+     already moved.
+
+  2. On May 25th, the Guix repository itself will be migrated.
+
+  3. From there on and until at least May 25th, 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: 00d3af2881e0e6c2310eb719addb31d86ada917a
-- 
2.49.0