How to Contribute and Request Features

How To Request Features

All software needs user feedback and feature requests, to grow and maintain alignment with the needs of its users.

OpenDroneMap is FOSS software. Free and open source (FOSS) projects are interesting from the inside and outside: from the outside, successful ones feel like they should be able to do anything, and it’s hard to know what a reasonable request is. From the inside of a project, they can feel very resource constrained: largely by time, money, and opportunity overload.

Demanding that a feature be implemented is probably not going to convince the development team to do so. Imagine if somebody knocked on your door and asked you to « stop reading this page right now and come to my house to cook me dinner! ». Your first response might very reasonably be « who on earth is this person and why should I spend my time and energy fulfilling his agenda instead of my own? ».

Suggesting that a feature be implemented is a more effective (and cordial) way to ask for new features, especially if you’re prepared to offer some of your own resources (time, funds or both) to help get the feature implemented. Explaining why your suggestion can benefit others can also help. If the feature benefits you exclusively, it might be harder to convince others to do the work for you.

A feature request can be submitted as issues on the applicable Github repository (e.g., WebODM or ODM or similar) or more simply as a discussion topic on the community forum. Try to start by searching these sources to see if someone else has already brought it up. Sometimes a feature is already in the works, or has at least been discussed.

To request the addition of support for new drone cameras: please share a set of test images on the datasets channel on the forum. Without test images there’s not much the developers can do.

And importantly, the trick is to listen: if someone within the project says: « This is a big lift, we need MONEY or TIME or SOMEONE TO HELP CODE IT » (or possibly a combination of the three) then there are two answers that work really well in response:

Ok. I didn’t know it was a big feature request! I hope someone comes along with the necessary resources. As a community member, I would be happy to be an early user and tester!

or

Let’s figure out if we can put together the resources to get this done! Here’s what I can contribute toward it: …

We are glad you are excited to see new features added to the project. Some new features need support, and some are easier to implement. We’ll do our best to help you understand where your request falls, and we appreciate any support you can provide.

Comment contribuer

OpenDroneMap est dépendant des contributions de sa communauté. Vous pouvez contribuer de nombreuses façons, même si vous n’êtes pas programmeur.

Forum de la communauté

Si vous voulez vous impliquer, rencontrez un soucis ou voulez contacter quelqu’un, le forum <https://community.opendronemap.org/>`_  est l’endroit par lequel commencer. Vous pourriez y trouver vos questions déjà répondues, ou des astuces et ressources utiles. Vous pouvez aussi y partager vos données libres pour que les autres les utilise. C’est aussi le meilleur endroit pour y partager vos bugs ou partager vos suggestions d’amélioration avec les développeurs.

Signaler des bogues

Les bugs sont suivis en tant que Github Issues. Veuillez créer un problème dans le référentiel et le marquer avec la balise Bug.

Expliquez le problème et incluez des détails supplémentaires pour aider les responsables à reproduire le problème :

  • Utilisez un titre et un descriptif clair pour le problème afin d’identifier le problème.

  • Décrivez les étapes exactes qui reproduisent le problème avec autant de détails que possible. Par exemple, commencez par expliquer comment vous exécutez ODM (Docker, Vagrant, etc.), par ex. quelle commande exactement vous avez utilisée dans le terminal. Lorsque vous répertoriez les étapes, ne vous contentez pas de dire ce que vous avez fait, mais expliquez comment vous l’avez fait.

  • Fournissez des exemples spécifiques pour illustrer les étapes. Incluez des liens vers des fichiers ou des projets GitHub, ou des extraits de code à copier/coller, que vous utilisez dans ces exemples. Si vous fournissez des extraits de code dans le problème, utilisez Markdown code blocks.

  • Décrivez le comportement que vous avez observé après avoir suivi les étapes et indiquez quel est exactement le problème avec ce comportement.

  • Expliquez quel comportement vous vous attendiez à voir à la place et pourquoi.

  • Incluez des captures d’écran et des GIF animés qui vous montrent suivre les étapes décrites et démontrent clairement le problème. Vous pouvez utiliser cet outil pour enregistrer des GIF sur macOS et Windows, et cet outil ou celui-ci sur Linux.

  • Si le problème est lié aux performances, veuillez publier les spécifications de votre machine (machine hôte et machine invitée).

  • Si le problème n’a pas été déclenché par une action spécifique, décrivez ce que vous faisiez avant que le problème ne survienne et partagez plus d’informations en suivant les instructions ci-dessous.

Incluez des détails sur votre configuration et votre environnement :

  • Quelle version d’ODM utilisez-vous ? Une version stable ? un clone de maître ?

  • Quels sont le nom et la version du système d’exploitation que vous utilisez ?

  • Exécutez-vous ODM dans une machine virtuelle ou Docker ? Si oui, quel logiciel VM utilisez-vous et quels systèmes d’exploitation et versions sont utilisés pour l’hôte et l’invité ?

Modèle de soumission de rapports de bogues

[Short description of problem here]

**Reproduction Steps:**

1. [First Step]
2. [Second Step]
3. [Other Steps...]

**Expected behavior:**

[Describe expected behavior here]

**Observed behavior:**

[Describe observed behavior here]

**Screenshots and GIFs**

![Screenshots and GIFs which follow reproduction steps to demonstrate the problem](url)

**ODM version:** [Enter ODM version here]
**OS and version:** [Enter OS name and version here]

**Additional information:**

* Problem started happening recently, didn't happen in an older version of ODM: [Yes/No]
* Problem can be reliably reproduced, doesn't happen randomly: [Yes/No]
* Problem happens with all datasets and projects, not only some datasets or projects: [Yes/No]

Demande d’extraction

  • Incluez des captures d’écran et des GIF animés dans votre pull request dans la mesure du possible.

  • Suivez le guide de style Python PEP8.

  • Terminez les fichiers avec une nouvelle ligne.

  • Évitez le code dépendant de la plate-forme :
    • Utilisez require(“fs-plus”).getHomeDirectory() pour obtenir le répertoire personnel.

    • Utilisez path.join() pour concaténer les noms de fichiers.

    • Utilisez os.tmpdir() plutôt que /tmp lorsque vous devez référencer le répertoire temporaire.

  • Utilisation d’un retour simple lors du retour explicite à la fin d’une fonction.
    • Ne retourne pas null, retourne undefined, null ou undefined

Apprenez à éditer et aidez à améliorer cette page!