Technical Steering Committee (TSC)
**********************************

TSC Member Role
###############

The TSC role and its responsibilities is defined in the `Zephyr project charter`_.

Membership
++++++++++

A TSC member plays a pivotal role in shaping the technical direction of the
Zephyr Project. TSC members work collaboratively with other TSC members,
contributors, and stakeholders to ensure the project's success and
sustainability.

By fulfilling the rights and responsibilities below, TSC members contribute to
the overall success and growth of the Zephyr Project, ensuring that it remains a
vibrant and thriving open-source community for years to come.


Rights
------

Decision Making
  Participate in key decisions related to the project's technical direction,
  including architectural changes, feature additions, and release planning.

Voting
  Exercise voting rights on important matters discussed within the TSC,
  including feature proposals, code contributions, and community initiatives.

Access
  Gain access to relevant project repositories, documentation, and communication
  channels to stay informed and contribute effectively.

Leadership
  Take on leadership roles within working groups or subcommittees dedicated to
  specific technical areas or initiatives.

Representation
  Act as a representative of the broader Zephyr community, advocating for the
  interests of contributors, users, and stakeholders.

Responsibilities
----------------
TSC members are expected to fulfill the following responsibilities, though it is
not mandatory to fulfill all:

Technical Oversight
  Provide guidance and oversight on technical matters, ensuring alignment with
  project goals, standards, and best practices through active participation as
  core members in working groups and committees.

Code Review
  Participate in code reviews to maintain code quality, consistency, and
  compatibility with project standards.

Community Engagement
  Engage with the community through forums, mailing lists, conferences, and
  other channels to foster collaboration, address concerns, and gather feedback.

Documentation
  Contribute to the development and maintenance of project documentation,
  including technical guides, API references, and best practices.

Release Management
  Collaborate with the release manager and other stakeholders to plan and
  coordinate project releases, ensuring timely delivery and quality assurance.

Contributor Support
  Support and mentor new contributors, helping them navigate the project's
  codebase, processes, and community norms.

Issue Triage
  Assist in triaging and prioritizing issues reported by users and contributors,
  facilitating timely resolution and communication.

Compliance and Licensing
  Ensure compliance with project licensing requirements and open-source best
  practices, addressing any licensing-related issues that may arise.

Conflict Resolution
  Facilitate constructive discussions and resolution of technical disagreements
  or conflicts within the community, promoting a healthy and inclusive
  environment.

Continuous Improvement
  Continuously seek opportunities to improve project governance, processes, and
  infrastructure, driving innovation and sustainability.


Appointed TSC Members
+++++++++++++++++++++

See `Zephyr project charter`_ for more details.

- Appointed TSC members have no term limits besides the term of their employment
  at the organization they represent or their organization's membership in the
  Zephyr Project.
- Appointed TSC members can select an Alternate from the same organization.

Elected TSC Members
+++++++++++++++++++

Per the `Zephyr project charter`_, TSC members can nominate representatives from
the technical community at the rate of no more than one per quarter.

- Majority vote is required to confirm a candidate.
- Once elected, a TSC member serves for 2 years.
- Elected TSC members do not have the right to appoint an Alternate.
- To ensure continuity of the TSC, at the end of the 2 year term, the TSC is
  required to reconfirm the membership of elected members. If the elected member
  declines a new term or if the TSC fails to reconfirm the term, the seat will
  be open for new nominations.
- If an elected TSC member resigns before the end of the 2 year term, their spot
  will be open for new members outside of the quarterly nomination limit. The
  elected member will serve a 2 year term.
- The TSC has the right to terminate elected members who become inactive and are
  not fulfilling the responsibilities of TSC members as described in this
  document.
- The number of elected members shall not exceed 20% of the total of appointed
  members.
- Existing TSC members who were elected before May 2024 shall be re-confirmed
  after completing the 2 year term since they were first elected.

Suspensions
+++++++++++

As noted under Section 8b of the Project Charter, voting rights for a
representative who misses three consecutive meetings are subject to suspension
and suspended representatives do not count towards the quorum requirement.

A representative’s suspension will end and voting rights be restored at the start
of the next attended meeting. The TSC enforces the suspension policy for voting
members who miss three consecutive TSC weekly meetings.

Multi-day meetings (F2F events) are counted as "one" meeting. The TSC voted on
February 16, 2022 to discontinue default enforcement of the suspension policy.
The TSC voted on January 18, 2023 to re-enact default enforcement of the
suspension policy.

Notice of suspension will be sent to representatives who miss three consecutive
meetings, noting that rights will be restored upon next attendance of a TSC
meeting.

.. note::

   As per Section 4b of the Project Charter, Platinum and Silver
   Members may choose to opt out of a voting seat on the TSC.

   Members who opt out and then wish to reclaim their seat later will have their
   voting rights restored at the start of the second consecutive meeting
   attended following notification to the TSC Chair.


Voting
++++++

Voting in the Zephyr Project is defined under Section 8 of the Project Charter.

Additional points of clarity / TSC interpretation have been added below. The
Governing Board may opt to update the Charter to include the below
refinements. Until then, additional clarifications (if/where needed) will be
discussed in the Process Working Group, and approved in the TSC.

- TSC In-Meeting Voting For items requesting an in-meeting vote of the Zephyr
  Technical Steering Committee (TSC), assuming quorum requirements have been
  met, the default voting mechanism will be a verbal motion to determine if
  there is general consensus.
- If there are no objections to a motion being brought forward, general
  consensus is assumed and the motion passes.
- Should there be any objections raised, the vote will move to email, and be
  executed using the Voting Guidelines outlined in Section 8 of the Project
  Charter.
- Should a motion be deemed urgent by the TSC Chair, and assuming quorum
  requirements have been met, the Chair may call for a roll call vote
  in-meeting.

Voting Options
--------------

- Voting Options are:

  - "Yes",
  - "No" or
  - "Abstain"

Abstention
----------

Abstentions do not count in tallying the vote negatively or positively; when
members abstain, they are in effect attending only to contribute to a quorum.

Abstentions do not impact the number of votes needed to decide a vote.

Quorum
------

Quorum for TSC meetings shall require 60% of the voting representatives... (ref
8b of the Charter)

Decisions
---------

Decisions by vote shall be based on a majority vote, provided that at least
sixty percent (60%) of the **TSC** representatives must be either
present or participating electronically or by written action in order to
conduct a valid vote. (ref 8c of the Charter)

Example A:

   40 eligible TSC voters. 3 abstain from a vote on a motion. 12 vote Yes. 11 vote
   No.

   Quorum reached: 26 votes cast (quorum = 60% of 40 = 24)
   Majority vote: 12 Yes vs. 11 No. Yes wins.
   Motion adopted.

Example B:

   40 eligible TSC voters. 5 abstain from a vote on a motion. 12 vote Yes. 6
   vote No. Quorum reached? 23 votes cast (quorum = 60% of 40 = 24)

   Vote is not valid. Quorum not reached.

Example C:

   40 eligible TSC voters. 21 abstain from a vote on a motion. 2 vote Yes. 1 votes
   No. Quorum reached? 24 votes cast (quorum = 60% of 40 = 24)

   Majority vote: 2 Yes vs. 1 No. Yes wins.

Immutable Votes
+++++++++++++++

Votes are considered immutable once cast. A voter may not change their vote,
once cast, between the time a Motion is brought forth and the time at which
results are announced.

.. _Zephyr project charter:
   https://www.zephyrproject.org/wp-content/uploads/2023/08/LF-Zephyr-Charter-2023.08.21.pdf
