diff --git a/asset/governance-icons/discord.svg b/asset/governance-icons/discord.svg deleted file mode 100644 index 38837b79d4..0000000000 --- a/asset/governance-icons/discord.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/asset/governance-icons/email.svg b/asset/governance-icons/email.svg deleted file mode 100644 index 450036d264..0000000000 --- a/asset/governance-icons/email.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/asset/governance-icons/github.svg b/asset/governance-icons/github.svg deleted file mode 100644 index e5282224b5..0000000000 --- a/asset/governance-icons/github.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - diff --git a/asset/governance-icons/slack.svg b/asset/governance-icons/slack.svg deleted file mode 100644 index 5ad4c8fcce..0000000000 --- a/asset/governance-icons/slack.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/data/governance.yml b/data/governance.yml index 2f343d962a..4bdc5f1395 100644 --- a/data/governance.yml +++ b/data/governance.yml @@ -4,15 +4,15 @@ teams: description: The OCaml Compiler team, responsible for the development and maintenance of the language, the standard library and the compiler tools. contacts: - - name: Email - link: https://inbox.ocaml.org/caml-list/ - icon: /governance-icons/email.svg + - name: Mailing List + link: https://sympa.inria.fr/sympa/subscribe/caml-list + kind: email - name: Discord link: https://discord.com/channels/436568060288172042/904141760052228116 - icon: /governance-icons/discord.svg + kind: discord - name: GitHub link: https://github.com/ocaml/ocaml/issues - icon: /governance-icons/github.svg + kind: github members: - name: Damien Doligez github: damiendoligez @@ -88,9 +88,9 @@ teams: description: The Platform team is responsible for the development and maintenance of the OCaml Platform, the official OCaml developer toolchain. contacts: - - name: Email - link: platform@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: https://lists.ocaml.org/listinfo/platform + kind: email members: - name: Anil Madhavapeddy github: avsm @@ -100,9 +100,12 @@ teams: name: Dune description: The Dune development team contacts: - - name: Email - link: dune-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:dune-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml/dune + kind: github members: - name: Rudi Grinberg github: rgrinberg @@ -141,9 +144,12 @@ teams: name: Opam description: The Opam development team contacts: - - name: Email - link: opam-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: https://lists.ocaml.org/listinfo/opam-devel + kind: email + - name: GitHub + link: https://github.com/ocaml/opam + kind: github members: - name: Louis Gesbert github: AltGr @@ -161,9 +167,12 @@ teams: name: Ocaml-lsp description: The Ocaml-lsp development team contacts: - - name: Email - link: ocaml-lsp-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:ocaml-lsp-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml/ocaml-lsp + kind: github members: - name: Rudi Grinberg github: rgrinberg @@ -181,9 +190,12 @@ teams: name: Merlin description: The merlin development team contacts: - - name: Email - link: merlin-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: https://lists.ocaml.org/listinfo/merlin + kind: email + - name: GitHub + link: https://github.com/ocaml/merlin + kind: github members: - name: Ulysse GĂ©rard github: voodoos @@ -201,9 +213,12 @@ teams: name: Odoc description: The odoc development team contacts: - - name: Email - link: odoc-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:odoc-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml/odoc + kind: github members: - name: Jon Ludlam github: jonludlam @@ -233,9 +248,12 @@ teams: name: Ppxlib description: The ppxlib development team contacts: - - name: Email - link: ppxlib-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:ppxlib-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml-ppx/ppxlib + kind: github dev-meeting: date: Every third Tuesday time: 6:00 PM CET @@ -256,9 +274,12 @@ teams: name: Utop description: The Utop development team contacts: - - name: Email - link: utop-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:utop-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml-community/utop + kind: github members: - name: Etienne Millon github: emillon @@ -270,9 +291,12 @@ teams: name: Opam-publish description: The Opam-publish development team contacts: - - name: Email - link: opam-publish-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:opam-publish-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml-opam/opam-publish + kind: github members: - name: Louis Gesbert github: AltGr @@ -287,9 +311,12 @@ teams: name: Ocamlformat description: The Ocamlformat development team contacts: - - name: Email - link: ocamlformat-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: https://lists.ocaml.org/listinfo/listinfo/ocamlformat-dev + kind: email + - name: GitHub + link: https://github.com/ocaml-ppx/ocamlformat + kind: github members: - name: Guillaume Petiot github: gpetiot @@ -304,9 +331,12 @@ teams: name: Dune-release description: The Dune-release development team contacts: - - name: Email - link: dune-release-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:dune-release-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/tarides/dune-release + kind: github members: - name: Etienne Millon github: emillon @@ -318,9 +348,12 @@ teams: name: Mdx description: The Mdx development team contacts: - - name: Email - link: mdx-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:mdx-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/realworldocaml/mdx + kind: github members: - name: Marek Kubica github: Leonidas-from-XIV @@ -329,9 +362,12 @@ teams: name: Ocp-indent description: The Ocp-indent development team contacts: - - name: Email - link: ocp-indent-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:ocp-indent-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/OCamlPro/ocp-indent + kind: github members: - name: Louis Gesbert github: AltGr @@ -340,9 +376,12 @@ teams: name: Ocamlfind description: The Ocamlfind development team contacts: - - name: Email - link: ocamlfind-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:ocamlfind-dev@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml/ocamlfind + kind: github members: - name: Gerd Stolpmann github: gerdstolpmann @@ -354,9 +393,9 @@ teams: name: Omp description: The Omp development team contacts: - - name: Email - link: omp-dev@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:omp-dev@lists.ocaml.org + kind: email members: - name: Sonja Heinze github: pitag-ha @@ -366,9 +405,9 @@ teams: description: The Packaging team is responsible to ensure the quality of the OCaml packages ecosystem, and in particular, to review submitions to the Opam repository. contacts: - - name: Email - link: packaging@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:packaging@lists.ocaml.org + kind: email members: - name: Anil Madhavapeddy github: avsm @@ -385,12 +424,12 @@ teams: powering the official OCaml projects, including the servers for OCaml.org and the opam-repository CI. contacts: - - name: Email - link: infrastructure@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: https://lists.ocaml.org/listinfo/listinfo/infrastructure + kind: email - name: GitHub link: https://github.com/ocaml/infrastructure/issues - icon: /governance-icons/github.svg + kind: github members: - name: Anil Madhavapeddy github: avsm @@ -409,9 +448,12 @@ teams: description: The Web team is responsible for the development and maintenance of the official OCaml websites, in particular OCaml.org and its subdomains. contacts: - - name: Email - link: web@lists.ocaml.org - icon: /governance-icons/email.svg + - name: Mailing List + link: mailto:web@lists.ocaml.org + kind: email + - name: GitHub + link: https://github.com/ocaml/ocaml.org + kind: github members: - name: Anil Madhavapeddy github: avsm @@ -432,7 +474,7 @@ working-groups: contacts: - name: Matrix link: https://matrix.to/#/#eio:roscidus.com - icon: /governance-icons/email.svg + kind: chat dev-meeting: date: Bi-weekly on Mondays time: 10:00 AM BST diff --git a/src/ocamlorg_data/data.mli b/src/ocamlorg_data/data.mli index 01d4da0c98..fd80c832d5 100644 --- a/src/ocamlorg_data/data.mli +++ b/src/ocamlorg_data/data.mli @@ -404,7 +404,8 @@ module Governance : sig val compare : t -> t -> int end - type contact = { name : string; link : string; icon : string } + type contact_kind = GitHub | Email | Discord | Chat + type contact = { name : string; link : string; kind : contact_kind } type dev_meeting = { date : string; diff --git a/src/ocamlorg_frontend/components/icons.eml b/src/ocamlorg_frontend/components/icons.eml index af539a98a5..f8059def94 100644 --- a/src/ocamlorg_frontend/components/icons.eml +++ b/src/ocamlorg_frontend/components/icons.eml @@ -41,6 +41,11 @@ let changelog class_ = +let chat class_ = + + let chevron_down class_ = +let email class_ = + + let error class_ =
@@ -54,11 +60,9 @@ Layout.render
<% t.contacts |> List.iter (fun (contact : Data.Governance.contact) -> %> - - + + <%s! contact_icon contact.kind "w-6 h-6" %> + <%s contact.name %> <% ); %>
@@ -85,6 +89,16 @@ Layout.render <% ); %> <% t.subteams |> List.iter (fun (team : Data.Governance.team) -> %>

<%s team.name %>

+ <% (if List.length t.contacts > 0 then %> +
+ <% t.contacts |> List.iter (fun (contact : Data.Governance.contact) -> %> + + <%s! contact_icon contact.kind "w-6 h-6" %> + <%s contact.name %> + + <% ); %> +
+ <% ); %> <% (match team.dev_meeting with | None -> () | Some dev_meeting -> %>

Dev Meeting

diff --git a/tool/ood-gen/lib/governance.ml b/tool/ood-gen/lib/governance.ml index 90e5f0a059..2e48924ebb 100644 --- a/tool/ood-gen/lib/governance.ml +++ b/tool/ood-gen/lib/governance.ml @@ -1,9 +1,33 @@ open Ocamlorg.Import +type contact_kind = GitHub | Email | Discord | Chat +[@@deriving show { with_path = false }] + +let contact_kind_of_yaml = function + | `String "github" -> Ok GitHub + | `String "email" -> Ok Email + | `String "discord" -> Ok Discord + | `String "chat" -> Ok Chat + | x -> ( + match Yaml.to_string x with + | Ok str -> + Error + (`Msg + ("\"" ^ str + ^ "\" is not a valid contact_kind! valid options are: github, \ + email, discord")) + | Error _ -> Error (`Msg "Invalid Yaml value")) + +let contact_kind_to_yaml = function + | GitHub -> `String "github" + | Email -> `String "email" + | Discord -> `String "discord" + | Chat -> `String "chat" + type member = { name : string; github : string; role : string } [@@deriving yaml, show { with_path = false }] -type contact = { name : string; link : string; icon : string } +type contact = { name : string; link : string; kind : contact_kind } [@@deriving yaml, show { with_path = false }] type dev_meeting = { @@ -57,7 +81,9 @@ module Member = struct let compare a b = String.compare a.github b.github end -type contact = { name : string; link : string; icon : string } +type contact_kind = GitHub | Email | Discord | Chat + +type contact = { name : string; link : string; kind : contact_kind } type dev_meeting = { date : string;