14 Nov 2022 [CT] [guides]

CT-005: Contributing to Monero anonymously

This is the 5th report in the new Cypherpunk Transmission series.

Motivation

Anyone can anonymously contribute code to the Monero software. Although the project’s centralized Git repository is currently hosted on Github, an account is not required to submit a patch.

Git is a distributed version control system and its design allows development to continue uninterrupted by any Github outages, errors and potential bans.

This is not a version control or C++ programming guide. Instead, it should serve as a reminder that Git is not Github, and anonymous contributions to Monero are indeed possible and welcome.

Assumptions

1. Configure Git identity

Let’s first set up your well-known alias (a name and email - doesn’t need to be a real address) that will be baked into your commits.

Open up a terminal in your local monero repository directory and type in:

git config user.name "Anon5589"
git config user.email "anon5589@inter.net"

Note: replace name and email accordingly; optionally use the --global flag if you want to set up a global identity, for all projects.

A quick git config --list should now output:

user.name=Anon5589
user.email=anon5589@inter.net

The settings are saved in .git/config.

2. Make a change

Assuming you have updated the copyright year in README.md, you can add the modified file to the index and create a new commit:

git add README.md
git commit -m "README: update copyright year"

Note: display the commit logs with git log.

3. Prepare the patch

git format-patch HEAD -1 --stdout > new-update.patch

cat new-update.patch to see the formatted patch for the last commit. Output should be similar to this:

From 13f5aff0990a61cba2381e11d6fa7dd351b1290c Mon Sep 17 00:00:00 2001
From: Anon5589 <anon5589@inter.net>
Date: Mon, 14 Nov 2022 14:12:00 -0700
Subject: [PATCH] README: update copyright year

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 0ab1a8f31..dd02c2e10 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # Monero

-Copyright (c) 2014-2022 The Monero Project.
+Copyright (c) 2014-2023 The Monero Project.

 ## Table of Contents
-- 
2.38.0

4. Send the patch

Post the patch to any pastebin3 site that is JS-free and select a long timeout/expiration date.

While you could send the patch via email, it is recommended to share the pastebin link in the #monero-dev4 chatroom to avoid delays.

All you have to do now is to wait for feedback from the community.

Observations

That’s it. You can now start contributing to Monero anonymously, without a Github account.


Feedback

Let me know if you find this helpful and, depending on interest, I will do my best to post a new Cypherpunk Transmission report every (other?) Monday.

Questions, edits and suggestions are always appreciated @ /about/.

-3RA

Credit goes to gnuteardrops from monero.graphics for the amazing xkcd graphic. Work and xkcd Script font licensed under CC BY-NC 3.0.


  1. https://git-scm.com/download/ 

  2. /cypherpunk-transmission-002-building-from-source-monero-cli/ 

  3. https://paste.debian.net/ 

  4. irc://irc.libera.chat/#monero-dev (IRC), https://matrix.to/#/#monero-dev:matrix.org (Matrix) 

  5. https://github.com/monero-project/monero/blob/master/docs/CONTRIBUTING.md