summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathen Harvey <nharvey@chef.io>2016-01-21 12:43:27 -0500
committerNathen Harvey <nharvey@chef.io>2016-01-21 12:43:27 -0500
commitd85f059458b9c039d01e4cc4d5072f52af97f3b2 (patch)
tree10ccf7870be734cfe13f7eda35cd81f3ddf2c0c5
parent1e746d158f00859933bf3cd0e2bedc0768c1e727 (diff)
downloadchef-d85f059458b9c039d01e4cc4d5072f52af97f3b2.tar.gz
Add CBGB to the repository
Includes rake task to generate markdown from toml
-rw-r--r--CBGB.md40
-rw-r--r--CBGB.toml96
-rw-r--r--Rakefile1
-rw-r--r--tasks/cbgb.rb78
4 files changed, 215 insertions, 0 deletions
diff --git a/CBGB.md b/CBGB.md
new file mode 100644
index 0000000000..b8ab2e80e7
--- /dev/null
+++ b/CBGB.md
@@ -0,0 +1,40 @@
+<!-- This is a generated file. Please do not edit directly -->
+<!-- Modify CBGB.toml file and run `rake cbgb:generate` to regenerate -->
+
+# Chef Board of Governance (CBGB)
+
+ Chef was designed from the outset to have a very open structure, including open design, open contribution, and consistent use of tools across the project. Given the large numbers of contributors, users, and companies with a stake in the future of the project, Chef leadership has established an advisory board, as part of its long term commitment to open governance.
+
+ The Chef Board of Governance (CBGB) shall advise the Leadership on matters related to supporting the long-term governance, structure, and roadmap of the Project.
+
+More information can be found in the [Chef Board of Governance RFC](Chef Board of Governance).
+
+# Board of Governers
+
+## Project Lead
+
+* [Adam Jacob](https://github.com/adamhjk)
+
+### Users/Contributors (4)
+
+* [Ranjib Dey](https://github.com/ranjib)
+* [Doug Ireton](https://github.com/dougireton)
+* [Noah Kantrowitz](https://github.com/coderanger)
+* [Charity Majors](https://github.com/charity)
+
+
+### Corporate Contributors (4)
+
+* Etsy - Katherine Daniels
+* Facebook - Phil Dibowitz
+* Nordstrom - Mark Ayers
+* PagerDuty - Evan Gilman
+
+
+### Lieutenants (3)
+
+* [Jon Cowie](https://github.com/jonlives)
+* [Joshua Timberman](https://github.com/jtimberman)
+* [Seth Vargo](https://github.com/sethvargo)
+
+
diff --git a/CBGB.toml b/CBGB.toml
new file mode 100644
index 0000000000..07e9c9a25a
--- /dev/null
+++ b/CBGB.toml
@@ -0,0 +1,96 @@
+#
+# This file is structured to be consumed by both humans and computers.
+# It is a TOML document containing Markdown
+#
+[Preamble]
+ title = "Chef Board of Governance (CBGB)"
+ text = """
+ Chef was designed from the outset to have a very open structure, including open design, open contribution, and consistent use of tools across the project. Given the large numbers of contributors, users, and companies with a stake in the future of the project, Chef leadership has established an advisory board, as part of its long term commitment to open governance.
+
+ The Chef Board of Governance (CBGB) shall advise the Leadership on matters related to supporting the long-term governance, structure, and roadmap of the Project.
+
+More information can be found in the [Chef Board of Governance RFC](Chef Board of Governance).
+"""
+
+[Org]
+ [Org.Lead]
+ title = "Project Lead"
+ person = "adamhjk"
+
+ [Org.Contributors]
+ title = "Users/Contributors (4)"
+ governers = [
+ "ranjibdey",
+ "dougireton",
+ "coderanger",
+ "charitymajors"
+ ]
+
+ [Org.Corporate-Contributors]
+ title = "Corporate Contributors (4)"
+ governers = [
+ "etsy",
+ "facebook",
+ "nordstrom",
+ "pagerduty"
+ ]
+
+ [Org.Lieutenants]
+ title = "Lieutenants (3)"
+ governers = [
+ "jonlives",
+ "jtimberman",
+ "sethvargo"
+ ]
+
+[people]
+ [people.adamhjk]
+ Name = "Adam Jacob"
+ GitHub = "adamhjk"
+ IRC = "holoway"
+
+ [people.jonlives]
+ Name = "Jon Cowie"
+ GitHub = "jonlives"
+ IRC = "jonlives"
+
+ [people.coderanger]
+ Name = "Noah Kantrowitz"
+ GitHub = "coderanger"
+
+ [people.jtimberman]
+ Name = "Joshua Timberman"
+ GitHub = "jtimberman"
+
+ [people.ranjibdey]
+ Name = "Ranjib Dey"
+ GitHub = "ranjib"
+
+ [people.sethvargo]
+ Name = "Seth Vargo"
+ GitHub = "sethvargo"
+
+ [people.dougireton]
+ Name = "Doug Ireton"
+ GitHub = "dougireton"
+
+ [people.charitymajors]
+ Name = "Charity Majors"
+ GitHub = "charity"
+
+[corporations]
+ [corporations.etsy]
+ Name = "Etsy"
+ Person = "Katherine Daniels"
+
+ [corporations.facebook]
+ Name = "Facebook"
+ Person = "Phil Dibowitz"
+
+ [corporations.nordstrom]
+ Name = "Nordstrom"
+ Person = "Mark Ayers"
+
+ [corporations.pagerduty]
+ Name = "PagerDuty"
+ Person = "Evan Gilman"
diff --git a/Rakefile b/Rakefile
index b80dd9a846..6193871960 100644
--- a/Rakefile
+++ b/Rakefile
@@ -25,6 +25,7 @@ require "rdoc/task"
require_relative "tasks/rspec"
require_relative "tasks/external_tests"
require_relative "tasks/maintainers"
+require_relative "tasks/cbgb"
ChefConfig::PackageTask.new(File.expand_path("..", __FILE__), "Chef") do |package|
package.component_paths = ["chef-config"]
diff --git a/tasks/cbgb.rb b/tasks/cbgb.rb
new file mode 100644
index 0000000000..67457b6bd0
--- /dev/null
+++ b/tasks/cbgb.rb
@@ -0,0 +1,78 @@
+#
+# Author:: Thom May (tmay@chef.io)
+# Author:: Nathen Harvey (nharvey@chef.io)
+# Copyright:: Copyright (c) 2015-2016, 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'
+require 'tomlrb'
+
+CBGB_SOURCE = File.join(File.dirname(__FILE__), "..", "CBGB.toml")
+CBGB_TARGET = File.join(File.dirname(__FILE__), "..", "CBGB.md")
+
+task :default => :generate
+
+namespace :cbgb do
+ desc "Generate MarkDown version of CBGB file"
+ task :generate do
+ cbgb = Tomlrb.load_file CBGB_SOURCE
+ out = "<!-- This is a generated file. Please do not edit directly -->\n"
+ out << "<!-- Modify CBGB.toml file and run `rake cbgb:generate` to regenerate -->\n\n"
+ out << "# " + cbgb["Preamble"]["title"] + "\n\n"
+ out << cbgb["Preamble"]["text"] + "\n"
+ out << "# Board of Governers\n\n"
+ out << "## " + cbgb["Org"]["Lead"]["title"] + "\n\n"
+ out << person(cbgb["people"], cbgb["Org"]["Lead"]["person"]) + "\n\n"
+ out << "### " + cbgb["Org"]["Contributors"]["title"] + "\n\n"
+ out << cbgb(cbgb["people"], cbgb["Org"]["Contributors"]["governers"]) + "\n\n"
+ out << "### " + cbgb["Org"]["Corporate-Contributors"]["title"] + "\n\n"
+ out << cbgb(cbgb["corporations"], cbgb["Org"]["Corporate-Contributors"]["governers"]) + "\n\n"
+ out << "### " + cbgb["Org"]["Lieutenants"]["title"] + "\n\n"
+ out << cbgb(cbgb["people"], cbgb["Org"]["Lieutenants"]["governers"]) + "\n\n"
+ File.open(CBGB_TARGET, "w") { |fn|
+ fn.write out
+ }
+ end
+end
+
+def components(list, cmp)
+ out = ""
+ cmp.each do |k,v|
+ out << "\n#### #{v['title'].gsub('#','\\#')}\n"
+ out << cbgb(list, v['cbgb'])
+ end
+ out
+end
+
+def cbgb(list, people)
+ o = ""
+ people.each do |p|
+ o << person(list, p) + "\n"
+ end
+ o
+end
+
+def person(list, person)
+ if list[person].has_key?("GitHub")
+ out = "* [#{list[person]["Name"]}](https://github.com/#{list[person]["GitHub"]})"
+ else
+ out = "* #{list[person]["Name"]}"
+ end
+ if list[person].has_key?("Person")
+ out << " - #{list[person]["Person"]}"
+ end
+ out
+end