You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/Contributing/CONTRIBUTING.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ From here you file:
17
17
-**Documentation issue** - Issue with the Mixed Reality Toolkit [documentation](https://microsoft.github.io/MixedRealityToolkit-Unity)
18
18
-**Feature request** - Proposal for a new Mixed Reality Toolkit feature
19
19
20
-
## Proposing Feature Requests
20
+
## Proposing feature requests
21
21
22
22
When requesting a new Mixed Reality Toolkit feature, it is important to document the customer benefit / problem to be solved. Once submitted, a feature request will be reviewed and discussed on GitHub. We encourage open and constructive discussion of each feature proposal to ensure that the work is beneficial to a large segment of customers.
Copy file name to clipboardExpand all lines: Documentation/Contributing/CodingGuidelines.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ MRTK supports a diverse set of users – people who prefer to configure componen
26
26
27
27
All your code should work by BOTH adding a component to a GameObject in a saved scene, and by instantiating that component in code. Tests should include a test case both for instantiating prefabs and instantiating, configuring the component at runtime.
28
28
29
-
### Play-In-Editor is your first and primary target platform
29
+
### Play-in-editor is your first and primary target platform
30
30
31
31
Play-In-Editor is the fastest way to iterate in Unity. Providing ways for our customers to iterate quickly allows them to both develop solutions more quickly and try out more ideas. In other words, maximizing the speed of iteration empowers our customers to achieve more.
32
32
@@ -44,7 +44,7 @@ MRTK is a community project, modified by a diverse range of contributors. These
44
44
45
45
When you fix a bug, write a test to ensure it does not regress in the future. If adding a feature, write tests that verify your feature works. This is required for all UX features except experimental features.
46
46
47
-
## Coding Conventions
47
+
## Coding conventions
48
48
49
49
### Script license information headers
50
50
@@ -55,7 +55,7 @@ All Microsoft employees contributing new files should add the following standard
55
55
// Licensed under the MIT License.
56
56
```
57
57
58
-
### Function / Method summary headers
58
+
### Function / method summary headers
59
59
60
60
All public classes, structs, enums, functions, properties, fields posted to the MRTK should be described as to its purpose and use, exactly as shown below:
61
61
@@ -106,7 +106,7 @@ In the example below, the *Package here* should be filled with the package locat
Always use `PascalCase` for public / protected / virtual properties, and `camelCase` for private properties and fields. The only exception to this is for data structures that require the fields to be serialized by the `JsonUtility`.
141
141
@@ -154,7 +154,7 @@ protected string MyProperty;
154
154
privatestringmyProperty;
155
155
```
156
156
157
-
### Access Modifiers
157
+
### Access modifiers
158
158
159
159
Always declare an access modifier for all fields, properties and methods.
160
160
@@ -188,7 +188,7 @@ public void Bar() { }
188
188
protectedvirtualvoidFooBar() { }
189
189
```
190
190
191
-
### Use Braces
191
+
### Use braces
192
192
193
193
Always use braces after each statement block, and place them on the next line.
194
194
@@ -289,7 +289,7 @@ public class MyClass
289
289
}
290
290
```
291
291
292
-
### Initialize Enums
292
+
### Initialize enums
293
293
294
294
To ensure all enums are initialized correctly starting at 0, .NET gives you a tidy shortcut to automatically initialize the enum by just adding the first (starter) value. (e.g Value 1 = 0 Remaining values are not required)
295
295
@@ -315,7 +315,7 @@ public enum ValueType
315
315
}
316
316
```
317
317
318
-
### Order Enums for appropriate extension
318
+
### Order enums for appropriate extension
319
319
320
320
It is critical that if an Enum is likely to be extended in the future, to order defaults at the top of the Enum, this ensures Enum indexes are not affected with new additions.
321
321
@@ -364,7 +364,7 @@ public enum SDKType
364
364
}
365
365
```
366
366
367
-
### Review Enum use for Bitfields
367
+
### Review enum use for bitfields
368
368
369
369
If there is a possibility for an enum to require multiple states as a value, e.g. Handedness = Left & Right. Then the Enum needs to be decorated correctly with BitFlags to enable it to be used correctly
370
370
@@ -394,7 +394,7 @@ public enum Handedness
394
394
}
395
395
```
396
396
397
-
## Best Practices, including Unity recommendations
397
+
## Best practices, including Unity recommendations
398
398
399
399
Some of the target platforms of this project require to take performance into consideration. With this in mind always be careful when allocating memory in frequently called code in tight update loops or algorithms.
Copy file name to clipboardExpand all lines: Documentation/Contributing/ExperimentalFeatures.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Experimental Features
1
+
# Experimental features
2
2
3
3
Some features the MRTK team works on appear to have a lot of initial value even if we haven’t fully fleshed out the details. For these types of features, we want the community to get a chance to see them early. Because they are early in the cycle, we label them as experimental to indicate that they are still evolving, and subject to change over time.
4
4
@@ -31,7 +31,7 @@ Keep scenes in a scene folder near the top: `MRTK.Examples/Experimental/FooBar/S
31
31
> [!NOTE]
32
32
> We considered not having a single Experimental root folder and instead putting Experimental under say `MRTK.Examples/HandTracking/Scenes/Experimental/HandBasedMenuExample.unity`. We decided to go with folders at the base to make the experimental features easier to discover.
33
33
34
-
### Experimental Code should be in a special namespace
34
+
### Experimental code should be in a special namespace
35
35
36
36
Ensure that the experimental code lives in an experimental namespace that matches the non-experimental location. For example,
37
37
if your component is part of solvers at `Microsoft.MixedReality.Toolkit.Utilities.Solvers`, its namespace should be `Microsoft.MixedReality.Toolkit.Experimental.Utilities.Solvers`.
@@ -43,18 +43,19 @@ See [this PR](https://github.com/microsoft/MixedRealityToolkit-Unity/pull/4532)
43
43
Add an `[Experimental]` attribute above one of your fields to have a small dialog appear in the component editor that mentions your feature is experimental and subject to significant changes.
44
44
45
45
### Menus for experimental features should go under "Experimental" sub-menu
46
+
46
47
Ensure that experimental features are under "experimental" sub-menus when adding commands to menus in the editor. Here are a few examples:
@@ -71,15 +72,15 @@ Aim to have zero changes in folders other than experimental folders. Here is a l
71
72
72
73
Changes outside of these folders should be treated very carefully. If your experimental feature must include changes to MRTK core code, consider splitting out MRTK changes into a separate pull request that includes tests and documentation.
73
74
74
-
### Using you experimental feature should not impact people's ability to use core controls
75
+
### Using your experimental feature should not impact people's ability to use core controls
75
76
76
77
Most people use core UX components like the button, ManipulationHandler and Interactable very frequently. They will likely not use your experimental feature if it prevents them from using buttons.
77
78
78
79
Using your component should not break buttons, ManipulationHandler, BoundingBox, or interactable.
79
80
80
81
For example, in [this ScrollableObjectCollection PR](https://github.com/microsoft/MixedRealityToolkit-Unity/pull/6001), adding a ScrollableObjectCollection caused people to not be able to use the HoloLens button prefabs. Even though this was not caused by a bug in the PR (but rather exposed an existing bug), it prevented the PR from getting checked in.
81
82
82
-
### Provide and example scene that demonstrates how to use the feature
83
+
### Provide an example scene that demonstrates how to use the feature
83
84
84
85
People need to see how to use your feature, and how to test it.
85
86
@@ -91,7 +92,7 @@ Others will not use the experimental feature if it does not work, it will not gr
91
92
92
93
Test your example scene on your target platform, make sure it works as expected. Make sure your feature also works in editor, so people can rapidly iterate and see your feature even if they don’t have the target platform.
93
94
94
-
## Graduating experimental code into MRTK code
95
+
## Graduating experimental code into MRTK code
95
96
96
97
If a feature ends up seeing quite a lot of use, then we should graduate it into core MRTK code. To do this, the feature should have tests, documentation, and an example scene.
Copy file name to clipboardExpand all lines: Documentation/Contributing/Feature_Contribution_Process.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Feature Contribution Process
1
+
# Feature contribution process
2
2
3
3
> [!WARNING]
4
4
> 10/1/2019: This page is deprecated because it provides guidelines for contributing very large systems to MRTK before the 2.0 release. After the 2.0 release, large changes need to be performed more carefully, and the process for this is not yet decided. We expect most MRTK contributions to have much smaller changes than what is covered here.
@@ -16,13 +16,13 @@ The following process has been drafted to ensure all new work complies to the up
16
16
5.[Submit a PR Implementing any required SDK components](#sdk-implementation)
17
17
6.[Submit a PR Implementing feature demos or full scale Examples](#example-implementation)
18
18
19
-
### New Proposal
19
+
### New proposal
20
20
21
21
Start by opening a new Proposal or Task describing the feature or the problem you want to solve. Describe the approach and how it fits into the version of the Mixed Reality Toolkit you're targeting. This will enable everyone have a discussion about the proposal and, hopefully, identify some potential pitfalls before any work is started.
22
22
23
23
New Proposals will be reviewed and discussed during our weekly ship room meetings and if a proposal is accepted, supplemental tasks will then be created and assigned.
24
24
25
-
### Architecture Draft
25
+
### Architecture draft
26
26
27
27
The first task once the initial proposal has been accepted, will be to draft the initial architecture document for the feature or work to be done. This document should typically be one or two pages long and include a high level overview of the feature and how it will relate to other parts of the Mixed Reality Toolkit.
28
28
@@ -36,7 +36,7 @@ Ensure that the architecture of the feature complies with the [New Feature Requi
36
36
37
37
Once the draft is completed, this can be appended to the Proposal / Task issue on GitHub for final public review.
38
38
39
-
### Architecture Documentation
39
+
### Architecture documentation
40
40
41
41
Once the draft architecture is accepted, additional pull requests can be made to submit the final full architecture documents to the repository.
42
42
@@ -46,7 +46,7 @@ Once the architecture document is approved, only then can the first code submiss
46
46
47
47
Development can begin in your own private branch and complete as normal, however, the PR's submitted back to the core MRTK project should be submitted in stages to ensure the review and approval is as smooth as it can be (and ensure core changes do not impact other features)
48
48
49
-
### Core Implementation
49
+
### Core implementation
50
50
51
51
The initial work that should be submitted, is to implement:
52
52
@@ -59,26 +59,26 @@ If needed, the architectural document can be updated to align with any changes t
59
59
60
60
Please ensure that all existing Unit Tests and any new tests are all passing prior to submission.
61
61
62
-
### SDK Implementation
62
+
### SDK implementation
63
63
64
64
Once the core interfaces and events are merged in to development, work can then be submitted for the SDK components. Adding the concrete implementation of the feature and testing against the supported platforms and unit tests.
65
65
66
-
### Example Implementation
66
+
### Example implementation
67
67
68
68
Once the SDK components are merged, then any demo scenes or updates to the example scenes can be submitted.
69
69
70
70
* Demos are for specific feature highlighting and demonstration
71
71
* Examples are full working scene learning examples
72
72
73
-
## New Feature Requirements
73
+
## New feature requirements
74
74
75
75
Most feature implementations can be broken down into 3 main parts:
* Assembly Definitions for code outside of the `MixedRealityToolkit` folder.
84
84
* This ensures features are self-contained and have no dependencies to other features.
@@ -95,14 +95,14 @@ Most feature implementations can be broken down into 3 main parts:
95
95
* Have a default implementation located in `MixedRealityToolkit.Services/<FeatureName>`
96
96
* Events that can be raised with the system should be defined in the interface, with all the required parameters for initializing the event data.
97
97
98
-
### Event Data Implementation Requirements
98
+
### Event data implementation requirements
99
99
100
100
The Event Data defines exactly what data the handler is expected to receive from the event.
101
101
102
102
* All Event Datum for the feature should be defined in `MixedRealityToolkit/EventDatum/<FeatureName>`.
103
103
* All new Event Data classes should inherit from `GenericBaseEventData`
104
104
105
-
### Handler Implementation Requirements
105
+
### Handler implementation requirements
106
106
107
107
The Handler Interface defines each event a component should be listening for and the types of data passed. End users will implement the interface to execute logic based on the event data received.
Copy file name to clipboardExpand all lines: Documentation/Contributing/PullRequests.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Pull Requests
1
+
# Pull requests
2
2
3
3
## Prerequisites
4
4
@@ -8,7 +8,7 @@ A comment in the PR will let you know if you do.
8
8
> [!IMPORTANT]
9
9
> If you are a Microsoft employee and are not a member of the [Microsoft organization on GitHub](https://github.com/Microsoft), please link your Microsoft and GitHub accounts on corpnet by visiting [Open Source at Microsoft](https://opensource.microsoft.com/) before you start your pull request. There's some process stuff you'll need to do ahead of time.
10
10
11
-
## Creating a Pull Request
11
+
## Creating a pull request
12
12
13
13
When you are ready to submit a pull request, [create a pull request](https://github.com/microsoft/MixedRealityToolkit-Unity/compare/mrtk_development...mrtk_development?expand=1) targeting the [mrtk_development](https://github.com/microsoft/mixedrealitytoolkit-unity/tree/mrtk_development) branch.
14
14
@@ -25,7 +25,7 @@ The project maintainers will review your changes. We aim to review all changes w
25
25
> [!NOTE]
26
26
> All PR's submitted to the project will also be vetted according to the [MRTK coding standards guide](CodingGuidelines.md), so please review these before submitting your PR to ensure a smooth process.
27
27
28
-
## Pull Request Guidelines
28
+
## Pull request guidelines
29
29
30
30
These guidelines are based off of the [Google's engineering practices](https://google.github.io/eng-practices/review/developer/small-cls.html).
@@ -15,7 +15,7 @@ This document outlines the roadmap of the Mixed Reality Toolkit.
15
15
16
16
Release details, including backlog items, can be found on the [GitHub milestone pages](https://github.com/Microsoft/MixedRealityToolkit-Unity/milestones). The complete set of open issues can also be found on [GitHub](https://github.com/microsoft/MixedRealityToolkit-Unity/issues).
17
17
18
-
## Mixed Reality Toolkit (MRTK) Roadmap
18
+
## Mixed Reality Toolkit (MRTK) roadmap
19
19
20
20
The Mixed Reality Toolkit is an all-new product, built to be cross MR/AR/VR/XR platform by design. There are two planned pre-releases after which the Mixed Reality Toolkit will become the primary product.
Copy file name to clipboardExpand all lines: Documentation/Contributing/UnitTests.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# Writing and Running Tests in MRTK
1
+
# Writing and running tests in MRTK
2
2
3
3
To ensure MRTK is reliable, MRTK has a set of tests to ensure that changes to the code does not regress existing behavior. Having good test coverage in a big codebase like MRTK is crucial for stability and having confidence when making changes.
4
4
@@ -43,7 +43,7 @@ It's also possible to run the playmode tests multiple times via the `run_repeat_
43
43
.\run_repeat_tests.ps1 -Times 5
44
44
```
45
45
46
-
### Pull Request Validation
46
+
### Pull request validation
47
47
48
48
MRTK's CI will build MRTK in all configurations and run all edit and play mode tests. CI can be triggered by posting a comment on the github PR `/azp run mrtk_pr` if the user has sufficient rights. CI runs can be seen in the 'checks' tab of the PR.
49
49
@@ -66,15 +66,15 @@ public IEnumerator MyTest() {...}
66
66
67
67
Run the following from a command line ([PowerShell](https://docs.microsoft.com/powershell/scripting/install/installing-powershell?view=powershell-6#powershell-core) is recommended)
68
68
69
-
```ps
69
+
```powershell
70
70
cd scripts\tests
71
71
# Repeat the test 5 times. Default is 100
72
72
python .\generate_repeat_tests.py -n 5 -t MyTest
73
73
```
74
74
75
75
Copy and paste the output into your test file. The following script is for running multiple tests in sequence:
Copy file name to clipboardExpand all lines: Documentation/CrossPlatform/UsingARFoundation.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# How to configure MRTK for iOS and Android [Experimental]
2
2
3
-
## Install Required Packages
3
+
## Install required packages
4
4
5
5
1. Download and import the **Microsoft.MixedReality.Toolkit.Providers.UnityAR** package, from [GitHub](https://github.com/microsoft/MixedRealityToolkit-Unity/releases/tag/v2.2.0) or [NuGet](../MRTKNuGetPackage.md)
6
6
@@ -64,7 +64,7 @@ The following steps presume use of the MixedRealityToolkit object. Steps require
64
64
65
65
For more information about configuring the Unity AR camera settings provider: [Unity AR camera settings provider](../CameraSystem/UnityArCameraSettings.md).
66
66
67
-
## Building a Scene for Android and iOS devices
67
+
## Building a scene for Android and iOS devices
68
68
69
69
1. Make sure you have added the UnityAR Camera Settings Provider to your scene.
0 commit comments