Skip to content

Latest commit

 

History

History
415 lines (305 loc) · 19 KB

ContributionAProjetLibre.md

File metadata and controls

415 lines (305 loc) · 19 KB

English

Directive de contribution à un projet libre

Introduction

Suivant sa politique sur l’utilisation et le développement des logiciels et du matériel libres, la Ville de Montréal sera amenée à contribuer à des projets libres existants. Ces contributions seront faites dans deux buts principaux :

  1. réparer des bogues au produit pour en permettre une meilleure utilisation par la Ville et par la communauté,
  2. ajouter des fonctionnalités au produit pour répondre aux besoins de la Ville et/ou de la communauté.

Le présent document décrit les grandes lignes du processus à suivre afin de contribuer à un projet libre existant.

Portée

Cette directive s’adresse à l’ensemble des unités administratives de la Ville de Montréal susceptibles de contribuer à des projets de logiciels ou de matériels libres. Plus spécifiquement, elle vise à guider les personnes chargées de faire une ou plusieurs de ces contributions au nom de la Ville.

Cette directive s’applique autant aux employés de la Ville qu’à ses contractants ou aux tierces parties appelées à faire des contributions pour la Ville à des projets libres existants.

Définitions

Contrat de licence du contributeur (Contributor License Agreement) (CLA): Accord entre un contributeur et l’entité juridique gérant un projet libre permettant de contribuer de la propriété intellectuelle à cedit projet.

Contributeur: Personne faisant une contribution à un projet libre.

Contribution: Tout changement au code, à la documentation, aux fichiers de configuration, aux plans, ou à tout autre fichier d’un projet libre, qui est donné au projet en question pour y être inclus.

Licence: Contrat par lequel le titulaire des droits du logiciel ou matériel autorise un tiers à poser certains gestes vis-à-vis ce logiciel ou matériel.

Projet logiciel libre: Un programme ou une bibliothèque logicielle pour lequel le code et autre ressource sont mis à la disposition du grand public pour utilisation et/ou modification, et ce sans compensation.

Projet matériel libre: Plans d’artéfacts tangibles (machines, dispositifs ou toutes choses physiques) ayant été rendus publics de façon à ce que quiconque puisse fabriquer, modifier, distribuer et utiliser ces artéfacts.

Propriété intellectuelle: Droits légaux quant à des créations intellectuelles tel que des artéfacts logiciels ou des plans de matériels.

Responsable du projet (Maintainer): Personne responsable de l'exécution de l'ensemble des opérations qui sont jugées nécessaires pour garantir le bon fonctionnement d'un projet de logiciel ou matériel libres, conformément à des spécifications définies.

Permissions de contribution

Afin de respecter les valeurs d’intégrité, de respect et de loyauté de la Ville de Montréal, les projets libres auxquels contribue la Ville ne doivent pas être en conflit avec lesdites valeurs.

Avant une toute première contribution à un projet libre, une permission globale devra être obtenue du Comité du libre afin de s’assurer que le projet en question est compatible avec les valeurs de la Ville.

Si un projet libre est approuvé, cette permission sera applicable à toutes contributions futures.

La permission globale sera permanente, à moins d’un changement majeur de la réalité du projet libre qui contreviendrait aux valeurs de la Ville.

Il est possible de déterminer si un projet est déjà approuvé en vérifiant si un fork du projet existe déjà dans l'organisation GitHub de la VilleDeMontreal.

Propriété intellectuelle

Toutes modifications apportées à un projet libre par un employé ou un contractant durant les heures rémunérées par la Ville sont la propriété de la Ville et doivent donc être faites au nom de la Ville.

Dans le cas de contrat de développement de logiciel ou de matériel avec une tierce partie, la propriété intellectuelle quant au produit développé doit être précisée dans le contrat.

Toute contribution de ce développement logiciel ou matériel doit être basée sur la personne juridique qui possède la propriété intellectuelle.

La Ville n’assume aucune responsabilité quant aux contributions faites de façon personnelle.

Pour le reste de ce document, nous utiliserons le terme “contributions” pour signifier des contributions faites au nom de la Ville.

Identité à utiliser pour une contribution

Toutes les contributions faites au nom de la Ville par un employé ou un contractant qui travaille pour la Ville doivent être faites en utilisant l’adresse courriel fournie par la Ville et le nom de la personne faisant la contribution, sauf avec une entente écrite entre la Ville et l’employé ou le contractant.

L’utilisation de l’adresse courriel de la Ville permet de distinguer les contributions faites au nom de la Ville de celles réalisées en dehors des heures de travail (non rémunérées par la Ville).

Toutes contributions pour lesquelles la Ville possède la propriété intellectuelle doivent être faites par un employé ou un contractant qui travaille pour la Ville.

Toutes contributions faites de façon personnelle doivent être faites en utilisant une adresse courriel personnelle.

Droits de contribution

Dans tous les cas de contributions, et même si ce n’est pas explicitement requis par le projet libre en question, le contributeur doit s’assurer que la Ville de Montréal possède les droits vis-à-vis toutes les modifications. Pour cela, le contributeur doit confirmer qu’il a les droits de publier la contribution sous la licence libre requise.

