Gobernanza de NuGetNuGet governance

Este documento se basa en el modelo Benevolent Dictator Governance Model de la Universidad de Oxford.This document is based upon the Benevolent Dictator Governance Model by the University of Oxford. Tiene una licencia de tipo Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License.It is licensed under a Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License.

El proyecto de NuGet está dirigido por un dictador benevolente y está administrado por la comunidad.The NuGet project is led by a Benevolent Dictator and managed by the community. Es decir, la comunidad contribuye activamente en el mantenimiento diario del proyecto, pero la línea estratégica general la lleva el dictador benevolente.That is, the community actively contributes to the day-to-day maintenance of the project, but the general strategic line is drawn by the benevolent dictator. En caso de desacuerdo, el dictador benevolente tiene la última palabra.In case of disagreement, the benevolent dictator has the last word.

Es tarea del dictador benevolente resolver los conflictos producidos en la comunidad y asegurarse de que el proyecto puede avanzar de una manera coordinada.It is the benevolent dictator’s job to resolve disputes within the community and to ensure that the project is able to progress in a coordinated way. A su vez, es tarea de la comunidad guiar las decisiones del dictador benevolente mediante el compromiso y la colaboración activos.In turn, it's the community’s job to guide the decisions of the benevolent dictator through active engagement and contribution.

Roles y responsabilidadesRoles and responsibilities

Aquí se describen cuatro roles: Dictador benevolente, Desarrolladores registrados, Colaboradores y Usuarios.There are four roles described here: Benevolent Dictator, Committers, Contributors, and Users.

Dictador benevolenteBenevolent dictator

El equipo básico de NuGet se autoproclama dictador benevolente o jefe de proyecto,The NuGet core team is self-appointed as Benevolent Dictator or project lead. pero como la comunidad siempre tiene la capacidad de desviarse, el equipo es responsable directo de la comunidad.However, because the community always has the ability to fork, the team is fully answerable to the community. El jefe de proyecto debe entender la comunidad como un todo y esforzarse para satisfacer al máximo las necesidades relacionadas con los conflictos, así como asegurarse de que el proyecto sobreviva a largo plazo.The project lead is expected to understand the community as a whole and strive to satisfy as many conflicting needs as possible, while ensuring that the project survives in the long term.

En muchos sentidos, el rol del dictador benevolente tiene menos que ver con una dictadura y más con la diplomacia.In many ways, the role of the benevolent dictator is less about dictatorship and more about diplomacy. La clave consiste en asegurarse de que, a medida que el proyecto se amplíe, se proporcione influencia a las personas adecuadas sobre este y de que la comunidad apoye la visión del jefe de proyecto.The key is to ensure that, as the project expands, the right people are given influence over it and the community rallies behind the vision of the project lead. Por lo tanto, la tarea del jefe de proyecto es asegurarse de que los desarrolladores registrados (vea más abajo) toman las decisiones correctas en nombre del proyecto.The lead’s job is then to ensure that the committers (see below) make the right decisions on behalf of the project. Por lo general, siempre que los desarrolladores registrados se alineen con la estrategia del proyecto, el jefe de proyecto les permitirá proceder como quieran.Generally speaking, as long as the committers are aligned with the project’s strategy, the project lead will allow them to proceed as they desire.

Además, el personal de .NET Foundation considera que el jefe de proyecto es el primer punto de contacto o el punto de contacto principal para NuGet para fines de operaciones comerciales, incluidos los registros de dominio y los servicios técnicos (por ejemplo, la firma de código).Additionally, .NET Foundation staff consider the project lead the primary or first point of contact for NuGet for purposes of business operations including domain registrations, and technical services (e.g. code-signing).

Desarrolladores registradosCommitters

Los autores son colaboradores que han llevado a cabo contribuciones valiosas prolongadas en NuGet y son designados por el dictador benevolente.Committers are contributors who have made sustained valuable contributions to NuGet and are appointed by the Benevolent Dictator. Una vez designados, se espera que los desarrolladores registrados escriban código directamente en el repositorio y protejan las contribuciones de los demás.Once appointed, committers are relied upon to both write code directly to the repository and screen the contributions of others. Aunque los desarrolladores registrados son desarrolladores, pueden contribuir de otros modos.Committers are often developers but can contribute in other ways.

