Governance per NuGetNuGet governance

Questo documento si basa sul modello di governance con dittatore benevolo dell'Università di Oxford.This document is based upon the Benevolent Dictator Governance Model by the University of Oxford. È concesso in licenza con una Licenza Attribuzione - Condividi allo stesso modo 2.0 Regno Unito: Inghilterra e Galles di Creative Commons.It is licensed under a Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License.

Il progetto NuGet è condotto da in dittatore benevolo e gestito dalla community.The NuGet project is led by a Benevolent Dictator and managed by the community. Questo significa che la community contribuisce attivamente alla manutenzione quotidiana del progetto, ma la linea strategica generale è stabilita dal dittatore benevolo.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. In caso di disaccordo, l'ultima parola spetta al dittatore benevolo.In case of disagreement, the benevolent dictator has the last word.

È responsabilità del dittatore benevolo risolvere eventuali controversie all'interno della community e garantire che il progetto possa evolversi in modo coordinato.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. È invece responsabilità della community guidare le decisioni del dittatore benevolo tramite partecipazione e contributi attivi.In turn, it's the community’s job to guide the decisions of the benevolent dictator through active engagement and contribution.

Ruoli e responsabilitàRoles and responsibilities

Sono quattro i ruoli descritti in questo articolo, ovvero dittatore benevolo, committer, collaboratori e utenti.There are four roles described here: Benevolent Dictator, Committers, Contributors, and Users.

Dittatore benevoloBenevolent dictator

Il team principale di NuGet si è autonominato dittatore benevolo o responsabile del progetto.The NuGet core team is self-appointed as Benevolent Dictator or project lead. Tuttavia, dato che la community ha sempre la possibilità di creare copie tramite fork, il team è tenuto a rispondere in toto alla community.However, because the community always has the ability to fork, the team is fully answerable to the community. Il responsabile del progetto è tenuto a comprendere la community nel suo complesso e a cercare di soddisfare il maggior numero di esigenze in conflitto possibile, assicurando allo stesso tempo la sopravvivenza del progetto a lungo termine.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.

Da molti punti di vista, il ruolo di dittatore benevolo ha poco a che fare con la dittatura e molto di più con la diplomazia.In many ways, the role of the benevolent dictator is less about dictatorship and more about diplomacy. La chiave è garantire che, man mano che il progetto si espande, le persone giuste abbiano influenza sul progetto e che la community condivida ampiamente la visione del responsabile del progetto.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. Il responsabile è tenuto ad assicurare che i committer (vedere di seguito) prendano le giuste decisioni per il buon esito del progetto.The lead’s job is then to ensure that the committers (see below) make the right decisions on behalf of the project. In generale, fino a quando i committer operano in linea con la strategia del progetto, il responsabile del progetto consentirà loro di procedere nel modo desiderato.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.

Inoltre, il personale di .NET Foundation considera il responsabile del progetto il contatto principale o prioritario per NuGet ai fini di operazioni commerciali come le registrazioni dei servizi e per i servizi tecnici, come la firma del codice.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).

CommitterCommitters

I committer sono collaboratori che contribuiscono in modo significativo e continuativo al progetto NuGet e vengono designati dal dittatore benevolo.Committers are contributors who have made sustained valuable contributions to NuGet and are appointed by the Benevolent Dictator. Dopo la nomina, i committer hanno la responsabilità sia di scrivere codice direttamente nel repository, sia di filtrare i contributi di altri utenti.Once appointed, committers are relied upon to both write code directly to the repository and screen the contributions of others. I committer sono spesso sviluppatori, ma possono contribuire in altri modi.Committers are often developers but can contribute in other ways.

In genere, un committer si concentra su un aspetto specifico del progetto e offre un livello di esperienza e conoscenze che gli accorda il rispetto della community e del responsabile del progetto.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. Il ruolo di committer non è ufficiale, è semplicemente una posizione assunta dai membri esperti della community, quando il responsabile del progetto si rivolge a loro per richiedere indicazioni e supporto.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.

I committer non esercitano alcuna autorità in merito alla direzione generale del progetto NuGet.Committers have no authority where the overall direction of NuGet is concerned. Sono tuttavia ascoltati dal responsabile del progetto.However, they do have the ear of the project lead. Il committer è tenuto ad assicurarsi che il responsabile sia a conoscenza delle esigenze e degli obiettivi collettivi della community e a contribuire allo sviluppo o alla sollecitazione di contributi appropriati per il progetto.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. Ai committer viene spesso accordato il controllo informale delle loro aree di responsabilità specifiche e vengono loro assegnati i diritti per la modifica diretta di determinate aree del codice sorgente.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. Ciò significa che, anche se i committer non hanno un'autorità decisionale esplicita, spesso si ritroveranno a compiere azioni in linea con le decisioni prese dal responsabile.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.

ContributorsContributors

I collaboratori sono membri della community che inviano patch per NuGet.Contributors are community members who submit patches to NuGet. Queste patch possono essere singoli contributi oppure periodiche.These patches may be a one-time occurrence or occur over time. Ci si aspetta che i collaboratori inviino patch inizialmente piccole e progressivamente più estese, man mano che il collaboratore, i committer e il responsabile del progetto acquisiscono sicurezza sulla qualità delle patch di un collaboratore.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. Per i collaboratori è previsto un riconoscimento nel documento delle note sulla versione del prodotto associato.Contributors are recognized in the associated product release notes document.

