summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS.md175
-rw-r--r--MAINTAINERS.toml301
-rw-r--r--Rakefile3
-rw-r--r--appveyor.yml2
-rw-r--r--tasks/maintainers.rb211
5 files changed, 1 insertions, 691 deletions
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
deleted file mode 100644
index bf6d0b6cde..0000000000
--- a/MAINTAINERS.md
+++ /dev/null
@@ -1,175 +0,0 @@
-<!-- This is a generated file. Please do not edit directly -->
-
-# Maintainers
-
-This file lists how the Chef project is maintained. When making changes to the system, this
-file tells you who needs to review your patch - you need a simple majority of maintainers
-for the relevant subsystems to provide a :+1: on your pull request. Additionally, you need
-to not receive a veto from a Lieutenant or the Project Lead.
-
-Check out [How Chef is Maintained](https://github.com/chef/chef-rfc/blob/master/rfc030-maintenance-policy.md#how-the-project-is-maintained) for details on the process, how to become
-a maintainer, lieutenant, or the project lead.
-
-# Project Lead
-
-* [Adam Jacob](https://github.com/adamhjk)
-
-## Components
-
-## Chef Core
-
-Maintainers for the Chef client, Ohai, mixlibs, ChefDK, ChefSpec, Foodcritic, chefstyle, and sundry others.
-
-To mention the team, use @chef/client-core
-
-### Lieutenant
-
-* [Thom May](https://github.com/thommay)
-
-### Maintainers
-
-* [Adam Leff](https://github.com/adamleff)
-* [Bryan McLellan](https://github.com/btm)
-* [Noah Kantrowitz](https://github.com/coderanger)
-* [Seth Thomas](https://github.com/cheeseplus)
-* [Daniel DeLeo](https://github.com/danielsdeleo)
-* [AJ Christensen](https://github.com/fujin)
-* [Phil Dibowitz](https://github.com/jaymzh)
-* [Jay Mundrawala](https://github.com/jaym)
-* [John Keiser](https://github.com/jkeiser)
-* [Jon Cowie](https://github.com/jonlives)
-* [Joshua Timberman](https://github.com/jtimberman)
-* [Lamont Granquist](https://github.com/lamont-granquist)
-* [Ranjib Dey](https://github.com/ranjib)
-* [Steven Murawski](https://github.com/smurawski)
-* [Steven Danna](https://github.com/stevendanna)
-* [Stuart Preston](https://github.com/stuartpreston)
-* [Tim Smith](https://github.com/tas50)
-* [Tom Duffield](https://github.com/tduffield)
-* [Tyler Ball](https://github.com/tyler-ball)
-* [Josh Hudson](https://github.com/itmustbejj)
-
-## Platform Specific Components
-
-The specific components of Chef related to a given platform - including (but not limited to) resources, providers, and the core DSL.
-
-## Enterprise Linux
-
-To mention the team, use @chef/client-enterprise-linux
-
-### Lieutenant
-
-* [Jon Cowie](https://github.com/jonlives)
-
-### Maintainers
-
-* [Phil Dibowitz](https://github.com/jaymzh)
-* [Lamont Granquist](https://github.com/lamont-granquist)
-
-## Ubuntu
-
-To mention the team, use @chef/client-ubuntu
-
-### Lieutenant
-
-* [Ranjib Dey](https://github.com/ranjib)
-
-### Maintainers
-
-* [Lamont Granquist](https://github.com/lamont-granquist)
-* [Tim Smith](https://github.com/tas50)
-* [Thom May](https://github.com/thommay)
-
-## Windows
-
-To mention the team, use @chef/client-windows
-
-### Lieutenant
-
-* [Bryan McLellan](https://github.com/btm)
-
-### Maintainers
-
-* [Jay Mundrawala](https://github.com/jaym)
-* [Kartik Cating-Subramanian](https://github.com/ksubrama)
-* [Steven Murawski](https://github.com/smurawski)
-* [Stuart Preston](https://github.com/stuartpreston)
-* [Salim Alam](https://github.com/chefsalim)
-* [Matt Wrock](https://github.com/mwrock)
-* [Tim Smith](https://github.com/tas50)
-
-## Solaris
-
-To mention the team, use @chef/client-solaris
-
-### Lieutenant
-
-* [Thom May](https://github.com/thommay)
-
-### Maintainers
-
-* [Lamont Granquist](https://github.com/lamont-granquist)
-
-## AIX
-
-To mention the team, use @chef/client-aix
-
-### Lieutenant
-
-* [Lamont Granquist](https://github.com/lamont-granquist)
-
-## macOS
-
-To mention the team, use @chef/client-macos
-
-### Lieutenant
-
-* [Joshua Timberman](https://github.com/jtimberman)
-
-### Maintainers
-
-* [Tyler Ball](https://github.com/tyler-ball)
-* [mikedodge04](https://github.com/mikedodge04)
-* [Tim Smith](https://github.com/tas50)
-
-## Debian
-
-To mention the team, use @chef/client-debian
-
-### Lieutenant
-
-* [Thom May](https://github.com/thommay)
-
-### Maintainers
-
-* [Lamont Granquist](https://github.com/lamont-granquist)
-* [Tim Smith](https://github.com/tas50)
-
-## Fedora
-
-To mention the team, use @chef/client-fedora
-
-### Maintainers
-
-* [Lamont Granquist](https://github.com/lamont-granquist)
-
-## openSUSE and SUSE Linux Enterprise Server
-
-To mention the team, use @chef/client-suse
-
-### Lieutenant
-
-* [Tim Smith](https://github.com/tas50)
-
-### Maintainers
-
-* [Lamont Granquist](https://github.com/lamont-granquist)
-
-## FreeBSD
-
-To mention the team, use @chef/client-freebsd
-
-### Lieutenant
-
-* [Amy Aronsohn](https://github.com/OnlyHaveCans)
-
diff --git a/MAINTAINERS.toml b/MAINTAINERS.toml
deleted file mode 100644
index 8df051152d..0000000000
--- a/MAINTAINERS.toml
+++ /dev/null
@@ -1,301 +0,0 @@
-#
-# This file is structured to be consumed by both humans and computers.
-# To update the generated Markdown, run `bundle exec rake maintainers:generate`
-# To synchronize the maintainers with the github teams, run `bundle exec rake maintainers:synchronize`
-# It is a TOML document containing Markdown
-#
-[Preamble]
- title = "Maintainers"
- text = """
-This file lists how the Chef project is maintained. When making changes to the system, this
-file tells you who needs to review your patch - you need a simple majority of maintainers
-for the relevant subsystems to provide a :+1: on your pull request. Additionally, you need
-to not receive a veto from a Lieutenant or the Project Lead.
-
-Check out [How Chef is Maintained](https://github.com/chef/chef-rfc/blob/master/rfc030-maintenance-policy.md#how-the-project-is-maintained) for details on the process, how to become
-a maintainer, lieutenant, or the project lead.
-"""
-
-[Org]
- [Org.Lead]
- title = "Project Lead"
- person = "adamhjk"
-
- [Org.Components]
- title = "Components"
-
- [Org.Components.Core]
- title = "Chef Core"
- team = "client-core"
- text = """
-Maintainers for the Chef client, Ohai, mixlibs, ChefDK, ChefSpec, Foodcritic, chefstyle, and sundry others.
-"""
-
- lieutenant = "thommay"
-
- maintainers = [
- "adamleff",
- "btm",
- "coderanger",
- "cheeseplus",
- "danielsdeleo",
- "fujin",
- "jaymzh",
- "jaym",
- "jkeiser",
- "jonlives",
- "jtimberman",
- "lamont-granquist",
- "ranjib",
- "smurawski",
- "stevendanna",
- "stuartpreston",
- "tas50",
- "tduffield",
- "tyler-ball",
- "itmustbejj"
- ]
-
- [Org.Components.Subsystems]
- title = "Platform Specific Components"
- text = """
-The specific components of Chef related to a given platform - including (but not limited to) resources, providers, and the core DSL.
-"""
-
- [Org.Components.Subsystems."Enterprise Linux"]
- title = "Enterprise Linux"
- team = "client-enterprise-linux"
-
- lieutenant = "jonlives"
-
- maintainers = [
- "jaymzh",
- "lamont-granquist"
- ]
-
- [Org.Components.Subsystems.Ubuntu]
- title = "Ubuntu"
- team = "client-ubuntu"
-
- lieutenant = "ranjib"
-
- maintainers = [
- "lamont-granquist",
- "tas50",
- "thommay"
- ]
-
- [Org.Components.Subsystems.Windows]
- title = "Windows"
- team = "client-windows"
-
- lieutenant = "btm"
- maintainers = [
- "jaym",
- "ksubrama",
- "smurawski",
- "stuartpreston",
- "chefsalim",
- "mwrock",
- "tas50"
- ]
-
- [Org.Components.Subsystems.Solaris]
- title = "Solaris"
- team = "client-solaris"
-
- lieutenant = "thommay"
-
- maintainers = [
- "lamont-granquist"
- ]
-
- [Org.Components.Subsystems.AIX]
- title = "AIX"
- team = "client-aix"
-
- lieutenant = "lamont-granquist"
-
- [Org.Components.Subsystems."macOS"]
- title = "macOS"
- team = "client-macos"
-
- lieutenant = "jtimberman"
-
- maintainers = [
- "tyler-ball",
- "mikedodge04",
- "tas50"
- ]
-
- [Org.Components.Subsystems.Debian]
- title = "Debian"
- team = "client-debian"
-
- lieutenant = "thommay"
-
- maintainers = [
- "lamont-granquist",
- "tas50"
- ]
-
- [Org.Components.Subsystems.Fedora]
- title = "Fedora"
- team = "client-fedora"
-
- maintainers = [
- "lamont-granquist"
- ]
-
- [Org.Components.Subsystems.SUSE]
- title = "openSUSE and SUSE Linux Enterprise Server"
- team = "client-suse"
-
- lieutenant = "tas50"
-
- maintainers = [
- "lamont-granquist"
- ]
-
- [Org.Components.Subsystems.FreeBSD]
- title = "FreeBSD"
- team = "client-freebsd"
-
- lieutenant = "OnlyHaveCans"
-
-[people]
- [people.adamhjk]
- Name = "Adam Jacob"
- GitHub = "adamhjk"
-
- [people.adamleff]
- Name = "Adam Leff"
- GitHub = "adamleff"
-
- [people.Aevin1387]
- Name = "Cory Stephenson"
- GitHub = "Aevin1387"
-
- [people.AgentMeerkat]
- Name = "Bryant Lippert"
- GitHub = "AgentMeerkat"
-
- [people.btm]
- Name = "Bryan McLellan"
- GitHub = "btm"
-
- [people.danielsdeleo]
- Name = "Daniel DeLeo"
- GitHub = "danielsdeleo"
-
- [people.fujin]
- Name = "AJ Christensen"
- GitHub = "fujin"
-
- [people.jaymzh]
- Name = "Phil Dibowitz"
- GitHub = "jaymzh"
-
- [people.jaym]
- Name = "Jay Mundrawala"
- GitHub = "jaym"
-
- [people.jonlives]
- Name = "Jon Cowie"
- GitHub = "jonlives"
-
- [people.jtimberman]
- Name = "Joshua Timberman"
- GitHub = "jtimberman"
-
- [people.lamont-granquist]
- Name = "Lamont Granquist"
- GitHub = "lamont-granquist"
-
- [people.ranjib]
- Name = "Ranjib Dey"
- GitHub = "ranjib"
-
- [people.smurawski]
- Name = "Steven Murawski"
- GitHub = "smurawski"
-
- [people.stevendanna]
- Name = "Steven Danna"
- GitHub = "stevendanna"
-
- [people.OnlyHaveCans]
- Name = "Amy Aronsohn"
- GitHub = "OnlyHaveCans"
- IRC = "tBunnyMan"
- Twitter = "OnlyHaveCans"
-
- [people.thommay]
- Name = "Thom May"
- GitHub = "thommay"
- IRC = "thom"
- Twitter = "thommay"
-
- [people.tyler-ball]
- Name = "Tyler Ball"
- GitHub = "tyler-ball"
-
- [people.ksubrama]
- Name = "Kartik Cating-Subramanian"
- GitHub = "ksubrama"
-
- [people.coderanger]
- Name = "Noah Kantrowitz"
- GitHub = "coderanger"
-
- [people.chefsalim]
- Name = "Salim Alam"
- GitHub = "chefsalim"
-
- [people.mwrock]
- Name = "Matt Wrock"
- GitHub = "mwrock"
-
- [people.tas50]
- Name = "Tim Smith"
- GitHub = "tas50"
- Twitter = "tas50"
- IRC = "tas50"
-
- [people.jkeiser]
- Name = "John Keiser"
- GitHub = "jkeiser"
-
- [people.stuartpreston]
- Name = "Stuart Preston"
- GitHub = "stuartpreston"
-
- [people.jjasghar]
- Name = "JJ Asghar"
- GitHub = "jjasghar"
- Twitter = "jjasghar"
- IRC = "j^2"
-
- [people.thehar]
- Name = "Harley Alaniz"
- GitHub = "thehar"
-
- [people.tduffield]
- Name = "Tom Duffield"
- GitHub = "tduffield"
-
- [people.mikedodge04]
- Name = "mikedodge04"
- GitHub = "mikedodge04"
- Twitter = "mikedodge04"
- IRC = "mikedodge04"
-
- [people.itmustbejj]
- Name = "Josh Hudson"
- GitHub = "itmustbejj"
- Twitter = "itmustbejj"
- IRC = "itmustbejj"
-
- [people.cheeseplus]
- Name = "Seth Thomas"
- GitHub = "cheeseplus"
diff --git a/Rakefile b/Rakefile
index 375f269714..e0aac6170f 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,7 +1,7 @@
#
# Author:: Adam Jacob (<adam@chef.io>)
# Author:: Daniel DeLeo (<dan@chef.io>)
-# Copyright:: Copyright 2008-2018, Chef Software Inc.
+# Copyright:: Copyright 2008-2019, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -18,7 +18,6 @@
#
require_relative "tasks/rspec"
-require_relative "tasks/maintainers"
require_relative "tasks/dependencies"
require_relative "tasks/announce"
diff --git a/appveyor.yml b/appveyor.yml
index ec74a93871..78a644134b 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -25,8 +25,6 @@ skip_commits:
message: /Bump version to [0-9.]+ by Chef Expeditor/
# if ONLY the files listed below are changed in a commit, skip
files:
- - MAINTAINERS.md
- - MAINTAINERS.toml
- CHANGELOG.md
- RELEASE_NOTES.md
diff --git a/tasks/maintainers.rb b/tasks/maintainers.rb
deleted file mode 100644
index 7465f7ba9e..0000000000
--- a/tasks/maintainers.rb
+++ /dev/null
@@ -1,211 +0,0 @@
-#
-# Copyright:: Copyright 2015-2018, Chef Software Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-require "rake"
-
-SOURCE = File.join(File.dirname(__FILE__), "..", "MAINTAINERS.toml")
-TARGET = File.join(File.dirname(__FILE__), "..", "MAINTAINERS.md")
-
-# The list of repositories that teams should own
-REPOSITORIES = ["chef/chef", "chef/chef-dk", "chef/chef-census", "chef/chef-repo",
- "chef/client-docs", "chef/ffi-yajl", "chef/libyajl2-gem",
- "chef/mixlib-authentication", "chef/mixlib-cli",
- "chef/mixlib-config", "chef/mixlib-install", "chef/mixlib-log",
- "chef/mixlib-shellout", "chef/ohai", "chef/omnibus-chef"].freeze
-
-begin
- require "tomlrb"
- require "octokit"
- require "pp"
-
- namespace :maintainers do
- task default: :generate
-
- desc "Generate MarkDown version of MAINTAINERS file"
- task :generate do
- out = "<!-- This is a generated file. Please do not edit directly -->\n\n"
- out << "# " + source["Preamble"]["title"] + "\n\n"
- out << source["Preamble"]["text"] + "\n"
-
- # The project lead is a special case
- out << "# " + source["Org"]["Lead"]["title"] + "\n\n"
- out << format_person(source["Org"]["Lead"]["person"]) + "\n\n"
-
- out << format_components(source["Org"]["Components"])
- File.open(TARGET, "w") do |fn|
- fn.write out
- end
- end
-
- desc "Synchronize GitHub teams"
- # there's a special @chef/client-maintainers team that's everyone
- # and then there's a team per component
- task :synchronize do
- Octokit.auto_paginate = true
- get_github_teams
- prepare_teams(source["Org"]["Components"].dup)
- sync_teams!
- end
- end
-
- def github
- @github ||= Octokit::Client.new(netrc: true)
- end
-
- def source
- @source ||= Tomlrb.load_file SOURCE
- end
-
- def teams
- @teams ||= { "client-maintainers" => { "title" => "Client Maintainers" } }
- end
-
- def add_members(team, name)
- teams["client-maintainers"]["members"] ||= []
- teams["client-maintainers"]["members"] << name
- teams[team] ||= {}
- teams[team]["members"] ||= []
- teams[team]["members"] << name
- end
-
- def set_team_title(team, title)
- teams[team] ||= {}
- teams[team]["title"] = title
- end
-
- def gh_teams
- @gh_teams ||= {}
- end
-
- # we have to resolve team names to ids. While we're at it, we can get the privacy
- # setting, so we know whether we need to update it
- def get_github_teams
- github.org_teams("chef").each do |team|
- gh_teams[team[:slug]] = { "id" => team[:id], "privacy" => team[:privacy] }
- end
- end
-
- def get_github_team(team)
- github.team_members(gh_teams[team]["id"]).map do |member|
- member[:login]
- end.sort.uniq.map(&:downcase)
- rescue
- []
- end
-
- def create_team(team)
- puts "creating new github team: #{team} with title: #{teams[team]["title"]} "
- t = github.create_team("chef", name: team, description: teams[team]["title"],
- privacy: "closed", repo_names: REPOSITORIES,
- accept: "application/vnd.github.ironman-preview+json")
- gh_teams[team] = { "id" => t[:id], "privacy" => t[:privacy] }
- end
-
- def compare_teams(current, desired)
- # additions are the subtraction of the current state from the desired state
- # deletions are the subtraction of the desired state from the current state
- [desired - current, current - desired]
- end
-
- def prepare_teams(cmp)
- %w{text paths}.each { |k| cmp.delete(k) }
- if cmp.key?("team")
- team = cmp.delete("team")
- add_members(team, cmp.delete("lieutenant")) if cmp.key?("lieutenant")
- add_members(team, cmp.delete("maintainers")) if cmp.key?("maintainers")
- set_team_title(team, cmp.delete("title"))
- else
- %w{maintainers lieutenant title}.each { |k| cmp.delete(k) }
- end
- cmp.each_value { |v| prepare_teams(v) }
- end
-
- def update_team(team, additions, deletions)
- create_team(team) unless gh_teams.key?(team)
- update_team_privacy(team)
- add_team_members(team, additions)
- remove_team_members(team, deletions)
- rescue => e
- puts "failed for #{team}: #{e.message}"
- end
-
- def update_team_privacy(team)
- return if gh_teams[team]["privacy"] == "closed"
- puts "Setting #{team} privacy to closed from #{gh_teams[team]["privacy"]}"
- github.update_team(gh_teams[team]["id"], privacy: "closed",
- accept: "application/vnd.github.ironman-preview+json")
- end
-
- def add_team_members(team, additions)
- additions.each do |member|
- puts "Adding #{member} to #{team}"
- github.add_team_membership(gh_teams[team]["id"], member, role: "member",
- accept: "application/vnd.github.ironman-preview+json")
- end
- end
-
- def remove_team_members(team, deletions)
- deletions.each do |member|
- puts "Removing #{member} from #{team}"
- github.remove_team_membership(gh_teams[team]["id"], member,
- accept: "application/vnd.github.ironman-preview+json")
- end
- end
-
- def sync_teams!
- teams.each do |name, details|
- current = get_github_team(name)
- desired = details["members"].flatten.sort.uniq.map(&:downcase)
- additions, deletions = compare_teams(current, desired)
- update_team(name, additions, deletions)
- end
- end
-
- def get_person(person)
- source["people"][person]
- end
-
- def format_components(cmp)
- out = "## " + cmp.delete("title") + "\n\n"
- out << cmp.delete("text") + "\n" if cmp.key?("text")
- out << "To mention the team, use @chef/#{cmp.delete("team")}\n\n" if cmp.key?("team")
- if cmp.key?("lieutenant")
- out << "### Lieutenant\n\n"
- out << format_person(cmp.delete("lieutenant")) + "\n\n"
- end
- out << format_maintainers(cmp.delete("maintainers")) + "\n" if cmp.key?("maintainers")
- cmp.delete("paths")
- cmp.each_value { |v| out << format_components(v) }
- out
- end
-
- def format_maintainers(people)
- o = "### Maintainers\n\n"
- people.each do |p|
- o << format_person(p) + "\n"
- end
- o
- end
-
- def format_person(person)
- mnt = get_person(person)
- "* [#{mnt["Name"]}](https://github.com/#{mnt["GitHub"]})"
- end
-
-rescue LoadError
- STDERR.puts "\n*** TomlRb not available.\n\n"
-end