Normalmente, un desarrollador registrado se centra en un aspecto específico del proyecto y aporta un nivel de conocimiento y comprensión que le merece el respeto de la comunidad y del jefe de proyecto.Typically, a committer focuses on a specific aspect of the project, and brings a level of expertise and understanding that earns them the respect of the community and the project lead. El rol del desarrollador registrado no es oficial. Se trata de una mera posición que asumen los miembros destacados de la comunidad, ya que el jefe de proyecto recurre a él en busca de ayuda y apoyo.The role of committer is not an official one, it's simply a position that influential members of the community assume as the project lead looks to them for guidance and support.

Los desarrolladores registrados no cuentan con autoridad en lo que a la dirección general de NuGet se refiere,Committers have no authority where the overall direction of NuGet is concerned. pero influyen al jefe de proyecto.However, they do have the ear of the project lead. Es tarea de un desarrollador registrado asegurarse de que el jefe de proyecto sea consciente de las necesidades y los objetivos colectivos de la comunidad, así como ayudar a desarrollar o desencadenar contribuciones adecuadas para el proyecto.It is a committer’s job to ensure that the lead is aware of the community’s needs and collective objectives, and to help develop or elicit appropriate contributions to the project. A veces, a los autores se les ofrece control informal sobre sus áreas de responsabilidad específicas y se les asignan derechos para modificar directamente ciertas áreas del código fuente.Often, committers are given informal control over their specific areas of responsibility, and are assigned rights to directly modify certain areas of the source code. Es decir, aunque los desarrolladores registrados no cuentan con autoridad explícita para tomar decisiones, muchas veces verán que sus acciones equivalen a las decisiones que ha tomado el jefe de proyecto.That is, although committers do not have explicit decision-making authority, they will often find that their actions are synonymous with the decisions made by the lead.

ColaboradoresContributors

Los colaboradores son miembros de la comunidad que envían revisiones a NuGet.Contributors are community members who submit patches to NuGet. Estas revisiones pueden ser únicas o se producen con el tiempo.These patches may be a one-time occurrence or occur over time. Se prevé que los colaboradores envíen revisiones que sean pequeñas al principio y que aumenten de tamaño cuando el colaborador, los desarrolladores registrados y el jefe de proyecto hayan ganado confianza en la calidad de las revisiones de un colaborador.Expectations are that contributors submit patches that are small at first and grow larger when the contributor, committers, and the project lead have built confidence in the quality of a contributor's patches. Los colaboradores se reconocen en el documento de notas de la versión del producto asociado.Contributors are recognized in the associated product release notes document.

Antes de que se inserte en el repositorio la primera revisión de un colaborador, debe firmar un contrato de licencia para colaboradores o un contrato de asignación con .NET Foundation.Before a contributor’s first patch is put into the repository, they must sign a Contributor License Agreement or an assignment agreement to the .NET Foundation. La revisión se puede enviar y debatir, pero no se puede destinar al repositorio si no se dispone de los documentos adecuados en vigor.The patch can be submitted and discussed but it can’t actually be committed to the repository without the appropriate paperwork in place. Para obtener un contrato de licencia de colaborador, envíe una solicitud por correo electrónico a contributions@nuget.org.To obtain a contributor license agreement, please send a request in email to contributions@nuget.org.

Para convertirse en un colaborador, envíe una solicitud de incorporación de cambios a uno de los siguientes repositorios:To become a contributor, submit a pull request to one of the following repositories:

El proceso detallado para enviar una solicitud de incorporación de cambios varía según el repositorio:The detailed process for submitting a pull request varies by repository:

UsuariosUsers

Los usuarios son miembros de la comunidad que necesitan y usan NuGet, como los consumidores o los autores de paquetes.Users are community members who have a need for and use NuGet, as package consumers and/or authors. Los usuarios son los miembros más importantes de la comunidad: sin ellos, el proyecto no tendría ningún propósito.Users are the most important members of the community: without them, the project would have no purpose. Cualquier persona puede ser un usuario; no hay ningún requisito específico.Anyone can be a user; there are no specific requirements.

