From 78192ed3680b3b81e1ac4b3fac9a18ee3f98c197 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 20 Feb 2025 13:00:43 -0500 Subject: [PATCH 1/7] Automate generation of who.md file from list maintained by ASF --- README.md | 23 ++- requirements.txt | 3 + source/generate_who.py | 103 +++++++++++ src/pages/who.md | 394 +++++++++++++++++++++-------------------- 4 files changed, 326 insertions(+), 197 deletions(-) create mode 100644 requirements.txt create mode 100644 source/generate_who.py diff --git a/README.md b/README.md index c1018d5a9f..46f39312e9 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ automation that can publish changes merged to 'main' branch being automatically published to the 'asf-site'. see the procedure below. -## publishing procedure +## Publishing procedure - create a change - test your change according to [the previous chapter](#building-and-publishing) @@ -75,3 +75,24 @@ git push - wait for asf-site to be updated and published to the main site - check again - go to sleep + + +## Updating the who.md file + +Every time new committers or PMC members are invited to CloudStack, the parent list maintained at: https://people.apache.org/committers-by-project.html#cloudstack is updated. This can be used to automate the generation of who.md file which is used at https://cloudstack.staged.apache.org/who/ + +To generate the who.md file, follow the given steps: + +1. Install the necessary dependencies: + +``` +pip install -r requirements.txt +``` + +2. Run the `generate_who.py` script + +``` +python3 source/generate_who.py +``` + +NOTE: Currently, the PMC Chair's name needs to be manually updated in the script. \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000..fdedd0e316 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +requests>=2.25.0 +beautifulsoup4>=4.9.0 +GitPython>=3.1.0 \ No newline at end of file diff --git a/source/generate_who.py b/source/generate_who.py new file mode 100644 index 0000000000..b148fa14ee --- /dev/null +++ b/source/generate_who.py @@ -0,0 +1,103 @@ +import os +import git +import requests +from bs4 import BeautifulSoup +import locale + +# Set locale to handle special characters properly (if necessary) +locale.setlocale(locale.LC_COLLATE, 'en_US.UTF-8') + +def fetch_cloudstack_members(): + url = "https://people.apache.org/committers-by-project.html#cloudstack" + response = requests.get(url) + response.encoding = 'utf-8' + if response.status_code != 200: + print("Failed to fetch the page") + return None, None + + soup = BeautifulSoup(response.text, "html.parser") + + pmc_section = soup.find("h2", {"id": "cloudstack-pmc"}) + committers_section = soup.find("h2", {"id": "cloudstack"}) + + pmc_members = [] + committers = [] + + if pmc_section: + pmc_table = pmc_section.find_next("table") + if pmc_table: + rows = pmc_table.find_all("tr")[1:] # Skip header row + for row in rows: + columns = row.find_all("td") + if len(columns) >= 2: + name = columns[1].text.strip() + svn_id = columns[0].text.strip() + pmc_members.append((name, svn_id)) + + if committers_section: + committers_table = committers_section.find_next("table") + if committers_table: + rows = committers_table.find_all("tr")[1:] # Skip header row + for row in rows: + columns = row.find_all("td") + if len(columns) >= 2: + name = columns[1].text.strip() + svn_id = columns[0].text.strip() + committers.append((name, svn_id)) + + return pmc_members, committers + +def get_repo_path(): + try: + # Find the current working directory + current_dir = os.getcwd() + + # Check if it's a Git repository + repo = git.Repo(current_dir) + + # Get the absolute path of the repository + repo_path = repo.git.rev_parse("--show-toplevel") + return repo_path + except git.exc.InvalidGitRepositoryError: + print("Not a git repository.") + return None + +def generate_markdown(pmc_members, committers): + # Sort the members alphabetically by their names + pmc_members.sort(key=lambda x: locale.strxfrm(x[0].lower())) + committers.sort(key=lambda x: locale.strxfrm(x[0].lower())) + repo_path = get_repo_path() + with open(repo_path + "/src/pages/who.md", "w", encoding="utf-8") as f: + f.write("""--- +title: Apache CloudStack Project Membership +--- + +# Apache CloudStack Project Members + +PMC Information: https://projects.apache.org/committee.html?cloudstack + +Board Minutes: https://whimsy.apache.org/board/minutes/CloudStack.html + +""") + + pmc_chair = "Daniel Augusto Veronezi Salvador (gutoveronezi)" + f.write(f"**PMC Chair**: {pmc_chair}\n\n") + + f.write("The following data is subject to change. The up-to-date information can be found on the Apache Peoples site:\n\n") + + f.write("**PMC members (also in the [Committers](#committers) group)**:\n\n") + for name, id in pmc_members: + f.write(f"- {name} ({id})\n") + + f.write("\n**Committers**:\n\n") + for name, id in committers: + f.write(f"- {name} ({id})\n") + print("who.md file has been generated successfully!") + +def main(): + pmc_members, committers = fetch_cloudstack_members() + if pmc_members and committers: + generate_markdown(pmc_members, committers) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/pages/who.md b/src/pages/who.md index 72c94b17c0..23af0763bc 100644 --- a/src/pages/who.md +++ b/src/pages/who.md @@ -8,208 +8,210 @@ PMC Information: https://projects.apache.org/committee.html?cloudstack Board Minutes: https://whimsy.apache.org/board/minutes/CloudStack.html -**PMC Chair**: Daniel Augusto Veronezi Salvador (gutoveronezi) +**PMC Chair**: Daniel Augusto Veronezi Salvador (gutoveronezi) The following data is subject to change. The up-to-date information can be found on the Apache Peoples site: **PMC members (also in the [Committers](#committers) group)**: -- Abhishek Kumar (shwstppr) -- Alena Prokharchyk (alena1108) -- Alex Huang (ahuang) -- Alex Karasulu (akarasulu) -- Andrija Panic (andrijapanic) -- Animesh (animesh) -- Boris Schrijver (boris) -- Boris Stoyanov (bstoyanov) -- Bruno Demion (milamber) -- Chip Childers (chipchilders) -- Chiradeep Vittal (chiradeep) -- Daan (dahn) -- Daniel Augusto Veronezi Salvador (gutoveronezi) -- David Nalley (ke4qqq) -- Disheng Su (edison) -- Erik Weber (erikw) -- Gabriel Beims Bräscher (gabriel) -- Giles Sirett (giles) -- Go Chiba (gochiba) -- Harikrishna Patnala (harikrishna) -- Hugo Trippaers (hugo) -- Ian Duffy (duffy) -- Ilya Musayev (ilya) -- Ivet Petrova (ivet) -- Joe Brockmeier (jzb) -- John Burwell (jburwell) -- John Kinsella (jlk) -- Karen Vuong (karenv) -- Kevin Kluge (kluge) -- Marcus Sorensen (mlsorensen) -- Mark R. Hinkle (mrhinkle) -- Matt Richard Hogstrom (hogstrom) -- Mike Tutkowski (mtutkowski) -- Mohammad Nour El-Din (mnour) -- Nathan Johnson (nathanejohnson) -- Nicolás Vázquez (nvazquez) -- Nux (nux) -- Olivier Lamy (olamy) -- Paul Angus (paul_a) -- Pierre-Luc Dion (pdion891) -- Prasanna (tsp) -- Rafael Weingärtner (rafael) -- Rajani Karuturi (rajani) -- Remi Bergsma (remi) -- Rene Moser (resmo) -- Rohit Yadav (rohit) -- Sebastien Goasguen (sebgoa) -- Simon Weller (sweller) -- Suresh Anaparti (sureshanaparti) -- Sven Vogel (svogel) -- Syed Ahmed (syed) -- Wei Zhou (weizhou) -- Wido den Hollander (widodh) -- Wilder Rodrigues (ekho) -- Will Stevens (swill) -- William Chan (willchan) +- Abhishek Kumar (shwstppr) +- Alena Prokharchyk (alena1108) +- Alexandre Mattioli (alexandremattioli) +- Alex Huang (ahuang) +- Alex Karasulu (akarasulu) +- Andrija Panic (andrijapanic) +- Animesh (animesh) +- Boris Schrijver (boris) +- Boris Stoyanov (bstoyanov) +- Bruno Demion (milamber) +- Chip Childers (chipchilders) +- Chiradeep Vittal (chiradeep) +- Daan (dahn) +- Daniel Augusto Veronezi Salvador (gutoveronezi) +- David Nalley (ke4qqq) +- Disheng Su (edison) +- Erik Weber (erikw) +- Gabriel Beims Bräscher (gabriel) +- Giles Sirett (giles) +- Go Chiba (gochiba) +- Harikrishna Patnala (harikrishna) +- Hugo Trippaers (hugo) +- Ian Duffy (duffy) +- Ilya Musayev (ilya) +- Ivet Petrova (ivet) +- Joe Brockmeier (jzb) +- John Burwell (jburwell) +- John Kinsella (jlk) +- Karen Vuong (karenv) +- Kevin Kluge (kluge) +- Marcus Sorensen (mlsorensen) +- Mark R. Hinkle (mrhinkle) +- Matt Richard Hogstrom (hogstrom) +- Mike Tutkowski (mtutkowski) +- Mohammad Nour El-Din (mnour) +- Nathan Johnson (nathanejohnson) +- Nicolás Vázquez (nvazquez) +- Nux (nux) +- Olivier Lamy (olamy) +- Paul Angus (paul_a) +- Pierre-Luc Dion (pdion891) +- Prasanna (tsp) +- Rafael Weingärtner (rafael) +- Rajani Karuturi (rajani) +- Remi Bergsma (remi) +- Rene Moser (resmo) +- Rohit Yadav (rohit) +- Sebastien Goasguen (sebgoa) +- Simon Weller (sweller) +- Slavka Peleva (slavkap) +- Suresh Anaparti (sureshanaparti) +- Sven Vogel (svogel) +- Syed Ahmed (syed) +- Wei Zhou (weizhou) +- Wido den Hollander (widodh) +- Wilder Rodrigues (ekho) +- William Chan (willchan) +- Will Stevens (swill) **Committers**: -- Abhinandan Prateek (aprateek) -- Abhishek Kumar (shwstppr) -- Ahmad Emneina (ahmad) -- Alena Prokharchyk (alena1108) -- Alex Huang (ahuang) -- Alex Karasulu (akarasulu) -- Alexandre Mattioli (alexandremattioli) -- Amogh Vasekar (amoghvk) -- Andrija Panic (andrijapanic) -- Anh Tu Nguyen (tuna) -- Animesh (animesh) -- Anthony Xu (anthonyxu) -- Boris Schrijver (boris) -- Boris Stoyanov (bstoyanov) -- Brett Porter (brett) -- Brian Federle (bfederle) -- Bruno Demion (milamber) -- Bryan Lima (bryan) -- Chip Childers (chipchilders) -- Chiradeep Vittal (chiradeep) -- Chris Suich (csuich2) -- Clayton Weise (claytonweise) -- Daan (dahn) -- Dag Sonstebo (dsonstebo) -- Daniel Augusto Veronezi Salvador (gutoveronezi) -- Darren Shepherd (darren) -- Dave Cahill (dcahill) -- David Jumani (davidjumani) -- David Nalley (ke4qqq) -- Demetrius Tsitrelis (demetriust) -- Dennis Konrad (dkonrad) -- Devdeep Singh (devdeep) -- Disheng Su (edison) -- Erik Weber (erikw) -- Fabricio Duarte Junior (fabricio) -- Frank Maximus (fmaximus) -- Funs Kessen (snuf) -- Gabriel Beims Bräscher (gabriel) -- Gaurav Nandkumar Aradhye (gaurav) -- Gavin Lee (gavinlee) -- Geoff Higginbottom (higster) -- Giles Sirett (giles) -- Girish Prabhakar Shilamkar (girish) -- Go Chiba (gochiba) -- Harikrishna Patnala (harikrishna) -- Hiroaki Kawai (kawai) -- Hugo Trippaers (hugo) -- Ian Duffy (duffy) -- Ilya Musayev (ilya) -- Isaac Chiang (isaacchiang) -- Ivet Petrova (ivet) -- Jason Bausewein (jbausewein) -- Jayapal (jayapal) -- Jessica Tomechak (jtomechak) -- Jessica Wang (jessicawang) -- Jim Jagielski (jim) -- Jithin Raju (rajujith) -- Joe Brockmeier (jzb) -- John Bampton (johnbam) -- John Burwell (jburwell) -- John Kinsella (jlk) -- João Jandre Paraquetti (joao) -- Karen Vuong (karenv) -- Kelcey Damage (kdamage) -- Kelven Yang (kelveny) -- Kevin Kluge (kluge) -- Kiran Chavala (kiranchavala) -- Kirk Kosinski (kirk) -- Kishan (kishan) -- Koushik Das (koushik) -- Laszlo Hornyak (kocka) -- Likitha Shetty (likithas) -- Marc-Aurèle Brothier (marcaurele) -- Marco Sinhoreli (msinhore) -- Marcus Sorensen (mlsorensen) -- Mark R. Hinkle (mrhinkle) -- Matt Richard Hogstrom (hogstrom) -- Mice Xia (mice) -- Mike Tutkowski (mtutkowski) -- Min Chen (mchen) -- Mohammad Nour El-Din (mnour) -- Murali Mohan Reddy (muralireddy) -- Nathan Johnson (nathanejohnson) -- Nguyen Mai Hoang (hoangnm) -- Nicolás Vázquez (nvazquez) -- Nitin (nitin) -- Noa Resare (noa) -- Nux (nux) -- Olga Smola (olgasmola) -- Olivier Lamy (olamy) -- Paul Angus (paul_a) -- Pearl Dsilva (pearl11594) -- Phong Nguyen (pnguyen) -- Pierre-Luc Dion (pdion891) -- Pierre-Yves Ritschard (pyr) -- Prachi Damle (prachidamle) -- Pranav Saxena (pranavs) -- Prasanna (tsp) -- Radhika Nair (radhika) -- Rafael Weingärtner (rafael) -- Rajani Karuturi (rajani) -- Rajesh Battala (rajeshbattala) -- Rakesh Venkatesh (rakeshv) -- Remi Bergsma (remi) -- Rene Moser (resmo) -- Rene Peinthor (rp9) -- Rohit Yadav (rohit) -- Sailaja Mada (sailajamada) -- Saksham Srivastava (saksham) -- Sam Robertson (slriv) -- Sangeetha Hariharan (sangeethah) -- Sanjay Tripathi (sanjaytripathi) -- Sanjeev Neelarapu (sanjeev) -- Santhosh (santhoshedukulla) -- Sateesh Chodapuneedi (sateesh) -- Sebastien Goasguen (sebgoa) -- Sergey Levitskiy (serg38) -- Sheng Yang (yasker) -- Simon Weller (sweller) -- Sina Kashipazha (soreana) -- Slavka Peleva (slavkap) -- Sonny Heng Chhen (schhen) -- Sowmya Krishnan (sowmya) -- Srikanteswararao Talluri (talluri) -- Sudhap (sudhap) -- Suresh Anaparti (sureshanaparti) -- Sven Vogel (svogel) -- Syed Ahmed (syed) -- Toshiaki Hatano (haeena) -- Venkata Swamy (swamy) -- Vijayendra Bhamidipati (vijayendrabvs) +- Abhinandan Prateek (aprateek) +- Abhishek Kumar (shwstppr) +- Ahmad Emneina (ahmad) +- Alena Prokharchyk (alena1108) +- Alexandre Mattioli (alexandremattioli) +- Alex Huang (ahuang) +- Alex Karasulu (akarasulu) +- Amogh Vasekar (amoghvk) +- Andrija Panic (andrijapanic) +- Anh Tu Nguyen (tuna) +- Animesh (animesh) +- Anthony Xu (anthonyxu) +- Boris Schrijver (boris) +- Boris Stoyanov (bstoyanov) +- Brett Porter (brett) +- Brian Federle (bfederle) +- Bruno Demion (milamber) +- Bryan Lima (bryan) +- Chip Childers (chipchilders) +- Chiradeep Vittal (chiradeep) +- Chris Suich (csuich2) +- Clayton Weise (claytonweise) +- Daan (dahn) +- Dag Sonstebo (dsonstebo) +- Daniel Augusto Veronezi Salvador (gutoveronezi) +- Darren Shepherd (darren) +- Dave Cahill (dcahill) +- David Jumani (davidjumani) +- David Nalley (ke4qqq) +- Demetrius Tsitrelis (demetriust) +- Dennis Konrad (dkonrad) +- Devdeep Singh (devdeep) +- Disheng Su (edison) +- Erik Weber (erikw) +- Fabricio Duarte Junior (fabricio) +- Frank Maximus (fmaximus) +- Funs Kessen (snuf) +- Gabriel Beims Bräscher (gabriel) +- Gaurav Nandkumar Aradhye (gaurav) +- Gavin Lee (gavinlee) +- Geoff Higginbottom (higster) +- Giles Sirett (giles) +- Girish Prabhakar Shilamkar (girish) +- Go Chiba (gochiba) +- Harikrishna Patnala (harikrishna) +- Hiroaki Kawai (kawai) +- Hugo Trippaers (hugo) +- Ian Duffy (duffy) +- Ilya Musayev (ilya) +- Isaac Chiang (isaacchiang) +- Ivet Petrova (ivet) +- Jason Bausewein (jbausewein) +- Jayapal (jayapal) +- Jessica Tomechak (jtomechak) +- Jessica Wang (jessicawang) +- Jim Jagielski (jim) +- Jithin Raju (rajujith) +- João Jandre Paraquetti (joao) +- Joe Brockmeier (jzb) +- John Bampton (johnbam) +- John Burwell (jburwell) +- John Kinsella (jlk) +- Karen Vuong (karenv) +- Kelcey Damage (kdamage) +- Kelven Yang (kelveny) +- Kevin Kluge (kluge) +- Kiran Chavala (kiranchavala) +- Kirk Kosinski (kirk) +- Kishan (kishan) +- Koushik Das (koushik) +- Laszlo Hornyak (kocka) +- Likitha Shetty (likithas) +- Marc-Aurèle Brothier (marcaurele) +- Marco Sinhoreli (msinhore) +- Marcus Sorensen (mlsorensen) +- Mark R. Hinkle (mrhinkle) +- Matt Richard Hogstrom (hogstrom) +- Mice Xia (mice) +- Mike Tutkowski (mtutkowski) +- Min Chen (mchen) +- Mohammad Nour El-Din (mnour) +- Murali Mohan Reddy (muralireddy) +- Nathan Johnson (nathanejohnson) +- Nguyen Mai Hoang (hoangnm) +- Nicolás Vázquez (nvazquez) +- Nitin (nitin) +- Noa Resare (noa) +- Nux (nux) +- Olga Smola (olgasmola) +- Olivier Lamy (olamy) +- Paul Angus (paul_a) +- Pearl Dsilva (pearl11594) +- Phong Nguyen (pnguyen) +- Pierre-Luc Dion (pdion891) +- Pierre-Yves Ritschard (pyr) +- Prachi Damle (prachidamle) +- Pranav Saxena (pranavs) +- Prasanna (tsp) +- Radhika Nair (radhika) +- Rafael Weingärtner (rafael) +- Rajani Karuturi (rajani) +- Rajesh Battala (rajeshbattala) +- Rakesh Venkatesh (rakeshv) +- Remi Bergsma (remi) +- Rene Moser (resmo) +- Rene Peinthor (rp9) +- Rohit Yadav (rohit) +- Sailaja Mada (sailajamada) +- Saksham Srivastava (saksham) +- Sam Robertson (slriv) +- Sangeetha Hariharan (sangeethah) +- Sanjay Tripathi (sanjaytripathi) +- Sanjeev Neelarapu (sanjeev) +- Santhosh (santhoshedukulla) +- Sateesh Chodapuneedi (sateesh) +- Sebastien Goasguen (sebgoa) +- Sergey Levitskiy (serg38) +- Sheng Yang (yasker) +- Simon Weller (sweller) +- Sina Kashipazha (soreana) +- Slavka Peleva (slavkap) +- Sonny Heng Chhen (schhen) +- Sowmya Krishnan (sowmya) +- Srikanteswararao Talluri (talluri) +- Sudhap (sudhap) +- Suresh Anaparti (sureshanaparti) +- Sven Vogel (svogel) +- Syed Ahmed (syed) +- Toshiaki Hatano (haeena) +- Venkata Swamy (swamy) +- Vijayendra Bhamidipati (vijayendrabvs) - Vishesh Jindal (vishesh) -- Vladimir Petrov (vladi) -- Wei Zhou (weizhou) -- Wido den Hollander (widodh) -- Wilder Rodrigues (ekho) -- Will Stevens (swill) -- William Chan (willchan) -- Xin Zhang (frankzhang) -- Yoshikazu Nojima (ynojima) +- Vladimir Petrov (vladi) +- Wei Zhou (weizhou) +- Wido den Hollander (widodh) +- Wilder Rodrigues (ekho) +- William Chan (willchan) +- Will Stevens (swill) +- Xin Zhang (frankzhang) +- Yoshikazu Nojima (ynojima) From 22b6ee34b954b8ad3ef9232ebdeea991bac9351d Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 20 Feb 2025 13:04:08 -0500 Subject: [PATCH 2/7] fix lint failure --- source/generate_who.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/generate_who.py b/source/generate_who.py index b148fa14ee..6bf18b6766 100644 --- a/source/generate_who.py +++ b/source/generate_who.py @@ -14,15 +14,15 @@ def fetch_cloudstack_members(): if response.status_code != 200: print("Failed to fetch the page") return None, None - + soup = BeautifulSoup(response.text, "html.parser") - + pmc_section = soup.find("h2", {"id": "cloudstack-pmc"}) committers_section = soup.find("h2", {"id": "cloudstack"}) - + pmc_members = [] committers = [] - + if pmc_section: pmc_table = pmc_section.find_next("table") if pmc_table: @@ -33,7 +33,7 @@ def fetch_cloudstack_members(): name = columns[1].text.strip() svn_id = columns[0].text.strip() pmc_members.append((name, svn_id)) - + if committers_section: committers_table = committers_section.find_next("table") if committers_table: @@ -51,10 +51,10 @@ def get_repo_path(): try: # Find the current working directory current_dir = os.getcwd() - + # Check if it's a Git repository repo = git.Repo(current_dir) - + # Get the absolute path of the repository repo_path = repo.git.rev_parse("--show-toplevel") return repo_path @@ -79,16 +79,16 @@ def generate_markdown(pmc_members, committers): Board Minutes: https://whimsy.apache.org/board/minutes/CloudStack.html """) - + pmc_chair = "Daniel Augusto Veronezi Salvador (gutoveronezi)" f.write(f"**PMC Chair**: {pmc_chair}\n\n") - + f.write("The following data is subject to change. The up-to-date information can be found on the Apache Peoples site:\n\n") - + f.write("**PMC members (also in the [Committers](#committers) group)**:\n\n") for name, id in pmc_members: f.write(f"- {name} ({id})\n") - + f.write("\n**Committers**:\n\n") for name, id in committers: f.write(f"- {name} ({id})\n") @@ -100,4 +100,4 @@ def main(): generate_markdown(pmc_members, committers) if __name__ == "__main__": - main() \ No newline at end of file + main() From 9b5b5ca492ef1ba14abd7fb831ac242df13c3463 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Fri, 21 Feb 2025 11:15:07 -0500 Subject: [PATCH 3/7] add newline --- README.md | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 46f39312e9..8858e6a1d2 100644 --- a/README.md +++ b/README.md @@ -95,4 +95,4 @@ pip install -r requirements.txt python3 source/generate_who.py ``` -NOTE: Currently, the PMC Chair's name needs to be manually updated in the script. \ No newline at end of file +NOTE: Currently, the PMC Chair's name needs to be manually updated in the script. diff --git a/requirements.txt b/requirements.txt index fdedd0e316..559371ed89 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ requests>=2.25.0 beautifulsoup4>=4.9.0 -GitPython>=3.1.0 \ No newline at end of file +GitPython>=3.1.0 From 9e1742faa8d5b0c88fdfc084868593393dd87e48 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 16 Jul 2025 15:11:44 -0400 Subject: [PATCH 4/7] Update list generated by script --- src/pages/who.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pages/who.md b/src/pages/who.md index 011921917f..c24983ff8a 100644 --- a/src/pages/who.md +++ b/src/pages/who.md @@ -8,7 +8,7 @@ PMC Information: https://projects.apache.org/committee.html?cloudstack Board Minutes: https://whimsy.apache.org/board/minutes/CloudStack.html -**PMC Chair**: Nicolás Vázquez (nvazquez) +**PMC Chair**: Daniel Augusto Veronezi Salvador (gutoveronezi) The following data is subject to change. The up-to-date information can be found on the Apache Peoples site: @@ -39,6 +39,7 @@ The following data is subject to change. The up-to-date information can be found - Ian Duffy (duffy) - Ilya Musayev (ilya) - Ivet Petrova (ivet) +- João Jandre Paraquetti (joao) - Joe Brockmeier (jzb) - John Burwell (jburwell) - John Kinsella (jlk) @@ -54,6 +55,7 @@ The following data is subject to change. The up-to-date information can be found - Nux (nux) - Olivier Lamy (olamy) - Paul Angus (paul_a) +- Pearl Dsilva (pearl11594) - Pierre-Luc Dion (pdion891) - Prasanna (tsp) - Rafael Weingärtner (rafael) @@ -87,6 +89,7 @@ The following data is subject to change. The up-to-date information can be found - Anh Tu Nguyen (tuna) - Animesh (animesh) - Anthony Xu (anthonyxu) +- Bernardo De Marco Gonçalves (bernardodemarco) - Boris Schrijver (boris) - Boris Stoyanov (bstoyanov) - Brett Porter (brett) @@ -97,6 +100,7 @@ The following data is subject to change. The up-to-date information can be found - Chiradeep Vittal (chiradeep) - Chris Suich (csuich2) - Clayton Weise (claytonweise) +- CodeBleu (codebleu) - Daan (dahn) - Dag Sonstebo (dsonstebo) - Daniel Augusto Veronezi Salvador (gutoveronezi) @@ -202,6 +206,7 @@ The following data is subject to change. The up-to-date information can be found - Sudhap (sudhap) - Suresh Anaparti (sureshanaparti) - Sven Vogel (svogel) +- Swen Brueseke (sbrueseke) - Syed Ahmed (syed) - Toshiaki Hatano (haeena) - Venkata Swamy (swamy) From 2c32485ab9e2ad296946bd946fcd30edb4d89e3b Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Fri, 1 Aug 2025 09:11:15 -0400 Subject: [PATCH 5/7] add license --- source/generate_who.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/source/generate_who.py b/source/generate_who.py index 6bf18b6766..48eee62c5b 100644 --- a/source/generate_who.py +++ b/source/generate_who.py @@ -1,3 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + import os import git import requests From 8b17a27e73842970b726405db428165f840347ac Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Fri, 1 Aug 2025 15:34:03 +0200 Subject: [PATCH 6/7] new VP --- source/generate_who.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/generate_who.py b/source/generate_who.py index 48eee62c5b..472a9d9df8 100644 --- a/source/generate_who.py +++ b/source/generate_who.py @@ -97,7 +97,7 @@ def generate_markdown(pmc_members, committers): """) - pmc_chair = "Daniel Augusto Veronezi Salvador (gutoveronezi)" + pmc_chair = "Nicolás Vázquez (nvazquez)" f.write(f"**PMC Chair**: {pmc_chair}\n\n") f.write("The following data is subject to change. The up-to-date information can be found on the Apache Peoples site:\n\n") From eaeedd851cdd7a5a343146977371de210574bc50 Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Fri, 1 Aug 2025 15:34:08 +0200 Subject: [PATCH 7/7] update who.md --- src/pages/who.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pages/who.md b/src/pages/who.md index c24983ff8a..7c169edc27 100644 --- a/src/pages/who.md +++ b/src/pages/who.md @@ -8,7 +8,7 @@ PMC Information: https://projects.apache.org/committee.html?cloudstack Board Minutes: https://whimsy.apache.org/board/minutes/CloudStack.html -**PMC Chair**: Daniel Augusto Veronezi Salvador (gutoveronezi) +**PMC Chair**: Nicolás Vázquez (nvazquez) The following data is subject to change. The up-to-date information can be found on the Apache Peoples site: @@ -16,9 +16,9 @@ The following data is subject to change. The up-to-date information can be found - Abhishek Kumar (shwstppr) - Alena Prokharchyk (alena1108) -- Alexandre Mattioli (alexandremattioli) - Alex Huang (ahuang) - Alex Karasulu (akarasulu) +- Alexandre Mattioli (alexandremattioli) - Andrija Panic (andrijapanic) - Animesh (animesh) - Boris Schrijver (boris) @@ -72,8 +72,8 @@ The following data is subject to change. The up-to-date information can be found - Wei Zhou (weizhou) - Wido den Hollander (widodh) - Wilder Rodrigues (ekho) -- William Chan (willchan) - Will Stevens (swill) +- William Chan (willchan) **Committers**: @@ -81,9 +81,9 @@ The following data is subject to change. The up-to-date information can be found - Abhishek Kumar (shwstppr) - Ahmad Emneina (ahmad) - Alena Prokharchyk (alena1108) -- Alexandre Mattioli (alexandremattioli) - Alex Huang (ahuang) - Alex Karasulu (akarasulu) +- Alexandre Mattioli (alexandremattioli) - Amogh Vasekar (amoghvk) - Andrija Panic (andrijapanic) - Anh Tu Nguyen (tuna) @@ -216,7 +216,7 @@ The following data is subject to change. The up-to-date information can be found - Wei Zhou (weizhou) - Wido den Hollander (widodh) - Wilder Rodrigues (ekho) -- William Chan (willchan) - Will Stevens (swill) +- William Chan (willchan) - Xin Zhang (frankzhang) - Yoshikazu Nojima (ynojima)