CINXE.COM

labs/tools/guc - Gitiles

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>labs/tools/guc - Gitiles</title><link rel="stylesheet" type="text/css" href="/r/plugins/gitiles/+static/base.css"><link rel="stylesheet" type="text/css" href="/r/plugins/gitiles/+static/doc.css"><!-- default customHeadTagPart --></head><body class="Site"><header class="Site-header"><div class="Header"><!-- default customHeader --><div class="Header-title">Gitiles</div><div class="Header-menu"> <a class="Header-menuItem" href="https://gerrit.wikimedia.org/r/">Code Review</a> <a class="Header-menuItem" href="https://gerrit.wikimedia.org/r/login/plugins%2Fgitiles%2Flabs%2Ftools%2Fguc">Sign In</a> </div></div></header><div class="Site-content"><div class="Container "><div class="Breadcrumbs"><a class="Breadcrumbs-crumb" href="/r/plugins/gitiles/?format=HTML">gerrit.wikimedia.org</a> / <a class="Breadcrumbs-crumb" href="/r/plugins/gitiles/labs/">labs</a> / <a class="Breadcrumbs-crumb" href="/r/plugins/gitiles/labs/tools/">tools</a> / <span class="Breadcrumbs-crumb">guc</span></div><div class="CloneRepo"><div class="CloneRepo-title">Clone this repo:</div><input id="clone-repo-input" type="text" class="u-monospace CloneRepo-command" readonly="readonly" value="git clone https://gerrit.wikimedia.org/r/labs/tools/guc"></div><div class="RepoShortlog"><div class="RepoShortlog-refs"><div class="RefList RefList--responsive"><h3 class="RefList-title">Branches</h3><ul class="RefList-items"><li class="RefList-item"><a href="/r/plugins/gitiles/labs/tools/guc/+/refs/heads/master">master</a></li></ul></div></div><div class="RepoShortlog-log"><ol class="CommitLog"><li class="CommitLog-item CommitLog-item--oneline"><a class="u-sha1 u-monospace CommitLog-sha1" href="/r/plugins/gitiles/labs/tools/guc/+/859d9d7b5256668b690fa20b574ef77e208cc17b">859d9d7</a> <a href="/r/plugins/gitiles/labs/tools/guc/+/859d9d7b5256668b690fa20b574ef77e208cc17b">Localisation updates from https://translatewiki.net.</a> <span class="CommitLog-author" title="l10n-bot@translatewiki.net">by Translation updater bot</span> <span class="CommitLog-time" title="Thu Nov 21 13:22:29 2024 +0100">· 2 days ago</span> <a class="CommitLog-branchLabel" href="/r/plugins/gitiles/labs/tools/guc/+/refs/heads/master">master</a></li><li class="CommitLog-item CommitLog-item--oneline"><a class="u-sha1 u-monospace CommitLog-sha1" href="/r/plugins/gitiles/labs/tools/guc/+/597be504cf5f03838e7ee6000052d12f8f4a4961">597be50</a> <a href="/r/plugins/gitiles/labs/tools/guc/+/597be504cf5f03838e7ee6000052d12f8f4a4961">Localisation updates from https://translatewiki.net.</a> <span class="CommitLog-author" title="l10n-bot@translatewiki.net">by Translation updater bot</span> <span class="CommitLog-time" title="Thu Nov 07 13:20:10 2024 +0100">· 2 weeks ago</span></li><li class="CommitLog-item CommitLog-item--oneline"><a class="u-sha1 u-monospace CommitLog-sha1" href="/r/plugins/gitiles/labs/tools/guc/+/25303349e75a250bd47502d2b11f371080e59b75">2530334</a> <a href="/r/plugins/gitiles/labs/tools/guc/+/25303349e75a250bd47502d2b11f371080e59b75">Localisation updates from https://translatewiki.net.</a> <span class="CommitLog-author" title="l10n-bot@translatewiki.net">by Translation updater bot</span> <span class="CommitLog-time" title="Thu Oct 24 14:25:44 2024 +0200">· 4 weeks ago</span></li><li class="CommitLog-item CommitLog-item--oneline"><a class="u-sha1 u-monospace CommitLog-sha1" href="/r/plugins/gitiles/labs/tools/guc/+/cc8c9fbb544ed413f04364c87c6404fccc5fabb8">cc8c9fb</a> <a href="/r/plugins/gitiles/labs/tools/guc/+/cc8c9fbb544ed413f04364c87c6404fccc5fabb8">Localisation updates from https://translatewiki.net.</a> <span class="CommitLog-author" title="l10n-bot@translatewiki.net">by Translation updater bot</span> <span class="CommitLog-time" title="Thu Oct 17 14:24:58 2024 +0200">· 5 weeks ago</span></li><li class="CommitLog-item CommitLog-item--oneline"><a class="u-sha1 u-monospace CommitLog-sha1" href="/r/plugins/gitiles/labs/tools/guc/+/33d023515d2b6c3619d1ac82a13166286e3e0309">33d0235</a> <a href="/r/plugins/gitiles/labs/tools/guc/+/33d023515d2b6c3619d1ac82a13166286e3e0309">Merge &quot;frontend: Apply `word-break: break-word;` to results&quot;</a> <span class="CommitLog-author" title="jenkins-bot@gerrit.wikimedia.org">by jenkins-bot</span> <span class="CommitLog-time" title="Sun Sep 15 23:12:33 2024 +0000">· 10 weeks ago</span></li></ol><nav class="LogNav"><a class="LogNav-next" href="/r/plugins/gitiles/labs/tools/guc/+log">More &raquo;</a></nav><div class="doc RepoIndexDoc"><h1><a class="h" name="Global-user-contributions" href="#Global-user-contributions"><span></span></a><a class="h" name="global-user-contributions" href="#global-user-contributions"><span></span></a>Global user contributions</h1><h2><a class="h" name="Getting-started" href="#Getting-started"><span></span></a><a class="h" name="getting-started" href="#getting-started"><span></span></a>Getting started</h2><p>Requires <a href="https://getcomposer.org/">Composer</a> and PHP 7.4 or later.</p><pre class="code">composer install composer serve </pre><p>Then open <a href="http://localhost:4000">http://localhost:4000</a>.</p><h3><a class="h" name="Local-development" href="#Local-development"><span></span></a><a class="h" name="local-development" href="#local-development"><span></span></a>Local development</h3><p>You can use the following patch to stub the database and render some of the response UI locally.</p><pre class="code"># src/App.php protected function openDB($host, $dbname = null) { return new class() { public function prepare(string $query) { return new class() { public function bindParam() { } public function execute() { } public function fetchAll() { return []; } }; } }; } </pre><h2><a class="h" name="Toolforge-management" href="#Toolforge-management"><span></span></a><a class="h" name="toolforge-management" href="#toolforge-management"><span></span></a>Toolforge management</h2><p>See also:</p><ul><li><a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Kubernetes#PHP">Help:Toolforge/Kubernetes#PHP</a>, Wikitech.</li></ul><h3><a class="h" name="Installation" href="#Installation"><span></span></a><a class="h" name="installation" href="#installation"><span></span></a>Installation</h3><pre class="code">$ ssh tools-login.wmflabs.org you@tools-bastion$ become my-tool-here mytool@tools-bastion:~$ git clone … git-guc mytool@tools-bastion:~$ ln -s git-guc public_html mytool@tools-bastion:~$ webservice --backend=kubernetes php8.2 restart mytool@tools-bastion:~$ webservice shell tools.guc@interactive:~$ cd git-guc tools.guc@interactive:git-guc$ chmod 775 cache/ tools.guc@interactive:git-guc$ composer install --no-dev </pre><h3><a class="h" name="Deploy-changes" href="#Deploy-changes"><span></span></a><a class="h" name="deploy-changes" href="#deploy-changes"><span></span></a>Deploy changes</h3><pre class="code">$ ssh tools-login.wmflabs.org you@tools-bastion$ become guc guc@tools-bastion:~$ webservice shell tools.guc@interactive:~$ cd git-guc tools.guc@interactive:git-guc$ git pull tools.guc@interactive:git-guc$ composer update --no-dev </pre><h2><a class="h" name="History" href="#History"><span></span></a><a class="h" name="history" href="#history"><span></span></a>History</h2><ul><li>2008: Luxo published GUC tool on Toolserver at <a href="http://toolserver.org/~luxo/contributions/contributions.php">toolserver.org/~luxo/contributions/contributions.php</a> (<a href="https://web.archive.org/web/20080601140738/http://toolserver.org/~luxo/contributions/contributions.php">Internet Archive</a>)</li><li>2010: Krinkle published MoreContributions tool on Toolserver at <a href="https://toolserver.org/~krinkle/MoreContributions/">toolserver.org/~krinkle/MoreContributions/</a> (<a href="https://github.com/Krinkle/toolserver-misc#morecontributions">Screenshot</a>, <a href="https://github.com/Krinkle/toolserver-misc#morecontributions">Source code</a>, <a href="https://web.archive.org/web/20110225023253/https://toolserver.org/~krinkle/MoreContributions/input.php">Internet Archive</a>).</li><li>2014: GUC rewritten by Luxo for Toolforge, and migrated from SVN (Toolserver Fisheye) to Git (Wikimedia Gerrit) at <a href="https://gerrit.wikimedia.org/g/labs/tools/guc/">https://gerrit.wikimedia.org/g/labs/tools/guc/</a>.</li><li>2014: Krinkle added as maintainer.</li><li>2014: Add &quot;Chronological&quot; and &quot;Wildcard&quot; features from MoreContributions to GUC. <a href="https://phabricator.wikimedia.org/T70358">T70358</a>, <a href="https://phabricator.wikimedia.org/T66499">T66499</a></li><li>2017: Add &quot;Replag&quot; API integration. <a href="https://phabricator.wikimedia.org/T170024">T170024</a></li><li>2017: Add localisation to translate the tool, powered by the <a href="https://gerrit.wikimedia.org/g/labs/tools/intuition">Intuition library</a>. <a href="https://phabricator.wikimedia.org/T151657">T151657</a></li><li>2018: Faster responses through better connection reuse. <a href="https://phabricator.wikimedia.org/T186436">T186436</a></li><li>2018: Apply <code class="code">comment</code> table migration. <a href="https://phabricator.wikimedia.org/T208461">T208461</a></li><li>2019: Apply <code class="code">actor</code> table migration. <a href="https://phabricator.wikimedia.org/T224440">T224440</a></li><li>2019: Faster responses by adopting WMCS-specific table views: <code class="code">comment_revision</code>, <code class="code">actor_recentchanges</code>, and <code class="code">actor_revision</code>.</li><li>2019: Faster responses by leveraging CentralAuth metadata. <a href="https://phabricator.wikimedia.org/T195515">T195515</a></li><li>2019: Promote chronological &quot;By date&quot; mode as default. <a href="https://phabricator.wikimedia.org/T193896">T193896</a></li></ul></div></div></div></div> <!-- Container --></div> <!-- Site-content --><!-- default customFooter --><footer class="Site-footer"><div class="Footer"><span class="Footer-poweredBy">Powered by <a href="https://gerrit.googlesource.com/gitiles/">Gitiles</a></span><span class="Footer-formats"><a class="u-monospace Footer-formatsItem" href="?format=TEXT">txt</a> <a class="u-monospace Footer-formatsItem" href="?format=JSON">json</a></span></div></footer></body></html><script>{let f = document.getElementById("clone-repo-input"); f.onclick = () => {f.focus(); if (f.selectionStart === f.selectionEnd) {f.select();}};}</script>

Pages: 1 2 3 4 5 6 7 8 9 10