Se debe alentar a los usuarios para que participen en la vida de NuGet y en la comunidad tanto como sea posible.Users should be encouraged to participate in the life of NuGet and the community as much as possible. Las contribuciones de los usuarios permiten que el equipo del proyecto se asegure de que satisface las necesidades de esos usuarios.User contributions enable the project team to ensure that they are satisfying the needs of those users. Algunas de las actividades de usuario habituales son las siguientes:Common user activities include but are not limited to the following:

  • Recomendar el uso del proyectoAdvocating for use of the project
  • Informar a los desarrolladores de las ventajas y desventajas del proyecto desde la perspectiva de un usuario nuevoInforming developers of project strengths and weaknesses from a new user’s perspective
  • Proporcionar apoyo moral (un "Gracias" ayuda)Providing moral support (a thank you goes a long way)
  • Escribir documentación y tutorialesWriting documentation and tutorials
  • Cumplimentar informes de errores y solicitudes de característicasFiling bug reports and feature requests
  • Participar en eventos de la comunidad, como búsqueda de erroresParticipating in community events, such as bug bashes
  • Participa en paneles de discusión o forosParticipating on discussion boards or forums

Los usuarios que sigan interactuando con el proyecto y su comunidad verán que se irán implicando más y más.Users who continue to engage with the project and its community will often find themselves becoming more and more involved. Luego, estos usuarios pueden continuar para convertirse en colaboradores, tal y como se describe arriba.Such users may then go on to become contributors, as described above.

Sucesión de paquetes en circunstancias especialesPackage succession under special circumstances

En el desafortunado caso de que el titular de una cuenta de NuGet quede incapacitado o fallezca, trabajaremos con la comunidad para agregar los propietarios adecuados al paquete en el que dicha cuenta tiene una propiedad única y el paquete se publique con una licencia aprobada por OSI.In the unfortunate situation where a NuGet account holder is incapacitated or deceased, we’ll work with the community to add appropriate owner/s to the package where the said account has sole ownership and the package is published under an OSI approved license. Para solicitar la propiedad, debe enviar los siguientes documentos:To request ownership you must send us the following documents:

  1. Una fotocopia de su documento identificativo con foto, emitido por su gobierno.A photocopy of your government-issued photo ID.
  2. Uno de los siguientes documentos, en los que se demuestre el estado anterior del titular de la cuenta:One of the following documents proving the previous account holder’s status:
    • Un certificado de defunción oficial, emitido por su gobierno, en el caso de que el anterior titular de la cuenta haya fallecido; o bienAn official, government-issued death certificate if the previous account holder is deceased, or,
    • Un documento certificado, como un certificado firmado por un profesional de la salud a cargo de la salud de un titular de una cuenta incapacitado.A certified document such as a certificate signed by a medical professional in charge of the care of an incapacitated account holder.
  3. Uno de los siguientes documentos, en los que se demuestre su derecho a la propiedad:One of the following documents proving your right to ownership:
    • Certificado de matrimonio en el que se muestre que es el cónyuge superviviente del titular de la cuenta,Marriage certificate showing that you are the surviving spouse of the account holder,
    • Poderes firmados,Signed power of attorney,
    • Copia de un testamento o de un documento de fideicomiso en el que se le nombre albacea o legatario,Copy of a will or trust document naming you as executor or beneficiary,
    • Certificado de nacimiento del titular de la cuenta, si es su progenitor, o bienBirth certificate for the account holder, if you are their parent, or,
    • Documentación de tutela si es tutor legal del titular de la cuenta.Guardianship paperwork if you are a legal guardian of the account holder.

Si necesita invocar esta directiva, envíenos un correo electrónico a support@nuget.org con el identificador y la versión del paquete.If you find yourself in need of invoking this policy, please send us an email at support@nuget.org with the ID and version of the package.

TransparenciaTransparency

Que la comunidad confíe en la gobernanza de un proyecto de código abierto es esencial para que este tenga éxito.Building community trust in the governance of an open-source project is vital to its success. Para ello, se debe tomar una decisión de forma transparente y clara.To that end, decision making must be done in a transparent, open fashion. El debate sobre la dirección del proyecto debe tener lugar de forma pública.Discussion about the project’s direction must be done publicly. La comunidad no debe verse sorprendida nunca por una decisión que haya tomado el dictador benevolente.The community should never be caught off-guard by a decision by the Benevolent Dictator. Además, el debate sobre las decisiones del proyecto se debe archivar para que los miembros de la comunidad puedan comprender toda la historia de una decisión y su contexto.Additionally, discussion about project decisions must be archived so that community members can understand the entire history of a decision and its context.