Andrew Bogott has submitted this change and it was merged.

Change subject: deployment: lint clean
......................................................................


deployment: lint clean

Change-Id: I8019ef99cd804b28bb89434d2985eea9302edf2e
---
M modules/deployment/manifests/deployment_server.pp
M modules/deployment/manifests/packages.pp
M modules/deployment/manifests/salt_master.pp
M modules/deployment/manifests/target.pp
4 files changed, 326 insertions(+), 263 deletions(-)

Approvals:
  Andrew Bogott: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/modules/deployment/manifests/deployment_server.pp 
b/modules/deployment/manifests/deployment_server.pp
index cb7652a..69ecb12 100644
--- a/modules/deployment/manifests/deployment_server.pp
+++ b/modules/deployment/manifests/deployment_server.pp
@@ -1,130 +1,158 @@
 class deployment::deployment_server(
-  $deployment_conffile='/etc/git-deploy/git-deploy.conf',
-  $deployment_ignorefile='/etc/git-deploy/gitignore',
-  $deployment_ignores=['.deploy'],
-  $deployment_restrict_umask='002',
-  $deployment_block_file='/etc/ROLLOUTS_BLOCKED',
-  $deployment_support_email='',
-  $deployment_repo_name_detection='dot-git-parent-dir',
-  $deployment_announce_email='',
-  $deployment_send_mail_on_sync='false',
-  $deployment_send_mail_on_revert='false',
-  $deployment_log_directory='/var/log/git-deploy',
-  $deployment_log_timing_data='false',
-  $deployment_git_deploy_dir='/var/lib/git-deploy',
-  $deployment_per_repo_config={},
-  $deployer_groups=[]
-  ) {
-  if ! defined(Package['git-deploy']){
-    package { 'git-deploy':
-      ensure => present;
+    $deployment_conffile='/etc/git-deploy/git-deploy.conf',
+    $deployment_ignorefile='/etc/git-deploy/gitignore',
+    $deployment_ignores=['.deploy'],
+    $deployment_restrict_umask='002',
+    $deployment_block_file='/etc/ROLLOUTS_BLOCKED',
+    $deployment_support_email='',
+    $deployment_repo_name_detection='dot-git-parent-dir',
+    $deployment_announce_email='',
+    $deployment_send_mail_on_sync=false,
+    $deployment_send_mail_on_revert=false,
+    $deployment_log_directory='/var/log/git-deploy',
+    $deployment_log_timing_data=false,
+    $deployment_git_deploy_dir='/var/lib/git-deploy',
+    $deployment_per_repo_config={},
+    $deployer_groups=[]
+    ) {
+    if ! defined(Package['git-deploy']){
+        package { 'git-deploy':
+            ensure => present;
+        }
     }
-  }
-  if ! defined(Package['git-core']){
-    package { 'git-core':
-      ensure => present;
+    if ! defined(Package['git-core']){
+        package { 'git-core':
+            ensure => present;
+        }
     }
-  }
-  if ! defined(Package['python-redis']){
-    package { 'python-redis':
-      ensure => present;
+    if ! defined(Package['python-redis']){
+        package { 'python-redis':
+            ensure => present;
+        }
     }
-  }
 
-  $deployment_global_hook_dir = "${deployment_git_deploy_dir}/hooks"
-  $deployment_dependencies_dir = "${deployment_git_deploy_dir}/dependencies"
-  file {
-    "${$deployment_global_hook_dir}":
-      ensure => directory,
-      mode => 0555,
-      owner => root,
-      group => root;
-    "${$deployment_dependencies_dir}":
-      ensure => directory,
-      mode => 0555,
-      owner => root,
-      group => root;
-    "${$deployment_global_hook_dir}/sync":
-      ensure => directory,
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${$deployment_global_hook_dir}"]];
-    "${$deployment_global_hook_dir}/sync/deploylib.py":
-      source => 'puppet:///deployment/git-deploy/hooks/deploylib.py',
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${$deployment_global_hook_dir}/sync"]];
-    "${$deployment_global_hook_dir}/sync/shared.py":
-      source => 'puppet:///deployment/git-deploy/hooks/shared.py',
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${$deployment_global_hook_dir}/sync"]];
-    "${$deployment_global_hook_dir}/sync/depends.py":
-      source => 'puppet:///deployment/git-deploy/hooks/depends.py',
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${$deployment_global_hook_dir}/sync"]];
-    "${$deployment_dependencies_dir}/l10n":
-      source => 
'puppet:///deployment/git-deploy/dependencies/l10nupdate-quick',
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${$deployment_dependencies_dir}"]];
-  }
-  file {
-    '/etc/gitconfig':
-      content => template('deployment/git-deploy/gitconfig.erb'),
-      mode => 0444,
-      owner => root,
-      group => root,
-      require => [Package['git-core']];
-    "${deployment_conffile}":
-      content => template('deployment/git-deploy/git-deploy.conf.erb'),
-      mode => 0444,
-      owner => root,
-      group => root;
-    "${deployment_ignorefile}":
-      content => template('deployment/git-deploy/gitignore.erb'),
-      mode => 0444,
-      owner => root,
-      group => root;
-    '/usr/local/bin/deploy-info':
-      owner => root,
-      group => root,
-      mode => 0555,
-      source => 'puppet:///deployment/git-deploy/utils/deploy-info',
-      require => [Package['python-redis']];
-    '/usr/local/bin/service-restart':
-      owner => root,
-      group => root,
-      mode => 0555,
-      source => 'puppet:///deployment/git-deploy/utils/service-restart';
-    '/usr/local/bin/submodule-update-server-info':
-      owner => root,
-      group => root,
-      mode => 0555,
-      source => 
'puppet:///deployment/git-deploy/utils/submodule-update-server-info',
-  }
-  salt::grain { 'deployment_server':
-      grain   => 'deployment_server',
-      value   => true,
-      replace => true;
-  }
-  salt::grain { 'deployment_global_hook_dir':
-      grain   => 'deployment_global_hook_dir',
-      value   => $deployment_global_hook_dir,
-      replace => true;
-  }
-  salt::grain { 'deployment_repo_user':
-      grain   => 'deployment_repo_user',
-      value   => 'sartoris',
-      replace => true;
-  }
-  generic::systemuser {
-    'sartoris': name => 'sartoris', shell => '/bin/false', home => 
'/nonexistent', groups => $deployer_groups
-  }
+    $deployment_global_hook_dir = "${deployment_git_deploy_dir}/hooks"
+    $deployment_dependencies_dir = "${deployment_git_deploy_dir}/dependencies"
+    file { $deployment_global_hook_dir:
+        ensure => directory,
+        mode   => '0555',
+        owner  => 'root',
+        group  => 'root',
+    }
+
+    file { $deployment_dependencies_dir:
+        ensure => directory,
+        mode   => '0555',
+        owner  => 'root',
+        group  => 'root',
+    }
+
+    file { "${$deployment_global_hook_dir}/sync":
+        ensure  => directory,
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$deployment_global_hook_dir]],
+    }
+
+    file { "${$deployment_global_hook_dir}/sync/deploylib.py":
+        source  => 'puppet:///deployment/git-deploy/hooks/deploylib.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File["${$deployment_global_hook_dir}/sync"]],
+    }
+
+    file { "${$deployment_global_hook_dir}/sync/shared.py":
+        source  => 'puppet:///deployment/git-deploy/hooks/shared.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File["${$deployment_global_hook_dir}/sync"]],
+    }
+
+    file { "${$deployment_global_hook_dir}/sync/depends.py":
+        source  => 'puppet:///deployment/git-deploy/hooks/depends.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File["${$deployment_global_hook_dir}/sync"]],
+    }
+
+    file { "${$deployment_dependencies_dir}/l10n":
+        source  => 
'puppet:///deployment/git-deploy/dependencies/l10nupdate-quick',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$deployment_dependencies_dir]],
+    }
+
+    file { '/etc/gitconfig':
+        content => template('deployment/git-deploy/gitconfig.erb'),
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+        require => [Package['git-core']],
+    }
+
+    file { $deployment_conffile:
+        content => template('deployment/git-deploy/git-deploy.conf.erb'),
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+    }
+
+    file { $deployment_ignorefile:
+        content => template('deployment/git-deploy/gitignore.erb'),
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+    }
+
+    file { '/usr/local/bin/deploy-info':
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0555',
+        source  => 'puppet:///deployment/git-deploy/utils/deploy-info',
+        require => [Package['python-redis']],
+    }
+
+    file { '/usr/local/bin/service-restart':
+        owner  => 'root',
+        group  => 'root',
+        mode   => '0555',
+        source => 'puppet:///deployment/git-deploy/utils/service-restart',
+    }
+
+    file { '/usr/local/bin/submodule-update-server-info':
+        owner  => 'root',
+        group  => 'root',
+        mode   => '0555',
+        source => 
'puppet:///deployment/git-deploy/utils/submodule-update-server-info',
+    }
+
+    salt::grain { 'deployment_server':
+        grain   => 'deployment_server',
+        value   => true,
+        replace => true,
+    }
+
+    salt::grain { 'deployment_global_hook_dir':
+        grain   => 'deployment_global_hook_dir',
+        value   => $deployment_global_hook_dir,
+        replace => true,
+    }
+
+    salt::grain { 'deployment_repo_user':
+        grain   => 'deployment_repo_user',
+        value   => 'sartoris',
+        replace => true,
+    }
+
+    generic::systemuser { 'sartoris':
+        name   => 'sartoris',
+        shell  => '/bin/false',
+        home   => '/nonexistent',
+        groups => $deployer_groups,
+    }
 }