Prima che la prima patch di un collaboratore venga inserita nel repository, il collaboratore deve firmare un contratto di licenza per i collaboratori o un contratto di assegnazione per .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 patch può essere inviata e discussa, ma non ne verrà eseguito il commit nel repository se i documenti appropriati non sono pronti.The patch can be submitted and discussed but it can’t actually be committed to the repository without the appropriate paperwork in place. Per ottenere un contratto di licenza per collaboratori, inviare una richiesta tramite posta elettronica all'indirizzo contributions@nuget.org.To obtain a contributor license agreement, please send a request in email to contributions@nuget.org.

Per diventare un collaboratore, inviare una richiesta di pull a uno dei repository seguenti:To become a contributor, submit a pull request to one of the following repositories:

Il processo dettagliato per l'invio di una richiesta pull varia in base al repository:The detailed process for submitting a pull request varies by repository:

UtentiUsers

Gli utenti sono membri della community a cui serve NuGet e che lo usano, come i consumer di pacchetti e/o gli autori.Users are community members who have a need for and use NuGet, as package consumers and/or authors. Gli utenti sono i membri più importanti della community: senza di loro il progetto non avrebbe alcuno scopo.Users are the most important members of the community: without them, the project would have no purpose. Chiunque può essere un utente, non sono previsti requisiti specifici.Anyone can be a user; there are no specific requirements.

Gli utenti devono essere incoraggiati a partecipare il più possibile alla vita del progetto NuGet e alla community.Users should be encouraged to participate in the life of NuGet and the community as much as possible. I contributi degli utenti consentono al team del progetto di assicurarsi che vengano soddisfatte le esigenze di tali utenti.User contributions enable the project team to ensure that they are satisfying the needs of those users. Le attività comuni degli utenti includono a titolo di esempio le seguenti:Common user activities include but are not limited to the following:

  • Promuovere l'uso del progettoAdvocating for use of the project
  • Informare gli sviluppatori dei punti di forza e di debolezza del progetto dal punto di vista di un nuovo utenteInforming developers of project strengths and weaknesses from a new user’s perspective
  • Offrire supporto morale (i ringraziamenti sono sempre molto utili)Providing moral support (a thank you goes a long way)
  • Scrivere documentazione ed esercitazioniWriting documentation and tutorials
  • Creare report di bug e richieste di funzionalitàFiling bug reports and feature requests
  • Partecipare agli eventi della community, come i bug bashParticipating in community events, such as bug bashes
  • Partecipare ad aree discussioni o forumParticipating on discussion boards or forums

Gli utenti che continuano a partecipare al progetto e alla community, spesso si ritroveranno a essere sempre più coinvolti.Users who continue to engage with the project and its community will often find themselves becoming more and more involved. Tali utenti potrebbero quindi diventare collaboratori, come descritto in precedenza.Such users may then go on to become contributors, as described above.

Successione per i pacchetti in circostanze specialiPackage succession under special circumstances

Nei casi sfortunati di incapacità o decesso del titolare di un account NuGet, si collaborerà con la community per assegnare uno o più titolari appropriati al pacchetto, nel caso l'account sia di proprietà esclusiva e il pacchetto sia pubblicato con una licenza approvata da 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. Per richiedere la proprietà è necessario inviare i documenti seguenti:To request ownership you must send us the following documents:

  1. Fotocopia della carta di identità.A photocopy of your government-issued photo ID.
  2. Uno dei documenti seguenti comprovanti lo stato del titolare dell'account precedente:One of the following documents proving the previous account holder’s status:
    • Un certificato di morte ufficiale in caso di decesso del titolare dell'account precedente, o,An official, government-issued death certificate if the previous account holder is deceased, or,
    • Un documento certificato, ad esempio un certificato firmato dal medico professionista che ha in cura il titolare dell'account risultato incapace.A certified document such as a certificate signed by a medical professional in charge of the care of an incapacitated account holder.
  3. Uno dei documenti seguenti comprovanti il diritto di proprietà:One of the following documents proving your right to ownership:
    • Certificato di matrimonio che dimostra che l'utente richiedente è il coniuge superstite del titolare dell'account,Marriage certificate showing that you are the surviving spouse of the account holder,
    • Procura firmata,Signed power of attorney,
    • Copia del testamento o di un accordo fiduciario da cui l'utente richiedente risulta esecutore o beneficiario,Copy of a will or trust document naming you as executor or beneficiary,
    • Certificato di nascita del titolare dell'account, nel caso l'utente richiedente sia un genitore, o,Birth certificate for the account holder, if you are their parent, or,
    • Documentazione della tutela, nel caso l'utente richiedente sia un tutore legale del titolare dell'account.Guardianship paperwork if you are a legal guardian of the account holder.

Gli utenti che si trovano nella necessità di fare appello a queste clausole possono inviare un messaggio di posta elettronica all'indirizzo support@nuget.org con ID e versione del pacchetto.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.

TrasparenzaTransparency

Per la riuscita di un progetto open source è fondamentale che la community possa avere fiducia nella governance.Building community trust in the governance of an open-source project is vital to its success. A tale scopo, il processo decisionale deve essere trasparente e aperto.To that end, decision making must be done in a transparent, open fashion. Le discussioni sulla direzione del progetto deve essere condotte pubblicamente.Discussion about the project’s direction must be done publicly. La community non deve mai essere colta di sorpresa da una decisione del dittatore benevolo.The community should never be caught off-guard by a decision by the Benevolent Dictator. Le discussioni sulle decisioni per il progetto devono inoltre essere archiviate in modo che i membri della community possano comprendere l'intero iter di una decisione e il relativo contesto.Additionally, discussion about project decisions must be archived so that community members can understand the entire history of a decision and its context.