Si le projet requiert un contrat de licence du contributeur (CLA), ce dernier devra être signé par le directeur du Service des TI.

La validation et l’approbation du CLA doivent être incluses à la permission de contribution décrite plus haut.

Assignation de droits d’auteurs

Certains projets requièrent plus qu’un CLA et demandent une assignation des droits d’auteurs.

Dans ce cas, une permission, accompagnée d’une autre signature, sera requise.

La validation et l’approbation des signatures complémentaires au CLA doivent être incluses à la permission de contribution décrite plus haut.

Licence

Tout nouveau fichier à contribuer devra utiliser la licence requise par le projet en question. La licence est souvent incluse au haut du fichier dans le cas de fichiers texte, mais cela peut dépendre du projet en question.

Une licence différente est souvent requise pour les composantes de nature non logicielles ou non matérielles, telles les images, la documentation, les bases de données. La licence à utiliser sera celle sélectionnée par le projet pour le type de composante en question.

Information sensible

Toute contribution doit respecter la Loi sur la protection des renseignements personnels du Québec et ne pas nuire à la protection de la vie privée, à la sécurité publique ou à la sécurité de l’information de la Ville de Montréal.

Il est de la responsabilité du contributeur de s’assurer que sa contribution ne contient pas ce type d’information.

Code de conduite

Les contributions faites au nom de la Ville de Montréal affectent potentiellement la réputation de la Ville. Il est important de protéger cette réputation pour préserver l’image de la Ville.

De plus, une bonne réputation comme contributeur à des projets libres facilitera l’acceptation de contributions futures.

Dans l’optique de protéger la réputation de la Ville, toute contribution doit être de qualité, tant sur le plan technique qu’humain.

Pour cela:

  1. toutes interactions avec une communauté libre, tant sur les canaux publics (forums, listes de courriels, appels téléphoniques ouverts, etc), qu’en privé (face à face, appels téléphoniques privés, courriels directs, etc) doivent être faites de façon professionnelle, polie et respectueuse, peu importe l’attitude des autres parties,
  2. toute contribution doit être faite suivant les requis du projet en question,
  3. toute contribution doit être faite avec un haut standard de qualité technique. Une revue de la contribution par des pairs, avant sa soumission au projet, est recommandée afin d’assurer la qualité de la contribution.

Le Code de Conduite des employés de la Ville de Montréal s'applique à toutes interactions relatives aux projets libres.

Application de la directive

Les étapes à suivre pour faire une contribution à un projet existants sont illustrées dans ce diagramme.

Le processus complet est détaillé par les étapes suivantes :

  1. Identifier un besoin de contribution à un projet libre.

  2. Vérifier si le projet est déjà approuvé pour des contributions de la Ville ou débuter le processus d’approbation :

    1. Envoyer conjointement avec un Architecte de solutions une demande au Comité du libre à l'adresse courriel du comité (libre@ville.montreal.qc.ca) contenant les informations suivantes :
      • Le projet faisant l'objet d'une contribution
        • Le lien officiel du dépot du projet
        • La license libre utilisée par le projet
        • Si un CLA (Contributor License Agreement) doit être signé pour contribuer au projet
      • Le projet Ville auquel la contribution est reliée
      • La nature de la contribution (nouvelle fonctionnalité, correction de bogues, documentation, etc.)
      • Toute information jugée pertinente
  3. Se familiariser avec le processus de contribution du projet:

    1. Lire le document README et CONTRIBUTING du projet, si présents, afin de comprendre le processus de contribution;
    2. Examiner une ou deux contributions passées et approuvées pour comprendre les étapes à suivre.
  4. Créer ou modifier les éléments de la solution à contribuer;

  5. Entamer le processus de contribution;

  6. Suivre le processus jusqu’à l’inclusion ou le rejet de la contribution.

Notez que les étapes 2, 3 et 4 peuvent être faites en même temps, en présumant que le projet sera approuvé pour des contributions de la Ville. Les étapes 5 et 6 ne peuvent pas être entamées tant que les étapes précédentes ne sont pas complétées.




Introduction

Under its open-source software/hardware development and usage policy, the Ville de Montréal may contribute to existing open-source projects. Such contributions respond to two key goals:

  1. Eliminating bugs, to permit better use by the City and community.
  2. Adding product features, to meet municipal and community needs.

This document outlines the procedure for contributing to an existing open-source project.

Scope

This directive applies to all of the Ville de Montréal's administrative units that might contribute to open-source software or hardware projects. In particular, it is designed to guide those responsible for making any such contribution(s) on behalf of the City.

This directive applies to employees of the City, contractors and third-parties making contributions to existing open-source projects for the City.

Definitions

Contributor License Agreement/CLA: Agreement between a contributor and the legal entity overseeing an open-source project permitting contributions to the project’s intellectual property.

Contributor: Person contributing to an open-source project.

Contribution: Any change in code, documentation, configuration files, plans or any other files of an open-source project, which is provided to said project for inclusion.