diff --git a/modules/deployment/manifests/packages.pp 
b/modules/deployment/manifests/packages.pp
index ba1a38d..870793a 100644
--- a/modules/deployment/manifests/packages.pp
+++ b/modules/deployment/manifests/packages.pp
@@ -1,12 +1,12 @@
 class deployment::packages {
-    if ! defined(Package["git-core"]){
-      package { "git-core":
-        ensure => present;
+    if ! defined(Package['git-core']){
+      package { 'git-core':
+        ensure => present,
       }
     }
-    if ! defined(Package["python-redis"]){
-      package { "python-redis":
-        ensure => present;
+    if ! defined(Package['python-redis']){
+      package { 'python-redis':
+        ensure => present,
       }
     }
 }
diff --git a/modules/deployment/manifests/salt_master.pp 
b/modules/deployment/manifests/salt_master.pp
index 94f59ce..0ab53c5 100644
--- a/modules/deployment/manifests/salt_master.pp
+++ b/modules/deployment/manifests/salt_master.pp
@@ -1,120 +1,155 @@
 class deployment::salt_master(
-  $state_dir="/srv/salt",
-  $runner_dir="/srv/runners",
-  $pillar_dir="/srv/pillars",
-  $module_dir="/srv/salt/_modules",
-  $returner_dir="/srv/salt/_returners",
-  $repo_config,
-  $deployment_config
-  ) {
-  file {
-    "/etc/salt/deploy_runner.conf":
-      content => template("deployment/deploy_runner.conf.erb"),
-      mode => 0444,
-      owner => root,
-      group => root,
-      require => [Package["salt-master"]];
-    "${state_dir}/deploy":
-      ensure => directory,
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${state_dir}"]];
-    "${state_dir}/top.sls":
-      source => "puppet:///deployment/states/top.sls",
-      mode => 0444,
-      owner => root,
-      group => root,
-      require => [File["${state_dir}/deploy"]];
-    "${state_dir}/deploy/sync_all.sls":
-      source => "puppet:///deployment/states/deploy/sync_all.sls",
-      mode => 0444,
-      owner => root,
-      group => root,
-      require => [File["${state_dir}/deploy"]];
-    "${runner_dir}/deploy.py":
-      source => "puppet:///deployment/runners/deploy.py",
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => File["${runner_dir}"];
-    "${pillar_dir}/deployment":
-      ensure => directory,
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${pillar_dir}"]];
-    "${pillar_dir}/deployment/repo_config.sls":
-      content => ordered_json({'repo_config' => $repo_config }),
-      mode => 0444,
-      owner => root,
-      group => root,
-      require => [File["${pillar_dir}/deployment"]];
-    "${pillar_dir}/deployment/deployment_config.sls":
-      content => ordered_json({'deployment_config' => $deployment_config}),
-      mode => 0444,
-      owner => root,
-      group => root,
-      require => [File["${pillar_dir}/deployment"]];
-    "${pillar_dir}/top.sls":
-      content => template("deployment/pillars/top.sls.erb"),
-      mode => 0444,
-      owner => root,
-      group => root,
-      require => [File["${pillar_dir}"]];
-    "${module_dir}/deploy.py":
-      source => "puppet:///deployment/modules/deploy.py",
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${module_dir}"]];
-    "${returner_dir}/deploy_redis.py":
-      source => "puppet:///deployment/returners/deploy_redis.py",
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${returner_dir}"]];
-    "${module_dir}/parsoid.py":
-      source => "puppet:///deployment/modules/parsoid.py",
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${module_dir}"]];
-    "${module_dir}/mwprof.py":
-      source => "puppet:///deployment/modules/mwprof.py",
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${module_dir}"]];
-    "${module_dir}/mediawiki.py":
-      source => "puppet:///deployment/modules/mediawiki.py",
-      mode => 0555,
-      owner => root,
-      group => root,
-      require => [File["${module_dir}"]];
-  }
+    $state_dir='/srv/salt',
+    $runner_dir='/srv/runners',
+    $pillar_dir='/srv/pillars',
+    $module_dir='/srv/salt/_modules',
+    $returner_dir='/srv/salt/_returners',
+    $repo_config,
+    $deployment_config
+    ) {
+    file { '/etc/salt/deploy_runner.conf':
+        content => template('deployment/deploy_runner.conf.erb'),
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+        require => [Package['salt-master']],
+    }
+
+    file { "${state_dir}/deploy":
+        ensure  => directory,
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$state_dir]],
+    }
+
+    file { "${state_dir}/top.sls":
+        source  => 'puppet:///deployment/states/top.sls',
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+        require => [File["${state_dir}/deploy"]],
+    }
+
+    file { "${state_dir}/deploy/sync_all.sls":
+        source  => 'puppet:///deployment/states/deploy/sync_all.sls',
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+        require => [File["${state_dir}/deploy"]],
+    }
+
+    file { "${runner_dir}/deploy.py":
+        source  => 'puppet:///deployment/runners/deploy.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => File[$runner_dir],
+    }
+
+    file { "${pillar_dir}/deployment":
+        ensure  => directory,
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$pillar_dir]],
+    }
+
+    file { "${pillar_dir}/deployment/repo_config.sls":
+        content => ordered_json({'repo_config' => $repo_config }),
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+        require => [File["${pillar_dir}/deployment"]],
+    }
+
+    file { "${pillar_dir}/deployment/deployment_config.sls":
+        content => ordered_json({'deployment_config' => $deployment_config}),
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+        require => [File["${pillar_dir}/deployment"]],
+    }
+
+    file { "${pillar_dir}/top.sls":
+        content => template('deployment/pillars/top.sls.erb'),
+        mode    => '0444',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$pillar_dir]],
+    }
+
+    file { "${module_dir}/deploy.py":
+        source  => 'puppet:///deployment/modules/deploy.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$module_dir]],
+    }
+
+    file { "${returner_dir}/deploy_redis.py":
+        source  => 'puppet:///deployment/returners/deploy_redis.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$returner_dir]],
+    }
+
+    file { "${module_dir}/parsoid.py":
+        source  => 'puppet:///deployment/modules/parsoid.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$module_dir]],
+    }
+
+    file { "${module_dir}/mwprof.py":
+        source  => 'puppet:///deployment/modules/mwprof.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$module_dir]],
+    }
+
+    file { "${module_dir}/mediawiki.py":
+        source  => 'puppet:///deployment/modules/mediawiki.py',
+        mode    => '0555',
+        owner   => 'root',
+        group   => 'root',
+        require => [File[$module_dir]],
+    }
 
   # If pillars or modules change, we need to sync them with the minions
