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.
Como contribuir
OpenDroneMap depende de las contribuciones de la comunidad. Puedes contribuir de muchas formas, aunque no seas programador.
Foro comunitario
Si quieres involucrarte, tienes un porblema o quieres conectarte, el foro es un excelente lugar para comenzar. Es posible que que encuentres tus preguntas ya respondidas o puedes encontrar consejos utiles y recursos. Tambien puedes contribuir con tus conjuntos de datos de acceso abierto para que otros los puedan explorar. Es un buen lugar para revisar antes de enviar informes de errores oponerse ne contacto con los desarrolladores antes de escribir una nueva caracterisitca.
Reportando Errores
Errores son rastreados como problemas de Github. Por favor crea un porblema en el repositorio y etiquetalo con la etiqueta del error.
Explica el problema e incluye detalles adicionales para ayudar a los mantenedores a reproducir el problema:
Usa un titulo claro y descriptivo para identificar el problema.
Describe los pasos exactos que reproducen el problema lo mas detalladamente posible. Por ejemplo, comienza por explicar como corres ODM (Docker, Vagrant, etc), exactamente que comando usaste en el terminal. Al listar los pasos, no solo digas que hiciste, explica como lo hiciste.
Provee ejemplos especificos para demonstrar los pasos Incluye links a archivos o proyectos de GitHub, o snippets que puedan ser copiados y pegados, que usaste en los ejemplos. Si vas a proveer snippets en el problema, usa Markdown code blocks.
Describe el comportamiento que observaste al seguir los pasos y señala cual es exactamente el problema en ese comportamiento.
Explica que comportamiento esperabas observar y porque
Incluye capturas de pantalla y GIF animados que muestren como seguiste los pasos descritos y demuestren claramente el problema. Puedes usar esta herramienta para grabar GIFs en macOS y Windows, y esta herramienta o esta en Linux.
Si el problema es relacionado a rendimiento, por favor postea las especificaciones de tu maquina (maquina host y guest).
Si el problema no fue desencadenado por una accion especifica, describe lo que estabas haciendo antes de que el problema pasara y comparte mas informacion usando las pautas de abajo.
Incluye detalles de tu configuracion y ambiente:
Que version de ODM estas usando? Un lanzamiento estable? un clon de un master?
Cual es el nombre y la version del sistema operativo que estas usando?
Estas usando ODM en una maquina virtual o Docker? Si es asi, que software de maquina virtualestas usando y que sistema operativo y versiones estas usando para el host y el guest?
Plantilla Para Enviar Informes de Errores
[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]
Solicitudes de Extraxion
Incluye capturas de pantalla y GIFs animados en tus solicitudes de extraccion siempre que sea posible.
Sigue la guia de estilo de PEP8 Python.
Finaliza archivos con una nueva linea.
- Evita codigo dependiente de la plataforma.
Usa require(“fs-plus”).getHomeDirectory() para ir al directorio de inicio.
Usa pth.join() para concatenar nombres de archivos.
Usa os.tmpdir() en lugar de /tmp cuando necesites referenciar al directorio temporal.
- Usando un retorno plano cuando retorna al final de una funcion.
No reotrnar null, retornar indefinido, null o undefinido
Aprende a editar y ayuda a mejorar esta página!