Licence: Contract by which the owner of rights in the software or hardware authorizes a third party to take certain actions with respect to this software or hardware.

Open-source software project: An application or software library whose source code and other resources can be used and modified by the general public, without payment of compensation.

Open-source hardware project: Plans for tangible artifacts (machines, devices or any physical object) that have been made public so that anyone can manufacture, modify, distribute or use such artifacts.

Intellectual property: Legal rights to intellectual creations, such as hardware plans or software artifacts.

Maintainer: Person responsible for performing any operation considered necessary to ensure the proper operation of an open-source software or hardware project, according to established specifications.

Contribution Permissions

Open-source projects to which the Ville de Montréal contributes must comply with the City’s principles of integrity, respect and loyalty.

Global permission must be obtained from the Open-Source Committee before making an initial contribution to an open-source project, to ensure that the project is consistent with municipal values.

If an open-source project is approved, such permission will extend to all future contributions.

Global permission is permanent, unless there is a major change that brings the project into conflict with municipal values.

One can determine if a projet has already been approved for contributions by looking if a fork of the project exists in the GitHub organization VilleDeMontreal.

Intellectual Property

All changes to an open-source project by an employee or contractor during working hours paid by the City are property of the City and must be made on behalf of the City.

In the case of software or hardware development by a third party, intellectual property in the developed product must be detailed in the contract.

Any contribution of this development must be based on the legal entity that owns the intellectual property.

The City accepts no responsibility or liability for individual contributions.

The term “contributions” in this document means “contributions made on behalf of the City.”

Identity to Use for Contributions

All contributions made on behalf of the City by an employee or contractor working for the City must use the email address provided by the City and the name of the person making the contribution, unless there is a written agreement between the City and the employee or contractor.

Using a City email address makes it possible to distinguish between contributions made on behalf of the City from those made outside working hours (not paid by the city).

All contributions for which the City owns the intellectual property must be made by an employee or contractor working for the City.

All individual contributions must be made using a personal email address.

Contribution Rights

For all contributions, even where not explicitly required by the open-source project concerned, the contributor must ensure that the City holds the intellectual rights to any changes. The contributor does so by confirming that ** he has the rights to publish the contribution under the required open-source licence**.

If the project requires a contributor licence agreement (CLA), it must be signed by the director of IT.

CLA validation and approval must be included in the contribution permission described above.

Copyright Assignment

Some projects require more than a CLA and require an assignment of copyright.

If so, a permission, accompanied by an other signature, is required.

Validation and approval of signatures require beyond the CLA must be included in the contribution permission described above.

Licence

Any new files being contributed must use the licence required by the project concerned. The licence often appears at the top of the file, in the case of text files, but this may vary by project.

A different licence is often required for components other than software or hardware, such as images, documentation and databases. The licence to be used will be the kind already selected by the project for the type of component concerned.

Sensitive Information

All contributions must comply with Québec’s Privacy Act, and must not jeopardize privacy, public safety or the security of the information of the Ville de Montréal.

Contributors are responsible for ensuring that their contributions do not contain such information.

Code of Conduct

Contributions made on behalf of the City have a potential impact on Montréal’s reputation, which must be protected to preserve the City’s image.

Furthermore, a good reputation as a contributor to open-source projects will facilitate acceptance of future contributions.

All contributions must be of excellent technical and human-engineering quality to protect Montréal’s reputation.

This means:

  1. All interactions with an open-source community whether through public (forums, mailing lists, open phone calls, etc.) or private (face to face, private phone calls, direct emails, etc.) channels must be professional, polite and respectful, regardless of the other parties’ attitude.
  2. All contributions must comply with the requirements of the project concerned.
  3. All contributions must be on a high technical standard. Peer reviews of the contribution, prior to its submission to the project, is recommended to ensure the contribution’s quality.

The City employees' Code of conduct applies to all interactions pertaining to open source projects.

Application of Directive

The steps involved in contributing to an existing project are shown in this diagram.

The complete process is detailed below:

  1. Identifying a need for a contribution to an open-source project.
  2. Checking if the project has already been approved for municipal contributions or initiate the approval process:
    1. Jointly with a Solutions Architect, send a request to the Open-Source Committee at libre@ville.montreal.qc.ca with the following information:
      • The open-source project for which the contribution will be made
        • URL of the project
        • Licence used by the project
        • If a CLA must be signed to contribute to the project
      • The City project associated with the contribution
      • The type of contribution (new functionality, bug fix, documentation, etc)
      • Any other relevant information
  3. Acquainting yourself with the project contribution process:
    1. Reading the project’s README and CONTRIBUTING documents, if available, to understand the contribution process.
    2. Examining one or two prior approved contributions to determine the steps to follow.
  4. Creating or modifying elements of the solutions to be contributed.
  5. Beginning the contribution process.
  6. Monitoring the process until the contribution is incorporated or rejected.

Steps 2, 3 and 4 can be performed simultaneously if the project is approved for contributions from the city. Steps 5 and 6 cannot be started until the previous steps have been completed.