-  exec {
-    "refresh_deployment_pillars":
-      command => "/usr/bin/salt -C 'G@deployment_server:true or 
G@deployment_target:*' saltutil.refresh_pillar",
-      subscribe => [File["${pillar_dir}/deployment/deployment_config.sls"], 
File["${pillar_dir}/deployment/repo_config.sls"], File["${pillar_dir}"]],
-      refreshonly => true,
-      require => [Package["salt-master"]];
-    "deployment_server_init":
-      command => "/usr/bin/salt -G 'deployment_server:true' 
deploy.deployment_server_init",
-      subscribe => [Exec['refresh_deployment_pillars']],
-      refreshonly => true,
-      require => [File["${module_dir}/deploy.py"]];
-    "refresh_deployment_modules":
-      command => "/usr/bin/salt -G 'deployment_target:*' 
saltutil.sync_modules",
-      subscribe => [File["${module_dir}/deploy.py"], 
File["${module_dir}/parsoid.py"], File["${module_dir}/mwprof.py"], 
File["${module_dir}/mediawiki.py"]],
-      refreshonly => true,
-      require => [Package["salt-master"]];
-    "refresh_deployment_returners":
-      command => "/usr/bin/salt -G 'deployment_target:*' 
saltutil.sync_returners",
-      subscribe => [File["${returner_dir}/deploy_redis.py"]],
-      refreshonly => true,
-      require => [Package["salt-master"]];
+    exec { 'refresh_deployment_pillars':
+        command     => "/usr/bin/salt -C 'G@deployment_server:true or 
G@deployment_target:*' saltutil.refresh_pillar",
+        subscribe   => [File["${pillar_dir}/deployment/deployment_config.sls"],
+                        File["${pillar_dir}/deployment/repo_config.sls"],
+                        File[$pillar_dir]],
+        refreshonly => true,
+        require     => [Package['salt-master']],
+    }
+
+    exec { 'deployment_server_init':
+        command     => "/usr/bin/salt -G 'deployment_server:true' 
deploy.deployment_server_init",
+        subscribe   => [Exec['refresh_deployment_pillars']],
+        refreshonly => true,
+        require     => [File["${module_dir}/deploy.py"]],
+    }
+
+    exec { 'refresh_deployment_modules':
+        command     => "/usr/bin/salt -G 'deployment_target:*' 
saltutil.sync_modules",
+        subscribe   => [File["${module_dir}/deploy.py"],
+                        File["${module_dir}/parsoid.py"],
+                        File["${module_dir}/mwprof.py"],
+                        File["${module_dir}/mediawiki.py"]],
+        refreshonly => true,
+        require     => [Package['salt-master']],
+    }
+
+    exec { 'refresh_deployment_returners':
+        command     => "/usr/bin/salt -G 'deployment_target:*' 
saltutil.sync_returners",
+        subscribe   => [File["${returner_dir}/deploy_redis.py"]],
+        refreshonly => true,
+        require     => [Package['salt-master']],
   }
 }
