Traqueur de bogues

From FreeCAD Documentation
Revision as of 10:04, 16 November 2019 by David69 (talk | contribs)
Licence
Bug Triage
link=https://freecadweb.org/tracker/MantisBT est le framework de bugtracker que FreeCAD utilise
link=https://freecadweb.org/tracker/MantisBT est le framework de bugtracker que FreeCAD utilise

Le traqueur de bogues FreeCAD est un endroit pour rapporter des bogues, soumettre des demandes de fonctionnalités, de correctifs, ou encore faire une demande de fusion de votre branche si vous développez avec Git. Le traqueur est divisé en plusieurs sections de travail, donc s'il vous plait soyez rigoureux et remplissez votre demande dans la catégorie appropriée. En cas de doutes, laissez le dans la section "FreeCAD".


Flux de travail recommandé

Comme vous pouvez le voir dans l'organigramme présenté ci-dessus, avant de créer des tickets, prenez le temps de faire des recherches dans les forums et le traqueur de bogues pour vérifier si votre problème n'est pas déjà référencé. Ceci afin d'éviter de gaspiller un temps de travail "au combien précieux" pour les développeurs et les volontaires qui pourraient le consacrer davantage au développement de l'application.

Signaler les bugs

Si vous pensez que vous pourriez avoir trouvé un bogue (dysfonctionnement ou erreur), vous êtes invité de le signaler si vous avez suivi nos instructions pas à pas.

  • Assurez-vous que vous utilisez la version la plus récente de FreeCAD. REMARQUE:votre bug peut être corrigé dans la version de développement (instable). L'utilisateur lambda exécute la version stable de FC.
  • Assurez-vous que votre bug est vraiment un bug, c’est-à-dire quelque chose qui devrait fonctionner mais ne l’est pas. Assurez-vous que le même bug n'a pas été signalé auparavant en effectuant d'abord une recherche dans le bugtracker et le forum.
    • N'oubliez pas que si vous n'êtes pas sûr, n'hésitez pas à expliquer votre problème/bug dans le forum d'aide et à demander ce qu'il faut faire.
    • Remarqueː avant de poster sur le forum, veuillez lire les Instructions du forum.
  • Décrivez aussi clairement que possible le problème et comment il peut être reproduit. Si nous ne pouvons pas vérifier le bug, nous ne pourrons peut-être pas le résoudre.
    • Cela signifie rendre compte de manière claire, bien formatée et étape par étape afin que même un utilisateur amateur puisse le reproduire.
    • Recommandéː Les captures d'écran du bug sont également très utiles à inclure. Utilisateurs Windows: veuillez ne pas joindre de captures d'écran au format Word ou PDF. Utilisez l’outil Capture de Windows pour enregistrer votre capture en tant qu’image PNG.
    • Recommandéː encore mieux, un Animation gif ou Screencast augmenterait également la probabilité de reproduire le problème.
  • Ajouter un exemple de fichier FreeCAD (fichier .FCStd) afin que developpeurs/testeurs puissent reproduire rapidement le bug.
    • Veuillez ne pas compresser votre fichier *.FCStd, il est déjà compressé.
    • La taille des pièces jointes est limitée. Si votre fichier *.FCStd est trop volumineux pour être joint, vous pouvez utiliser un service de stockage en ligne (beaucoup sont gratuits).
  • Inclure toutes les informations du bouton "Copier dans le presse-papier" dans le dialogue Aide (menu) -> À propos de FreeCAD. Assurez-vous que vos données incluent votre version OCC ou OCE.
  • Merci de déposer un rapport séparé pour chaque bug.
  • Si votre bug provoque un crash dans FreeCAD et que vous êtes sur un système qui le supporte, vous pouvez essayer de lancer une trace de debugage et joindre cette trace au ticket. Cela peut permettre aux développeurs à gagner beaucoup de temps à identifier la source du crash. Voir Debugging pour plus de détails.

Demande de fonctionnalités

Si vous désirez une fonctionnalité particulière, qui n'est pas encore implémentée dans FreeCAD, ce n'est pas un bug, mais une demande de fonctionnalité.

