Tracker: Difference between revisions

From FreeCAD Documentation
(completed for now == GitHub and MantisBT == section (still needs a few more tweeks))
No edit summary
 
(60 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<languages/>
<translate>
<translate>
<!--T:1-->
The adress of our bug tracker is:


<!--T:2-->
<!--T:28-->
{{Docnav
http://www.freecadweb.org/tracker
|[[Third_Party_Tools|Third Party Tools]]
|[[Debugging|Debugging]]
}}

</translate>
{{TOCright}}
<translate>

<!--T:34-->
{{VeryImportantMessage|In February 2022 FreeCAD bug tracking was migrated to [https://github.com/FreeCAD/FreeCAD/issues GitHub Issues]. The Mantis bug tracker described below is now in read-only mode.}}

<!--T:33-->
[[File:Mantis_logo_262x90.png|center|link=https://freecadweb.org/tracker/MantisBT is the bugtracker framework FreeCAD uses]]


<!--T:3-->
<!--T:3-->
There you can report bugs, submit feature requests, patches, or request to merge your branch if you developed something using git. The tracker is divided into modules, so please be specific and file your request in the appropriate subsection. In case of doubt, leave it in the "FreeCAD" section.
The [https://www.freecadweb.org/tracker FreeCAD BugTracker] is the place toː report bugs, submit feature requests, patches, or request to merge your branch if you developed something using Git. The tracker is divided into 'Workbenches', so please be specific and file your request in the appropriate subsection. In case of doubt, leave it in the "FreeCAD" section.



<!--T:15-->
<!--T:15-->
== Recommended Workflow ==
Please before creating tickets, always first discuss bugs in the [http://forum.freecadweb.org/viewforum.php?f=3 Help forum] and feature requests in the [http://forum.freecadweb.org/viewforum.php?f=8 Open discussion forum].
[[File:Bugreport-workflow.png|center]]

<!--T:23-->
As shown in the above flowchart, before creating tickets, please always first search the forums and bugtracker to discover if your issue is a known issue. This saves a lot of time/work for developers and volunteers that could be spending said time making FreeCAD even more awesome.


== Reporting bugs == <!--T:4-->
== Reporting bugs == <!--T:4-->


<!--T:5-->
<!--T:5-->
If you think you might have found a bug, you are welcome to report it there so long as you have first discussed the matter in the appropriate forum. But before reporting a bug, please check the following items:
If you think you might have found a bug, you are welcome to report it as long as you have followed our step-by-step guidelinesː


<!--T:6-->
<!--T:6-->
* Make sure you're using the most up to date version of FreeCAD. '''NOTEː''' your bug may be fixed in the Development (unstable) version. The average user runs the stable version of FC.
* Make sure your bug is really a bug, that is, something that should be working and that is not working. If you are not sure, don't hesitate to explain your problem on the [http://forum.freecadweb.org/ forum] and ask what to do.
* Before submitting anything, read the [[FAQ|frequently asked questions]], do a search on the [http://forum.freecadweb.org/ forum], and make sure the same bug hasn't been reported before, by doing a search on the bug tracker.
* Make sure your bug is really a bug, that is, something that should be working but isn't. '''Make sure the same bug hasn't been reported before by first searching the bugtracker and forum'''.
** Rememberː if you aren't sure, please don't hesitate to explain your problem/bug in the [http://forum.freecadweb.org/viewforum.php?f=3 Help forum] and ask what to do.
** '''Note'''ː before posting to the forum please read the [https://forum.freecadweb.org/viewtopic.php?f=3&t=2264 Forum Guidelines].
* Describe as clearly as possible the problem, and how it can be reproduced. If we can not verify the bug, we might not be able to fix it.
* Describe as clearly as possible the problem, and how it can be reproduced. If we can not verify the bug, we might not be able to fix it.
** This means '''reporting in a clear, well-formatted, step-by-step fashion''' so even an amateur user could reproduce.
* Include all the information from the "Copy to Clipboard" button in the Help (menu) -> About FreeCAD dialogue and do so from either the Part or PartDesign workbench so that your data will include your OCC or OCE version.
** Recommendedː '''Screenshots''' of the bug are also very helpful to include. Windows users: please do not attach screen captures in Word or PDF format. Use the Windows Snipping tool to save your capture as a PNG image.
** Recommendedː Even better, an '''Animated gif or Screencast''' would also increase the likelihood of reproducing the issue.
* '''Add an example FreeCAD file''' (.FCStd file) so devs/testers can quickly reproduce the bug.
** Please don't zip your *.FCStd file, it is already zipped.
** File attachments are limited in size. If your *.FCStd file is too big to attach, you can use an online storage service (many are free like Google Drive, Microsoft OneDrive, Dropbox).
* Include all the information from the "Copy to Clipboard" button in the '''Help (menu) -> About FreeCAD''' dialogue. Make sure your data includes your OCC or OCE version.
* Please file one separate report for each bug.
* Please file one separate report for each bug.
* If you are on a linux system and your bug causes a crash in FreeCAD, you can try running a debug backtrace: From a terminal run ''gdb freecad'' (assuming package gdb is installed), then, inside gdb, type ''run'' . FreeCAD will then run. After the crash happens, type ''bt'' , to get the full backtrace. Include that backtrace in your bug report.
* If your bug causes a crash in FreeCAD and you're on a system that supports it you can try running a '''debug backtrace''' and attach said trace to the ticket. This can save devs a lot of time pinpointing the source of the crash. See [[Debugging|Debugging]] for more details.


== Requesting features == <!--T:7-->
== Requesting features == <!--T:7-->


<!--T:8-->
<!--T:8-->
If you want something to appear in FreeCAD that is not implemented yet, <u>it is not a bug but a feature request</u>. You can also submit it on the same tracker (file it under ''feature request'' instead of bug), but keep in mind there are no guarantees that your wish will be fulfilled.
If you want something to appear in FreeCAD that is not implemented yet, <u>it is not a bug but a feature request</u>.

<!--T:24-->
# '''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ː
# Start a forum thread to discuss your feature request with the community via the [http://forum.freecadweb.org/viewforum.php?f=8 Open Discussion forum].
# 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.
[[File:MantisBT-setting-Feature-Request.jpg|thumb|FreeCAD Bugtracker report page - use the dropdown to correctly designate what the ticket is]]
[[File:MantisBT-setting-Feature-Request.jpg|thumb|FreeCAD Bugtracker report page - use the dropdown to correctly designate what the ticket is]]


Line 34: Line 66:


<!--T:10-->
<!--T:10-->
In case you have programmed a bug fix, an extension or something else that can be of public use in FreeCAD, create a patch using the Git diff tool and submit it on the same tracker (file it as patch).
In case you have programmed a bug fix, an extension or something else that can be of public use in FreeCAD, submit your patch as a "Pull Request" at [https://github.com/FreeCAD/FreeCAD GitHub].
# For a large, complex, or behavior-changing submission, open a forum thread in the [https://forum.freecadweb.org/viewforum.php?f=10 Developer subforum] to announce and discuss your patch. For small bugfixes this is not necessary.
# Submit your Pull Request (PR) to the [http://github.com/FreeCAD/FreeCAD FreeCAD GitHub repo]. The PR submission message will be pre-filled with a checklist for you to follow to ensure that your submission has the best chance at speedy acceptance. If you haven't worked with {{incode|git}} before or are unfamiliar with submitting a PR to github, please read our introduction to [[Source_code_management|github]] wiki page.
# Be present for the discussion, both in the forum and in the GitHub pull request, so that your code can potentially be merged more effectively.


== Requesting merge == <!--T:11-->
== Requesting merge == <!--T:11-->


<!--T:12-->
<!--T:12-->
(Same guidelines as [https://www.freecadweb.org/wiki/Tracker#Submitting_patches Submiting patches])
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,bitbucket, sourceforge...) and then give the URL of your branch in your merge request.

<!--T:26-->
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 == <!--T:16-->
== MantisBT Tips and Tricks == <!--T:16-->

MantisBT (Mantis Bug Tracker) has it's own unique markup. Here is a list of useful ones:
<!--T:21-->
=== 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
* '''@'''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
[[File:mantisbt-mention-example.jpg|center|600px]]
[[File:mantisbt-mention-example.jpg|center|600px]]
Line 48: Line 89:
*: '''Note''': if you hover over a ticket it will show you the summary + if the ticket is closed, it will be struck-through like <s>#1234</s>.
*: '''Note''': if you hover over a ticket it will show you the summary + if the ticket is closed, it will be struck-through like <s>#1234</s>.
[[File:mantisbt-ticket-shortcut-example.jpg|center|600px]]
[[File:mantisbt-ticket-shortcut-example.jpg|center|600px]]
* '''~'''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
* '''~'''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
[[File:mantisbt-comment-shortcut-example.jpg|center|600px]]
[[File:mantisbt-comment-shortcut-example.jpg|center|600px]]
* '''<nowiki><del></del></nowiki>''' - Using these tags will <s>strikeout text</s>.
* '''<nowiki><del></del></nowiki>''' - Using these tags will <s>strikeout text</s>.
Line 54: Line 95:
* '''<nowiki><code></code></nowiki>''' - To present a line or block of code, use this tag and it will colorize and differentiate it elegantly.
* '''<nowiki><code></code></nowiki>''' - To present a line or block of code, use this tag and it will colorize and differentiate it elegantly.
[[File:mantisbt-colorized-code-example.jpg|center|600px]]
[[File:mantisbt-colorized-code-example.jpg|center|600px]]

* '''c:FreeCAD:git commit:''' - Part of the MantisBT Source-Integration plugin which will link to the FreeCAD GitHub git commit. '''c''' stands for 'commit'. FreeCAD stands for the FC GitHub repo. 'git commit' is the specific git commit hash to reference. Note: the trailing colon is necessary.
<!--T:22-->
* '''d:FreeCAD:diff:''' - similar to the above, but shows the diff
=== MantisBT BBCode ===
* '''p:FreeCAD:pullrequest:''' - similar to the above but should show the Pull Request.
In addition to the above [[Tracker#MantisBT_Markup|MantisBT Markup]] one also has the possibility to use BBCode format. For a comprehensive list see the [https://github.com/mantisbt-plugins/BBCodePlus#supported-bbcode-tags BBCode plus plugin page]. Here is a list of supported BBCode tagsː
<small><code><br />
[img][/img] - Images <br />
[url][/url] - Links <br />
[email][/email] - Email addresses <br />
[color=red][/color] - Colored text <br />
[highlight=yellow][/highlight] - Highlighted text <br />
[size][/size] - Font size <br />
[list][/list] - Lists <br />
[list=1][/list] - Numbered lists (number is starting number) <br />
[*] - List items <br />
[b][/b] - Bold <br />
[u][/u] - underline <br />
[i][/i] - Italic <br />
[s][/s] - Strikethrough <br />
[left][/left] - Left align <br />
[center][/center] - Center <br />
[right][/right] - Right align <br />
[justify][/justify] - Justify <br />
[hr] - Horizontal rule <br />
[sub][/sub] - Subscript <br />
[sup][/sup] - Superscript <br />
[table][/table] - Table <br />
[table=1][/table] - Table with border of specified width <br />
[tr][/tr] - Table row <br />
[td][/td] - Table column <br />
[code][/code] - Code block <br />
[code=sql][/code] - Code block with language definition <br />
[code start=3][/code] - Code block with line numbers starting at number <br />
[quote][/quote] - Quote by *someone* (no name) <br />
[quote=name][/quote] - Quote by *name* <br />
</code>
</small>

<!--T:32-->
=== MantisBT <=> GitHub Markup ===
Below are special MantisBT Source-Integration plugin keywords which will link to the FreeCAD GitHub repo. See [[Tracker#GitHub_and_MantisBT|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ː <code>cːFreeCADː709d2f325db0490016807b8fa6f49d1c867b6bd8ː</code>
* '''d:FreeCAD:git commit hash:''' - similar to the above, '''d''' stands for 'diff' which will provide a Diff view of the commit. Exampleː <code>dːFreeCADː709d2f325db0490016807b8fa6f49d1c867b6bd8ː</code>
* '''p:FreeCAD:pullrequest:''' - similar to the above, '''p''' stands for Pull Request. Exampleː <code>pːFreeCADː498ː</code>
[[File:mantisbt-source-integration-markup.jpg|center|600px]]
[[File:mantisbt-source-integration-markup.jpg|center|600px]]
{{clear}}
{{clear}}


<!--T:17-->
== GitHub and MantisBT ==
== GitHub and MantisBT ==
The FreeCAD bugtracker has a plug-in called [https://github.com/mantisbt-plugins/source-integration Source Integration] which essentially ties both the FreeCAD GitHub repo to the tracker. It makes it easier to track and associate git commits with their respective tickets. The Source Integration plugin scans the git commit messages for specific keywords in order to execute the following actions:
The FreeCAD bugtracker has a plug-in called [https://github.com/mantisbt-plugins/source-integration 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:'''

=== Attaching a git commit to a ticket ===
<!--T:18-->
'''Note''' The below keywords need to be added in the <u>git commit message</u> and not the PR subject

<!--T:19-->
=== 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:
The format MantisBT will recognize:
* bug #1234
* bug #1234
Line 70: Line 158:
* report #1234
* report #1234
* reports #1234, #5678
* reports #1234, #5678
<small>For the inquisitive here is the regex MantisBT uses for this operation: <br>
<small>For the inquisitive here is the regex MantisBT uses for this operation: <br />
<code>/(?:bugs?|issues?|reports?)+\s*:?\s+(?:#(?:\d+)[,\.\s]*)+/i</code></small>
<code>/(?:bugs?|issues?|reports?)+\s*:?\s+(?:#(?:\d+)[,\.\s]*)+/i</code></small>

<!--T:20-->
=== Remotely resolving a ticket ===
=== Remotely resolving a ticket ===
The format MantisBT will recognize:
The format MantisBT will recognize:
* fix #1234
* fix #1234
* fixed #1234
* fixes #1234
* fixed #1234, #5678
* fixed #1234, #5678
* fixes #1234, #5678
* resolve #1234
* resolve #1234
* resolved #1234
* resolves #1234
* resolved #1234, #5678
* resolved #1234, #5678
* resolves #1234, #5678
<small>For the inquisitive here is the regex MantisBT uses for this operation: <br>
<small>For the inquisitive here is the regex MantisBT uses for this operation: <br />
<code>/(?:fixe?d?s?|resolved?s?)+\s*:?\s+(?:#(?:\d+)[,\.\s]*)+/i</code></small>
<code>/(?:fixe?d?s?|resolved?s?)+\s*:?\s+(?:#(?:\d+)[,\.\s]*)+/i</code></small>



<!--T:13-->
<!--T:13-->
{{Docnav
{{docnav|Licence|CompileOnWindows}}
|[[Third_Party_Tools|Third Party Tools]]

|[[Debugging|Debugging]]
<!--T:14-->
}}
[[Category:Developer Documentation]]


</translate>
</translate>
{{Userdocnavi{{#translation:}}}}
{{clear}}
[[Category:Developer Documentation{{#translation:}}]]
<languages/>
[[Category:Administration{{#translation:}}]]

Latest revision as of 21:42, 21 November 2023

In February 2022 FreeCAD bug tracking was migrated to GitHub Issues. The Mantis bug tracker described below is now in read-only mode.
link=https://freecadweb.org/tracker/MantisBT is the bugtracker framework FreeCAD uses
link=https://freecadweb.org/tracker/MantisBT is the bugtracker framework FreeCAD uses

The FreeCAD BugTracker is the place toː report bugs, submit feature requests, patches, or request to merge your branch if you developed something using Git. The tracker is divided into 'Workbenches', so please be specific and file your request in the appropriate subsection. In case of doubt, leave it in the "FreeCAD" section.


Recommended Workflow

As shown in the above flowchart, before creating tickets, please always first search the forums and bugtracker to discover if your issue is a known issue. This saves a lot of time/work for developers and volunteers that could be spending said time making FreeCAD even more awesome.

Reporting bugs

If you think you might have found a bug, you are welcome to report it as long as you have followed our step-by-step guidelinesː

  • Make sure you're using the most up to date version of FreeCAD. NOTEː your bug may be fixed in the Development (unstable) version. The average user runs the stable version of FC.
  • Make sure your bug is really a bug, that is, something that should be working but isn't. Make sure the same bug hasn't been reported before by first searching the bugtracker and forum.
    • Rememberː if you aren't sure, please don't hesitate to explain your problem/bug in the Help forum and ask what to do.
    • Noteː before posting to the forum please read the Forum Guidelines.
  • Describe as clearly as possible the problem, and how it can be reproduced. If we can not verify the bug, we might not be able to fix it.
    • This means reporting in a clear, well-formatted, step-by-step fashion so even an amateur user could reproduce.
    • Recommendedː Screenshots of the bug are also very helpful to include. Windows users: please do not attach screen captures in Word or PDF format. Use the Windows Snipping tool to save your capture as a PNG image.
    • Recommendedː Even better, an Animated gif or Screencast would also increase the likelihood of reproducing the issue.
  • Add an example FreeCAD file (.FCStd file) so devs/testers can quickly reproduce the bug.
    • Please don't zip your *.FCStd file, it is already zipped.
    • File attachments are limited in size. If your *.FCStd file is too big to attach, you can use an online storage service (many are free like Google Drive, Microsoft OneDrive, Dropbox).
  • Include all the information from the "Copy to Clipboard" button in the Help (menu) -> About FreeCAD dialogue. Make sure your data includes your OCC or OCE version.
  • Please file one separate report for each bug.
  • If your bug causes a crash in FreeCAD and you're on a system that supports it you can try running a debug backtrace and attach said trace to the ticket. This can save devs a lot of time pinpointing the source of the crash. See Debugging for more details.

Requesting features

If you want something to appear in FreeCAD that is not implemented yet, it is not a bug but a feature request.

  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

Submitting patches

In case you have programmed a bug fix, an extension or something else that can be of public use in FreeCAD, submit your patch as a "Pull Request" at GitHub.

  1. For a large, complex, or behavior-changing submission, open a forum thread in the Developer subforum to announce and discuss your patch. For small bugfixes this is not necessary.
  2. Submit your Pull Request (PR) to the FreeCAD GitHub repo. The PR submission message will be pre-filled with a checklist for you to follow to ensure that your submission has the best chance at speedy acceptance. If you haven't worked with git before or are unfamiliar with submitting a PR to github, please read our introduction to github wiki page.
  3. Be present for the discussion, both in the forum and in the GitHub pull request, so that your code can potentially be merged more effectively.

Requesting merge

(Same guidelines as Submiting patches)

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 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 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