diff --git a/modules/deployment/manifests/target.pp 
b/modules/deployment/manifests/target.pp
index a106541..a6cc12d 100644
--- a/modules/deployment/manifests/target.pp
+++ b/modules/deployment/manifests/target.pp
@@ -1,36 +1,36 @@
 define deployment::target($ensure=present) {
     salt::grain { "deployment_target_${name}":
         ensure => $ensure,
-        grain  => "deployment_target",
+        grain  => 'deployment_target',
         value  => $name,
         notify => [
-            Exec["deployment_target_sync_all"],
-            Exec["deployment_target_refresh_pillars"],
-            Exec["deployment_target_deploy_all"],
+            Exec['deployment_target_sync_all'],
+            Exec['deployment_target_refresh_pillars'],
+            Exec['deployment_target_deploy_all'],
         ];
     }
-    if ! defined(Exec["deployment_target_sync_all"]){
-        exec { "deployment_target_sync_all":
+    if ! defined(Exec['deployment_target_sync_all']){
+        exec { 'deployment_target_sync_all':
             refreshonly => true,
-            path        => ["/usr/bin"],
-            command     => "salt-call saltutil.sync_all";
+            path        => ['/usr/bin'],
+            command     => 'salt-call saltutil.sync_all';
         }
     }
-    if ! defined(Exec["deployment_target_refresh_pillars"]){
-        exec { "deployment_target_refresh_pillars":
+    if ! defined(Exec['deployment_target_refresh_pillars']){
+        exec { 'deployment_target_refresh_pillars':
             refreshonly => true,
-            path        => ["/usr/bin"],
-            command     => "salt-call saltutil.refresh_pillar";
+            path        => ['/usr/bin'],
+            command     => 'salt-call saltutil.refresh_pillar';
         }
     }
-    if ! defined(Exec["deployment_target_deploy_all"]){
-        exec { "deployment_target_deploy_all":
+    if ! defined(Exec['deployment_target_deploy_all']){
+        exec { 'deployment_target_deploy_all':
             refreshonly => true,
-            path        => ["/usr/bin"],
-            command     => "salt-call deploy.sync_all",
+            path        => ['/usr/bin'],
+            command     => 'salt-call deploy.sync_all',
             require     => [
-                Exec["deployment_target_sync_all"],
-                Exec["deployment_target_refresh_pillars"],
+                Exec['deployment_target_sync_all'],
+                Exec['deployment_target_refresh_pillars'],
             ];
         }
     }

-- 
To view, visit https://gerrit.wikimedia.org/r/107343
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8019ef99cd804b28bb89434d2985eea9302edf2e
Gerrit-PatchSet: 2
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Matanya <mata...@foss.co.il>
Gerrit-Reviewer: Alexandros Kosiaris <akosia...@wikimedia.org>
Gerrit-Reviewer: Andrew Bogott <abog...@wikimedia.org>
Gerrit-Reviewer: Guido.iaquinti <guido.iaqui...@gmail.com>
Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to