Vous pouvez également soumettre une proposition sur mantis bug tracker même, (envoyez-la comme demande de fonctionnalité au lieu d'un bug), mais gardez bien à l'esprit, qu'il n'y a aucune garantie que votre souhait soit exaucé.

  1. IMPORTANTː Before requesting a potential Feature Request please be certain that you are the first one doing so by searching the forums and the bugtracker. If you have concluded that there are no pre-existing tickets/discussions the next step is toː
  2. Start a forum thread to discuss your feature request with the community via the Open Discussion forum.
  3. Once the community agrees that this is a valid Feature, you then can open a ticket on the tracker (file it under feature request instead of bug).
  • NOTE #1 To keep things organized please remember to link the forum thread URL into the ticket and the ticket number (as a link) in to the forum thread.
  • NOTE #2 Keep in mind there are no guarantees that your wish will be fulfilled.
FreeCAD Bugtracker report page - use the dropdown to correctly designate what the ticket is

Soumettre un correctif (patch)

Dans le cas, où vous avez programmé une correction d'un bug (patch), une extension ou autre chose qui peut être d'utilité publique dans FreeCAD, créer un patch à l'aide de l'outil Subversion diff tool et de le soumettre sur mantis bug tracker et envoyez-le comme patch.

Addendumː FreeCAD development has switched to the GitHub development model so the workflow for submitting patches has been greatly enhanced/streamlined by submitting Pull Requests.

  • Open a forum thread in the Developer subforum to announce and discuss your patch.
  • Submit your PR to the FreeCAD GitHub repo. Be sure to link the forum thread in to the git commit summary.
  • Paste the PR link in to the forum thread for the devs/testers to test.
  • Be present for the discussion so that your code can potentially be merged more effectively.

NOTEː the FreeCAD community recommends to first discuss any large revision to the source code in advance to save everyone time.

Requesting merge

Si vous avez créé une branche git contenant les modifications que vous aimeriez voir fusionné dans le code FreeCAD, vous pouvez y demander que votre branche soit examinée et fusionnée si les développeurs FreeCAD sont OK avec elle. Vous devez d'abord publier votre branche dans un dépôt git publique (github, bitbucket, sourceforge ...) et donner ensuite l'URL de votre branche dans votre demande de fusion.

If you have created a git branch containing changes that you would like to see merged into the FreeCAD code, you can ask there to have your branch reviewed and merged if the FreeCAD developers are OK with it. You must first publish your branch to a public git repository (github, gitlab, bitbucket, sourceforge etc...) and then give the URL of your branch in your merge request.

MantisBT Tips and Tricks

MantisBT Markup

MantisBT (Mantis Bug Tracker) has it's own unique markup.

  • @mention - works just like on GitHub where if you prepend '@' to someone's username they will receive an email that they have been 'mentioned' in a ticket thread
  • #1234 - By adding a hash tag in front of a number a shortcut to link to another ticket within MantisBT will present.
    Note: if you hover over a ticket it will show you the summary + if the ticket is closed, it will be struck-through like #1234.
  • ~5678 - a shortcut that links to a bug note within a ticket. This can be used to reference someone's response within the thread. Each person that posts will show a unique ~#### number next to their username. If you look at the image in the example, you see that the shortcut is referencing the ticket number:comment number of said ticket
  • <del></del> - Using these tags will strikeout text.
  • <code></code> - To present a line or block of code, use this tag and it will colorize and differentiate it elegantly.

MantisBT BBCode

In addition to the above Tracker/MantisBT ̠Markup one also has the possibility to use BBCode format. For a comprehensive list see the BBCode plus plugin page. Here is a list of supported BBCode tagsː
[img][/img] - Images
[url][/url] - Links
[email][/email] - Email addresses
[color=red][/color] - Colored text
[highlight=yellow][/highlight] - Highlighted text
[size][/size] - Font size
[list][/list] - Lists
[list=1][/list] - Numbered lists (number is starting number)
[*] - List items
[b][/b] - Bold
[u][/u] - underline
[i][/i] - Italic
[s][/s] - Strikethrough
[left][/left] - Left align
[center][/center] - Center
[right][/right] - Right align
[justify][/justify] - Justify
[hr] - Horizontal rule
[sub][/sub] - Subscript
[sup][/sup] - Superscript
[table][/table] - Table
[table=1][/table] - Table with border of specified width
[tr][/tr] - Table row
[td][/td] - Table column
[code][/code] - Code block
[code=sql][/code] - Code block with language definition
[code start=3][/code] - Code block with line numbers starting at number
[quote][/quote] - Quote by *someone* (no name)
[quote=name][/quote] - Quote by *name*

MantisBT <=> GitHub Markup

Below are special MantisBT Source-Integration plugin keywords which will link to the FreeCAD GitHub repo. See Tracker#GitHub_and_MantisBT.

  • c:FreeCAD:git commit hash: - c stands for 'commit'. FreeCAD stands for the FreeCAD GitHub repo. 'git commit hash' is the specific git commit hash to reference. Note: the trailing colon is necessary. Exampleː cːFreeCADː709d2f325db0490016807b8fa6f49d1c867b6bd8ː
  • d:FreeCAD:git commit hash: - similar to the above, d stands for 'diff' which will provide a Diff view of the commit. Exampleː dːFreeCADː709d2f325db0490016807b8fa6f49d1c867b6bd8ː
  • p:FreeCAD:pullrequest: - similar to the above, p stands for Pull Request. Exampleː pːFreeCADː498ː

GitHub and MantisBT

The FreeCAD bugtracker has a plug-in called Source Integration which essentially ties both the FreeCAD GitHub repo to our MantisBT tracker. It makes it easier to track and associate git commits with their respective MantisBT tickets. The Source Integration plugin scans the git commit messages for specific keywords in order to execute the following actions:

Note The below keywords need to be added in the git commit message and not the PR subject

Remotely referencing a ticket

Using this pattern will automagically associate a git commit to a ticket (Note: this will not close the ticket.) The format MantisBT will recognize:

  • bug #1234
  • bugs #1234, #5678
  • issue #1234
  • issues #1234, #5678
  • report #1234
  • reports #1234, #5678

For the inquisitive here is the regex MantisBT uses for this operation:
/(?:bugs?|issues?|reports?)+\s*:?\s+(?:#(?:\d+)[,\.\s]*)+/i

Remotely resolving a ticket

The format MantisBT will recognize:

  • fix #1234
  • fixed #1234
  • fixes #1234
  • fixed #1234, #5678
  • fixes #1234, #5678
  • resolve #1234
  • resolved #1234
  • resolves #1234
  • resolved #1234, #5678
  • resolves #1234, #5678

For the inquisitive here is the regex MantisBT uses for this operation:
/(?:fixe?d?s?|resolved?s?)+\s*:?\s+(?:#(?:\d+)[,\.\s]*)+/i

Related