From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 2L1yBtZw5mTQdQEASxT56A (envelope-from ) for ; Wed, 23 Aug 2023 22:49:26 +0200 Received: from aspmx1.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id OM1YBtZw5mSFFAEA9RJhRA (envelope-from ) for ; Wed, 23 Aug 2023 22:49:26 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B70E738926 for ; Wed, 23 Aug 2023 22:49:25 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="czbr4RG/"; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1692823766; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=IX/e3L6PKz6/uVigBOrXREXIV1biPvzl3ryh7K9fQmk=; b=mZo7oehlb4/nadop7fVKFdE3JYba96EK8iZhILCEef7SCovOAfVNcR+Ms/l7lJraAVibfr 2mCZRxCfCzF2tC16wwDqGbN19A2fmQCHSYR3PCnR3ypLmPMmyvlZ2jB8hU1YMEadGmOH7s ZPl0VX0Q+rbyMeK1V5Empkqr5UMMpGm2pnq1urk1YSgHkdmvsJeNEMb6KD/9FNXi6+lNo4 uYlBX8It8dZyOiq3M+iIqrGJLz2ztTx2uJY1xxqtAdIg6JHhEos8wjeO4b0FJmELKez8JF nHTqwBFvGIOBPimQXzii9UdMKnjNBQkkJ1h6+2pZ16A+u+FHnRH89DPIp9LKTw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="czbr4RG/"; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1692823766; a=rsa-sha256; cv=none; b=Dujnwx/PmqL/EjkoXmMPhb+6Ldd4kkpzFMMtR6RIf0hJ4/mm1fCbL7AqC5O/CGpOMUJ8Fe j1n3Fh/Xb6Et+0qW3XitdcXmJUcGSx4gs2HgrDYzaAW1dRqrTh91RXbtocrIAKYlYevJbP wxaq6s0rtka4lMpjNANbqW9KFcGsYJZPHt0sVeiW0N4dlzDc+Gnav+z1N2YVIvxvFrBA4T Wa1aaRZw4Q6wJiSGJUZjppYxJp+6Ko3Te0GgshcBucnTQO76MtmhQVJajIgn2SutwMyY7U kZvanHqsFQIIrnaYKdEHHiBsz0Et2JNOHv1PNE7e1VSaqhhk1MaN8hLT/xb/Yg== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qYumP-0003yk-Qv; Wed, 23 Aug 2023 16:48:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qYumP-0003yb-4u for guix-devel@gnu.org; Wed, 23 Aug 2023 16:48:41 -0400 Received: from mail-lj1-x230.google.com ([2a00:1450:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qYumM-0001qM-Sy for guix-devel@gnu.org; Wed, 23 Aug 2023 16:48:40 -0400 Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2bb8a12e819so93879181fa.1 for ; Wed, 23 Aug 2023 13:48:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692823716; x=1693428516; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=IX/e3L6PKz6/uVigBOrXREXIV1biPvzl3ryh7K9fQmk=; b=czbr4RG/2a4SZGcNeU3ZpWN5zI0w5K3h79f7QroMvQiBA6XWVHdiUdIw4EGHPSI+l3 NDxd/yNHun0gxBhHBsoDOxWHe4w45RL7xWiJeBEAeEhIjz65iyyNnH9CbqgRCoWJaZxV 8GnXE/xshdUQLA6R6DAoRvK2gfrnfsjuG0W7OU1rsw6d+SC9eK6FIUSdH0SNHctte1Db p82w/A8WKKLVDgrnMKwqCbxMT/MsbV0GT1H8NX9s4bvik2tjZowzj1d7GlXebPC4tBNi GC6WlNLq8rYed5vlni9MqtUiRMAjhcVG+1OwjfBXuVg4oKWV4RtEiGfgF6moo0hJiZ2o iJVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692823716; x=1693428516; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IX/e3L6PKz6/uVigBOrXREXIV1biPvzl3ryh7K9fQmk=; b=ZuHqwjuGSFZMHDoP3HMtXYHoHcvUPGzFxt51GPICl0sgq4+Aak/tHCiXsldH2rmgaH oQI3RFyWnhd3VUqE0/mbZn6bHLOjrGm1KFTpAxua3QxOxRYnbXE6vscUbfExgv1ibZsf zkBZvkupH7dwm9tvdmOqIZ+uVMlOn2urjlCTZkQxFSmP983M8sU4HizbhPhZKtk6jcV5 VRGrioRJdU0k5wRxXaDA+sJP9xILOwCqEZynUNbZiMqNFRdiwEwh85UkcpU6CbWHnJCP sA4kRAGrdSMR0goHfJvOO3+92eSwHcVKdsg/oeXeOb030UAFyjhuQYe461/NswgK3uPB Uh/Q== X-Gm-Message-State: AOJu0YxJD7JmyPoKmA9PSAtbaNh9GlsxkzAiALsSJfRl6jVERdcRrRJg dNhhEeTWUh0kUFR0Zj3FugrB849g0ZI= X-Google-Smtp-Source: AGHT+IEqYVoRmRFNB6Wwux/BO0snKo7XrZUWEnKc8m1eeZJlK0ycZozYhuQrN34hcD8E1VZuAA1gsg== X-Received: by 2002:a2e:9652:0:b0:2bc:c28c:a2b5 with SMTP id z18-20020a2e9652000000b002bcc28ca2b5mr7542453ljh.51.1692823715431; Wed, 23 Aug 2023 13:48:35 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id t3-20020a170906a10300b00993860a6d37sm10094580ejy.40.2023.08.23.13.48.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 23 Aug 2023 13:48:34 -0700 (PDT) Message-ID: <060dfa07107d0da36ebc7a9f094331163a8dd945.camel@gmail.com> Subject: Re: How can we decrease the cognitive overhead for contributors? From: Liliana Marie Prikler To: Katherine Cox-Buday , guix-devel Date: Wed, 23 Aug 2023 22:48:32 +0200 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.46.4 MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::230; envelope-from=liliana.prikler@gmail.com; helo=mail-lj1-x230.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Scanner: mx2.migadu.com X-Migadu-Spam-Score: -8.58 X-Spam-Score: -8.58 X-Migadu-Queue-Id: B70E738926 X-TUID: +047I18sJHtd Hi Katherine, Am Mittwoch, dem 23.08.2023 um 10:25 -0600 schrieb Katherine Cox-Buday: > Summary: for people who don't contribute to Guix a lot, each=20 > contribution has very high cognitive overhead. Can we work to reduce > that? >=20 > Hey all, >=20 > Contributing to Guix is currently pretty difficult for me. I'm a Mom > with a full-time job, and anything outside of my job that requires a > lot of executive functioning (e.g. lots of manual, detailed, steps) > is very difficult for me to get correct. That last part is what I > wanted to discuss, because that's the part that prevents me from > contributing more than I do, and I think there are probably others > whom are impacted by this. >=20 > When I have some time to contribute, I usually stall out at the > "submit this for review" because of the amount of cognitive overhead > required. I've written a script for myself that tries to perform all > the steps including running the git command to submit the patch, and > this has helped me, but that this is necessary for me to do might be > something that, if addressed, could help others. The thing is, most people automate this process in some way or another. This is a benefit of Guix' contribution model that you can't enjoy e.g. with Github pull requests, where you basically have to sign up to a (proprietary) service and most of the time follow whatever conditions have been laid out by the maintainers or get your patch desk rejected. In Guix, it's mostly humans on both ends. > Here are some examples of things that cause issues for me. This is > not a list of grievances; it's my way of attempting to demonstrate > the "shape" of the issue: >=20 > =C2=A0=C2=A0=C2=A0=C2=A0 I signed up on Savannah with the intention of ap= plying to be a > committer.=C2=A0=C2=A0 Savannah closed my account one or two days la= ter > due to inactivity. I can not comment on the workings of Savannah, but as a committer myself, I would advise against applying if you have other things in your life that you consider more important. While it's not the same as being responsible for another human, being responsible for a set of packages can be an emotional burden > =C2=A0=C2=A0=C2=A0=C2=A0 I can't ever seem to get the GNU style commit me= ssages correct.=20 > I use the templates provided, but those don't cover all cases,=20 > and I've even gotten feedback in a review to change a message=C2=A0 > it created. It is the task of the committer to actually sign off meaningful commit messages. As long as you make an effort to keep with the general style, little mistakes here and there are forgiven and most often automatically corrected. > =C2=A0=C2=A0=C2=A0=C2=A0 I don't use the email-based patch workflow day-t= o-day, so this > is another area where I spend a lot of time trying to make sure > I'm doing things correctly. >=20 > =C2=A0=C2=A0=C2=A0=C2=A0 My script runs `guix style` and `guix lint`, but= its suggestions > aren't always correct. I suspect I've submitted some patches > with nonsensical changes due to implicitly trusting these tools. We are quite aware that those tools aren't perfect and at least some of us recognize their "handwriting" quite easily. > =C2=A0=C2=A0=C2=A0=C2=A0 Maybe=20 > https://lists.gnu.org/archive/html/guile-devel/2023-02/msg00030.html > =C2=A0=C2=A0=C2=A0=C2=A0 addresses this, but manually managing Guile impo= rts is > laborious. As a fledgling schemer, I often forget which imports > I needed just for development. Guix actively fights these import troubles by trying to give you useful hints as to which modules to include. Granted, this isn't too different from your C compiler telling you that you forgot a semicolon, but it's better than the undefined variable warnings in other contexts. > I think I would summarize the core of these examples as: >=20 > =C2=A0=C2=A0=C2=A0=C2=A0 "At every step of the contribution process, I mu= st manually=C2=A0 > check that multiple things are correct. With limited available > executive functioning, and no automation, this is very difficult > to do correctly, and an easy place for contributors to stop." >=20 > I think that if I were working on Guix more frequently, I would build > habits I didn't have to think about, and these wouldn't be the large > issues they are for me. But because of the nature of a project like > Guix, we want contributions from people of all kinds of backgrounds, > not just people who have the privilege to work on Guix a lot. >=20 > I have given a list of issues to a group of people who are presumably > analytical, and I think the natural inclination is to go point-by- > point and make arguments for/against. Instead of that[*], I invite > you to address the more abstract issue: (should/how do) we reduce > friction for making contributions? >=20 > Here are some things I've considered: >=20 > * Contributing to Guix is not for you >=20 > =C2=A0=C2=A0=C2=A0=C2=A0 I would be really sad if someone ever said this,= but I guess > it's a possibility. Maybe someone like me just can't be a > contributor to Guix until I have the bandwidth to manage all the > details. I would preemptively argue that diversity of thought > and experiences usually leads to better things. I think you have to separate contributing and being a committer here.=20 Contributions are open to everybody (as long as they pass the first hurdle which is a very manual check to see if they spam our mailing lists or not), but the review process ensures that the outcome remains high quality. This is desirable. Now you might say that this leads to less diversity in the team of committers and maintainers as you need a certain level of privilege to seriously entertain the idea of dedicating that much time and effort to a project and I agree, but I also think this is a bigger reality of volunteer work in general. > * It's OK to make lots of mistakes >=20 > =C2=A0=C2=A0=C2=A0=C2=A0 The people who have reviewed my code have been g= enerous both =C2=A0 > with their time and fixing my mistakes and then applying. Maybe > this model is OK? I still feel guilty every time a reviewer has > to correct an oversight I've made. I also want to become a=20 > committer, but I don't know how that would work if I'm regularly > making mistakes. Obviously people would still be reviewing my > =C2=A0=C2=A0=C2=A0=C2=A0 commits, but presumably a committer should not r= egularly be > making mistakes. To be invited into the club of committers, you have to have existing committers sign off on your ability to sign off commits (details in the manual). As you might have guessed, "I make a lot of mistakes" is not a very convincing argument in your favour here :) My question to you is why you feel that you want to be a committer when you have little time to dedicate to learning our rituals and presumably even less time to do "productive work"? =20 > * We could support a managed web-based workflow >=20 > =C2=A0=C2=A0=C2=A0=C2=A0 I think this has been brought up a lot of times,= and I don't > have a clear idea of what's been said. But I think a lot of=20 > developers these days are more familiar with this style, and we > could still maintain self-sovereignty if we hosted something. Just because it's brought up a lot of times doesn't mean it's a good idea. There is a lot of good things that can be done for our web-based front ends; improving the search results on issues.guix.gnu.org would be one of them. However, I have little hopes for a web based means to submit contributions. I think email should be a format that's understood by folks who know how to operate a web browser. > * Encourage upstream communities like "Guix 'R Us"=20 > (https://sr.ht/~whereiseveryone/guixrus/) >=20 > =C2=A0=C2=A0=C2=A0=C2=A0 Maybe Guix proper continues as is and we foster = various upstream > communities that utilize different styles and batch their=20 > contributions? It is not the responsibility of Guix to endorse third party channels and communities, but rather to provide the basic means to facilitate them. These communities have their own goals that may or may not intersect with ours and it is up to them to decide whether contributing any particular package or series to Guix proper is a worthwhile idea or not. In practice, some of them appear to be seen experimentation grounds to see "what sticks" and contribute packages once they've matured a bit. Cheers