Newer
Older
.. _contents:
=======================
Developer Documentation
=======================
.. toctree::
:hidden:
DevelopmentTeam
These pages contain the developer documentation for mantid. They are aimed at those who are modifying the
source code of the project. For user documentation please see :ref:`here <mantid:contents>`.
Meet the :ref:`team <DevelopmentTeam>`.
======
Guides
======
.. toctree::
:hidden:
BuildingOnOSX
BuildingWithCMake
BuildingVATES
Standards/index
DoxygenSetup
Python3
:doc:`DeveloperAccounts`
Details of the accounts required for developers.
Describes the process of obtaining and building the mantid code base.
:doc:`Standards <Standards/index>`
Details of coding and documentation standards for the project. Includes specifics regarding algorithms.
:doc:`Testing <Testing/index>`
Details of unscripted and acceptance testing.
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
:doc:`DoxygenSetup`
Configure a doxygen build locally.
:doc:`Python3`
Building with Python 3 (Linux only).
===================
Development Process
===================
.. toctree::
:hidden:
DevelopmentAndReleaseCycle
Communication
IssueTracking
GitWorkflow
AutomatedBuildProcess
JenkinsConfiguration
ReleaseChecklist
PatchReleaseChecklist
TSC
DesignDocumentGuides
:doc:`DevelopmentAndReleaseCycle`
An overview of the development cycle.
:doc:`Communication`
Details various methods of communication used within the team.
:doc:`IssueTracking`
Describes how issues are tracked over the project.
:doc:`GitWorkflow`
Details the workflow used development with git and GitHub.
:doc:`AutomatedBuildProcess`
Details the interaction of pull requests with the Jenkins CI builds.
:doc:`JenkinsConfiguration`
Describes the setup of Jenkins system and how to add a new slave.
:doc:`ReleaseChecklist`
How to perform a full release of Mantid.
:doc:`PatchReleaseChecklist`
How to perform a patch release of Mantid.
:doc:`TSC`
Overview of the role of the technical steering committee.
:doc:`DesignDocumentGuides`
How to write a good design document.
=====
Tools
=====
.. toctree::
:hidden:
ToolsOverview
ProfilingWithValgrind
FlowchartCreation
VisualStudioBuildImpact
GettingStartedWithPyCharm
:doc:`ToolsOverview`
Describes ``class_maker``, ``valgrind`` and related tools.
:doc:`ProfilingWithValgrind`
How to use valgrind to profile your code.
:doc:`FlowchartCreation`
Describes how to create a flow chart with dot.
:doc:`VisualStudioBuildImpact`
Provides a script to reduce the impact of Visual Studio on machine performance.
:doc:`GettingStartedWithPyCharm`
Describes how to set up the PyCharm interpreter, and debug python code (Windows/Linux only).
:doc:`Eclipse`
Guide to setting up Eclipse on Ubuntu
=======
Testing
=======
.. toctree::
:hidden:
RunningTheUnitTests
DebuggingUnitTests
UnitTestGoodPractice
ReviewingAPullRequest
WritingPerformanceTests
SystemTests
DataFilesForTesting
TestingUtilities
:doc:`RunningTheUnitTests`
Details on how to run the suite of unit tests.
:doc:`DebuggingUnitTests`
Details on how to debug the suite of unit tests.
:doc:`UnitTestGoodPractice`
Guidance on writing good unit tests.
:doc:`ReviewingAPullRequest`
What to do when reviewing an individual contribution to mantid.
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
:doc:`WritingPerformanceTests`
A walk through of how to write a performance test.
:doc:`SystemTests`
Guidance on working with the system tests.
:doc:`DataFilesForTesting`
How to work with test data files in the mantid repository.
:doc:`TestingUtilities`
Helper utlities used for testing.
===============
GUI Development
===============
.. toctree::
:hidden:
GUIDesignGuidelines
MVPTutorial/index
QtDesignerForPython
:doc:`GUIDesignGuidelines`
Gives some guidelines to consider when developing a new graphical user interface.
:doc:`MVP Tutorial <MVPTutorial/index>`
A hands-on tutorial on how to implement a user GUI using the Model-View-Presenter (MVP) pattern.
:doc:`QtDesignerForPython`
Describes how to use the Qt designer to produce GUI views.
===================
Component Overviews
===================
.. toctree::
:maxdepth: 1
AlgorithmMPISupport
BatchWidget/index
EventWorkspaceDev
LoadAlgorithmHook
Logging
MultiThreadingInAlgorithms
PythonVSCppAlgorithms
RemoteJobSubmissionAPI
Widgets/Plotting
WritingAnAlgorithm
WritingCustomConvertToMDTransformation