Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xA889-00000002T7z-1gLE for pgsql-www@arkaria.postgresql.org; Fri, 25 Sep 2026 15:46:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.98.2) (envelope-from ) id 1xA888-00000001W09-1y0G for pgsql-www@arkaria.postgresql.org; Fri, 25 Sep 2026 15:46:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xA888-00000001Vzj-0ds8; Fri, 25 Sep 2026 15:46:32 +0000 Received: from stravinsky.debian.org ([2001:41b8:202:deb::311:108]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1xA885-00000001Fw4-1BzO; Fri, 25 Sep 2026 15:46:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; s=smtpauto.stravinsky; h=X-Debian-User:In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Reply-To:Content-ID:Content-Description; bh=7m7NIiN1jOzGCtuFBFmwJ52xvBN5wUW0dUJZhwP0Od4=; b=oaLNCJJ37EWJwht/W8lEo13Xs6 qNZ85ieOaZRnFAOYkupLn/Ru7QBZgEBUW+boRskrIWOuT5eU7+YCs/zqShEILC6QI1X0ZykcCZW17 g06xWX6t4Rm9yV/xItu3uynVRK25QVeUq9RFx0URZdY9D99Yp29vddl5hc3QYd6ukUeCXZM1tIYHG 1mVT0TGMtJoOf/ubOrMe3Jd6ZmGTqwgGDi6dqX/n+VQsmpIfWpbxv4gz818MmNUWJdlOqeibLtqEa 6TQNrbz1fxHE9ZEd9SfonHIywcPHDMjohkoHW2Tj/Ed9JS6PZpRun8SzMiH2VIyPEJKAh8NGiazpe Ii6O/boA==; Received: from authenticated-user by stravinsky.debian.org with esmtpsa (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.96) (envelope-from ) id 1xA87y-005PIn-0t; Fri, 25 Sep 2026 15:46:22 +0000 Date: Fri, 25 Sep 2026 17:46:20 +0200 From: Christoph Berg To: Magnus Hagander Cc: pgsql-www@lists.postgresql.org, Andrey Borodin , Melanie Plageman , PostgreSQL Contributors Subject: Re: Introduce contributor badges Message-ID: References: <7DF542FC-E797-4050-B204-7755AEFDFF4A@yandex-team.ru> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MtFCUgv/CmzeKapk" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Debian-User: myon List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --MtFCUgv/CmzeKapk Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Hi, thanks Magnus for the in-depth patch review during the Lowlands PGday. I'm attaching v11. > I also note that patch 2 doesn't have the changes that went into pgeu. We should probably merge patches 1 and 2 as a single "import frm pgeu-system" and just grab the current head there, since it has progressed since. I can do that when the time comes. I merged the two patches into 0001, but I don't see any new pgeu changes that would affect this. What am I missing? > Is there a reason that OneToOne change to the User model can't be done as a separate thing before this? In the interest of keeping things into easily reviewable pieces? This is 0002 now. > nitpick is you can save a bunch of html padding by not adding badges-cell to each cell and instead just use a css rule anchored in badges-grid I think, similar to how you're already doing it for the img just one step higher. > and since some of these pages can get large quickly... Done. Please check if I understood that correctly and did the correct change, though :) > Patch also contains 73aab7456 which has already been applied... So needs some rebasing. That should have resolved itself. > Queries for badges should avoid reading the imagedata in every query that doesn't need it. Using defer — probably by defining a default defer. Fixed. > UserModelMultipleChoiceField seems to be a bad name for something that checks Contributors, not Users? Changed. > Purging definitely needs to be more specific, we don't want to purge everything including all the images when a contributor is edited. Also done. Since purges can be limited to specific pages by '...$', I did not move any URLs around. > (sprite discussion, will do that one in person ) I took a mental note of the problem - we'll revisit that once we have too many badges (or better a bit before that). > For the "list all people" view if we don't want to do pagination at this time can we at least put a temporary ceiling on it so we don't generate an absolutely ginormous page. as in only show the first 500 or something. It'll take time to reach that point, but it will get increasingly painful on the way there. There's limits now, but I went with 2000. There are 1700 distinct names mentioned in the release notes since PG10 and I think we would hit 500 rather quickly. Christoph --MtFCUgv/CmzeKapk Content-Type: application/gzip Content-Disposition: attachment; filename=v11-0001-Cherry-pick-ImageBinaryField-and-related-from-pg.patch.gz Content-Transfer-Encoding: base64 H4sICC2VtmoCA3YxMS0wMDAxLUNoZXJyeS1waWNrLUltYWdlQmluYXJ5RmllbGQtYW5kLXJl bGF0ZWQtZnJvbS1wZy5wYXRjaACVGmlz2kj2u35FLykXYIu2hDFgj3HFOZzxVBK7HM/uViUp qiU1oLGQNDpsWI//+77X3RK6wA4VB+h+V79+t7iMgiWxhkfG4Hg0Hp4cn4yPRsfj4Wxs2QPH PhkP+hYf9cfWbGj0j8mXwCffeEjMETGMU/GP9A3D1C6BzCl5v4jcOAnCBXnHozk5W64D/63D LZf5NIjm59oHlvBTcpdynfTH5I/UA+z+kJjj0yPztG+SAwOoad9S6y9uJ6fk+83F3fvfyYNp EvNw8BPo8yha90LXvidXSzbn71yfRetLl3sOYb5DIu4BB4fMQByNhHOe9uJ1nPClpn3+/KXH 4hjkg/15xCwBVIQhb8nIGIxGYz60DPjPnHGq9Xo9JPTIrcM0cb3DGfKKabgmW1//kBODHNRf ZTpBtNxNBugcDUkj8oJ7IY92ov9DSJ8clGV3UWUv8Rz2SUVqSqnEf3SdOU/iQ9f3XJ9PBblp GnoBc+giWXoZ4xNSkVch7pYXbEryi/jfqRvxJfcBJVklZOcL+IHdaGREZq7HY2IvmD/nDhiY OSSuH/MocQM/7hx0dQB0uMfxe6fX1YgdcbAWsgwcTkzDGA4GjTf9IqC6ypfgMvW/BAemGKIZ x6/TuqY57mxGer25mxB22GirVuOy5vNHobWiJJrrO3wF7i1flFpsNrC4M0RXIIcOfzj0U8/T 4Kq2kX37lvQMHXzA1MET3r7VDoSrOX/BzQTUsYi7DIMoEVy9uLxrBxGnfGXzUFxbBvpv5rkO w6WPURRE2oHCokL5GVQxJsC6iAsIqrbdIMe7ufpcQroELeSb4lAUD0WFtjPIiMc289QV6ISF obee8pU7mwaRC9Yq5NPJx/9eXU6vb68+fr27uLu6/jq9u/iEtLUD24MIVItcHakHKr50T7UD NGuwgWQ9fWBeCjY9Id+/Bj6wtNrtn0gIIRw+I9Op67vJdNqJuTfTyZKtph7358lCJ/ssmsfw tn//iJ8yuvhCYAqHCbwUJQbyEoaGQdhpbzbaOkG23QomS5NgKjRRwdxsAOYl8+ISagohq1M9 uy5Idml+kKrYFd6bEwLvzZeiThxug+EkUWonQi3Fk/tsCVoMGSpIMpJsgNhu+YpECzJFPEkj fyvZoljgw3DGhEc+86bJOuQ14RSxVlWGVpUMRAebLwLPAYHlxQs70YkdLEMw5Ag/+T6kULjE Bg7tvbhdpQnvLPWSbUKB4ZV0bG2O8BIza51wVudnTcOIh9LCq6fIyIFOAYZF3JlIcyqQF8Av 3lud1Q4mhYt1Z4qBGxM/SIQfFJgXzrchRKG6YRaLOZWCSFZ1axHLRX2A14TrZAFZqaCH4llB mqr1F+QSlQ8sK37kvApcFZy5Ma9G1E7rC1u5y3RJYvd/nAQzmRiAzdMzwSuMWyLWMmkiBerd bnYWJaobQ9pNmG/nyl7yZRCtH1z+2K3I8gA3KKjXlAURkTcAK+VlS0m0rgCFAJSHdHrDIqgA ii4rYOiMc6fzUFu2vSDmVWh3OQeaocwFBQFFkiIfs1xFWEz461T9PkihYMX7C1E+Iiifkr24 RfYIr+lzOVeqp2mIxt4VqK5POu0/bj5+gmDbvvn6qd19HfNr31sTxCNBRABP1U3gAIR5XvDI nVZJgjfkHbvnIquRQp4D/r+BRfe4b2PxECDVxwUHNdhJCoTWJAoSUYzHQZFY6idBai9gHWWQ fPE4PtwIyBEjIsdABnko5g6tqQJcGnNuRzh3pynZQqHXJf+aELOikNkygYvcqLPpmpuTegc2 K1YRswceIbmAvkMDvrpusBuKUB0BqhPJdAJSVADzUIZweCoZqap2UEnblcMp7aD3fjd+4vEr 8LgKN54DmY1A5s8K3SLzTYJvACqepFQpofL0KiOIwByzIYT2u6jk+DsCwAuWLdxexq9lGifE 4hC8Vk/PeeTarwhRDl3bwjNeyxQpTIEbUzE6C3E6wcVKsMalHZkDIHAHoRoOKJAnMuOWDI6D LSZRZ8NZnEbWHkKIotAor6jIlbxNdaDK+Vj9PLXFAUWB2j5tLKSf64gQj4Ax79RqNaXK3bl5 I+L+fkaxu72ZyRpmq2n1da0MHzsjw+gfv9jKZFQLnQz04pVOJmsLBHS5i5EEVOeWwV1eff44 vfp68+fd9P3117vbiw9X7zFkbZqZCsKV6PiE+v4U/d5/xP62XiK7qI7kXmonJGVMjdtp/ko5 khdHoi6rWPEbdE3YFmcBswWKEg4xkwUntsdZBJ06t++tYIVkliy6505jgYUO1MB7Mtmq0Jo4 dwtgkUujhEihMCD7VpAs9olspyEZkdyO9qGq2hdyxQ0y/4qkwHt7+VjGebNBYT6RF8QdUckU rqVLbNiNUh+MHbJnsoBvAUQEAt5WpIWDFA5xsMPpnBJhD3TB4qkakQCd3nk2LxGxTccEwUBJ UNQ6RUozcJMpagCYd8F/A6D9CN4FIXaGIkScOa4/x4tmD4HrqNPhEsQxgsVRkVycWjHK5mMB FMe0UtXTmPP7jrGlcqbIrFMKdqqArzcTDf1ILbzLY0kkqQRsRV3mTUTz2xzZm8xehXWVY8QM y2mI70oOQaG8qyJ/zYyyZCEKfSVcszWpzVcE4ixYZMFYakGmkW0huDB2tJrXVcQd8f7Rkc0Y pfbAtEa2fZJFZAy8W2jWw3BhDwPx8UAfkQPxP3wVmRkCpSdzc54WsS+FK0z40oXDKReQxZcI mfJjNmObtLFhw4CvNV3S70kS3vI4hN6f33IHbhT6/0h96GpEKwSZmyiwoWQFdwT7QB5aLy88 4RtcbC6D0PNEyUZvrr/dbQqKSfahYP6vwRdVfL6GofFbI9GiuUIwECUFEoYmAkhARTa11lOM jdhPlHSCULQM08n44ZcCbQAlMzTHDAlHg6dbDSsfTFtNq6/L7cw4GVoDfvJSbs+pFnL7sC9y +8tjQn3TWqqP12Es8/Eb2SG1rjddQ4skbH5K+qMBDqWAsQeXaKwM0+yTBQgPDSPYN3SQcBV9 etSnSEWkzviUmADrY9nq6bBJxzjvcrHOPZR9FbS+zI9lqgcSITSuDlCFYAzR+ZFjikByIYRS whKRwkAaKAQghaRJ3rmJqL1QLSgI0NRP5VJnJ93WEEL4D90V90S0+k1ozwm4rIOxd+gp0QE4 CLkP7NCLd7RcKsopb8wUTgWsOD8eWzVnUrRb2Xlg+lSzW1+cT7hQMJPDBpGnRKrHeiBbRXQF HUNRrfo1Si7iOF1yWQWwOATPxwxgBxEGARGTIQMniC0UCVpdolazVPGAbQrpuEk7JnyF6HBR IIAlOMASwyCWocPdhKmQCZLagxuksToHKCwSisE6G9VW6rGmcogC+puLTxj58i5HaXHXZERN RHL8fLk0EalMQkqX09DyFUSQ11MTuwpX6ApLA79q547xNr9/JUFWvUl1oZ2TDLqYU1/Z5mfz bbjKTiEQQ0GGCaDQU3fJoVoutN9dfQeO2YRj5jh5ZQOHkcIiEOADWEEUSHgllmRfytzFqF8i nO8UpRKGQN9dvf8T/jacd082IE5l9yPsXkpYnDkUV0qjBFWEq6YYasy/U6jYdBWsFsASfSIK PI9gdpgz198gZ0ylOqTowKnTvv307qJdMbQGJApVJrSpUjiddMq1U/k+Sa9yLLisQ9LXt+OY VRyzjtPdIljDfEjO8tRToHKVmTHZNlQqOWTTNEm6oHgUIaIG1PkJSIM10xQTngojYjPzPVeG RxZFbC13vp8ewQknOKP4sbq8/LH6MMb3dsPwX8Af/hXyeTs7URO98Ybe+OTH6tj4sRpw+Bv9 WBkO/LEfK5Ph+3YeoZ+xkNOhfC5bHLc6HDQPLq3yndJea3vJ+4vPYsulxq8+yH1VnWPY/eHx eGi+VOf8KvPiQ1tRDT3twU1JNCq70r1n7eAMfTCO7ElLjK+enhSEIIh29Pz8G5bUw4Ge7wns 5+cWEcXrpCVl6IWLAEoCCdM6P7Oiw3Pkyn24DGT1tJc1P4pO1lQpQXxMlMhy0sra8pZ4FDdp PT1lONnOFDcICuE6jfuQo3EXZTjzmAVFDBjHDsjzwg6OBqb5vsR+fj47FJ/EoYg4VV3wDRH8 LiRgNhouaCl3HT238Pr5smMBC6wm5DRQDRH8DAiL/JhiTxSDCFKvpcdbcjqz90yAsKLYAIWD WgAS7MXGP3ESQakjvei0HbeVJNlhax9RRNQBqnmbyxV+LGI1r2c+MTIsdnw0pPRkdmIbg7G1 tcss4NYcpbCHPmDqA/QB09g97iMvjvuywVrt1w2iU6OpGu7Ix2wSpTjwKSOipDEE/hmXKs9/ QsGi+ykul8Ez58/ABNmo8FMI6aLYwGrSK8mdQrmFa+KRFL4j3yATCM0Y+hGoZqibA2zAX4Om GuQs6Yh0s0rUsKVgqzoRJlrsOLMshtOU7DgKvzQAbZ5nqhnoe/RMZnmi5L1Cv8uyWqPPTkjr li+DB5UeSg/eI3HAraJP5A80JBSParMjJTpRT1yK2mjQQ8MUUdRb+Niv9nS1aDXVZ4CKx/e2 NM72z+9tgdX+iY8YhBFQaziQD/HUM1jxYwf41max7brt7osU89gvqBbycVY7qKe7zXn+o8rz H+DvAvL8Bb63RemzqR/m7Vrez02/I62bSt1P8RGV8JFO+1WZr61nZ+pW6oDaD9Gs2pIKRZZl 9wfjI5PSkWGP+8aJXQ5FNTQZhWrLMgANMQDhkEsjH4Q/n0+OaV8/O6ZHGgnjtR2E8/5k0qdj egwLaztah0ngBEu+Op8c0QEd6WdHsHVw4+ID3fOJaVBDI19AYU7w6E8AxqCmlg3H4l4AzfnC c63JxKQC1H6APA0M+iA/0fr0GDA07f930DvBLCoAAA== --MtFCUgv/CmzeKapk Content-Type: application/gzip Content-Disposition: attachment; filename=v11-0002-Turn-Contributor.user-into-a-OneToOneField.patch.gz Content-Transfer-Encoding: base64 H4sICC2VtmoCA3YxMS0wMDAyLVR1cm4tQ29udHJpYnV0b3IudXNlci1pbnRvLWEtT25lVG9P bmVGaWVsZC5wYXRjaAClVm1v2zYQ/s5fccg+xIZlWVLt2PXmIVle1mHLOjQu9qEYBEqkZLaU qIpUHQP98TtSsiOnSVeshGFDurvn7p57oW9qVcDLLAyCMEwSOl8Es+l8xl7OsmxOaRpRHr6I 6PQsSiKawK0q4Y5XEM4hCJbuAxGakhuEWcLlphbaqGoDv/A6h5+KnSrPGU8ELX1V5z+TK2r4 Ev7mzIPwzCFFQXQGUbSMQos1ChCN3DXJe56aJbz762J9+Qo+hSFEk+k/sG7qEi5VaWqRNEbV fqN5DaI0Cii8Lvla4deN4JIRst5woGmqmtJAVatMSA4VzfGlrDllO5BKfdBgUC19QISap6pm 0FRkK8zmyJlyUWk/52ZgHa983x96kDe0ZpyBKuUOaE5FqQ25Ulz/qcz1PfLhgbbxsaaSIkUC YKsaySCRaot+wPoht400opL8devjDTeYKmc+rF18DMPWuim4BmqgUNqgu6PASRd4hYTY4H6E gn7gmB7q83vrWRhkyuWr0w0vqG85EhrwQ6FUY1VBhgRQKdEAwxZl7jx7sN2IdAMMU2qTRLUt 5kwsg02lIbM91GcKfjNAGbPATSk+Nhw9M36P1i62WDDLCbGxFCKvqREoyaiQGE3mQmTUUJee pROKjp0nEtYuaEuGRT7Kqap5zT82Qgvk3Go9rnVCWY45VdQgIbrLkyCO03R4x63xidfadRXX 2lJVMnyJhKiW13AZYlTSpeOT8XhMAFtkckhRT4IgmMZUGuSghxw7V9UOPgMOw+jLQ6DKtzyZ 9Gz0pMDaSG3NvjifASIYofsIbN9rSDe0zO3URXMsBXpz4QxG2L4hIAy3z4PxkECKw4F0WXDA pXA2nT7p+1tTIoSJLIPxOMf2o5PvgYLku8xJybeOjX5upO3LoDu+P1skUTKdZrZ6MGH806Rs pCRYg+91f34O48DDFRd6WOTzczL6AX7lJUdzXB7JDq7eY40UzPzIx/WKLWVX4zh4OcZNGQXL KCAjMhJFpWoDzOn6LPG7LtjXkIzcMHZyjCODzkRzY0daH2uwZC9/yMSDFtT6I6NU4uaB2710 8KDnH14Ol1bTdh7jFUdKy1Rg163gXfvWnsFJn7gTD06QsBex3VIxbiMhY8s0TSQ/GXoPZj13 ekuryirEBy+7wT4t/+Lt+lX89u76TXz7+ur6jz3GP/vIVMU7oOO4eg4ubPHc9TF4kDsdy0dc 0oKv+lmceMdqrYIt+GNJZkFXXa2OLqpHnuxJJC0/rNZ1w70vhZak52SqjF0f8NWz/eFfXtxd XlxdP2Ft1Oo5Mh9p9+vzwPN/DvphXyVfFXczuchmUThfzHw/maWLcBYu9jNrR/PrHr4yrwcV O4/RwpvDyH3jY9vpvXts0Gnf2h/scZewVGl7X626MfEvN7TrmoLex5KXudmsMFavV6xeUYct ziGsI6w1vzct1pO2HoFvORsuq9gg1OrUXYeM67QWlXOFj2lT17w0eHFhrzJ3NRb0PX73qXJX /emQjC2g+591CPJG1Vzk5e98N3iLgmfy9Hr9uGeqbb5h2zLHoMdT8T9xoeVH43aIS2VEJg7F sqattGrqnMdNLe0mGJxigxQF/k0xu+NWOfUAsx8DifzZCz8g5F+OLiQSKwsAAA== --MtFCUgv/CmzeKapk Content-Type: application/gzip Content-Disposition: attachment; filename=v11-0003-Introduce-contributor-badges.patch.gz Content-Transfer-Encoding: base64 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 tAAA --MtFCUgv/CmzeKapk Content-Type: application/gzip Content-Disposition: attachment; filename=v11-0004-Make-contributor-badges-discoverable.patch.gz Content-Transfer-Encoding: base64 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 Mf0g1Fm+8rA8Ib60WEPnfOR4lvU/4FvGlscUAAA= --MtFCUgv/CmzeKapk--