Skip to content

Commit 987c78e

Browse files
dbirmantmchartrandgithub-actions[bot]saskiadleesuyee
authored
Release v2.0.0 (#1421)
* fix: fix mistakes in FiberAssemblyConfig * fix: remove Opto device concept, use Connection * refactor: starting examples refactor * refactor: clean up MRIScan * refactor: working on examples * fix: move channel_name into configs instead of FOV * refactor: repairing MRI acquisition * tests: remove unnecessary tests * fix: typo * refactor: functional ephys example * refactor: fixing channel_name and Coordinate() patterns * fix: not bitwise operators for objects * refactor: more coordinate refactors * refactor: rename to configs, inherit in procedures * refactor: various small fixes * fix: duplicate field * fix: consistency * fix: better docstring * chore: enums to top of class * chore: organizing configs class * chore: enums to top of file * fix: better docstrings * chore: temporary until can sort out orientations * fix: better way to access names * fix: remove metadata level acquisition requirements * feat: testing VariableLaserConfig * fix: docstrings * feat: fix procedures implanted_devices, add configurations and validator * feat: working on validators and refactoring plans for coordinates * refactor: refactoring coordinate transforms to match the x_to_y pattern * refactor: clarify FOV transform, fix issues in tests * refactor: working on final coordinate refactor * fix: MPM manipulator axis directions * refactor: continuing refactor of Coordinate() to new pattern * refactor: more refactor of Coordinate, fixing a validator field * fix: typos, missing fields * refactor: move ProbeConfig up to Procedures.configurations * refactor: fixing more tests * fix: fix recursive coordinate system validators/tests * fix: more missing system_name fields * fix: test_procedures * fix: mis-specified validator * refactor: CT -> specific transform * fix: all configs must inherit DeviceConfig * fix: mis-specified validator * fix: minor tweaks to support device_name requirements * fix: device_names * fix: improve test by using example * fix: test_acquisition * fix: test_acq_configs * fix: adding coverage in various places, fixing broken tests * fix: remove unused code * fix: typo * fix: lint and fix for missing coverage * tests: missing coverage * chore: bypass codespell * chore: FINE * feat: adding CurationMetric to QCEvaluation.metrics options * feat: add missing type field * feat: adding CurationMetric to QCEvaluation.metrics options (#1417) * feat: adding CurationMetric to QCEvaluation.metrics options * feat: add missing type field * chore: lint * fix: datetime -> aware * chore: fix accidental use of BaseModel * refactor: final modification of imaging schemas * Update quality_control.py * Revert "refactor: final modification of imaging schemas" This reverts commit c2e5c9b. * Reapply "refactor: final modification of imaging schemas" This reverts commit 13c06f0. * refactor: completing new channel refactor, fixing previous use of FOV, new test coverage * refactor: reverting datetime pattern * tests: fixing issues * tests: small fixes * tests: small fixes * fix: return depth to Plane * fix: fixing broken AssetPath implementation * tests: move tests back to top-level because unittest is dumb * chore: remove test file * chore: lint * chore: docstring/lint * chore: spell out name * feat: add fib ophys acquisition example * chore: lint * chore: remove unnecessary LED connections * chore: import * fix: upgrade multiplane_ophys_instrument, allow bi-directional connections * chore: lint * Simplify types by defining Annotated Field with discriminator in base (#1419) * refactor: add DiscriminatedList * refactor: remove unused GenericModelType * refactor: define Discriminated type, not list * refactor: update all Annotated Fields with discriminators --------- Co-authored-by: Dan Birman <danbirman@gmail.com> * bump schema version [skip actions] * chore: lint / fix typos * refactor: small changes, light_types, adding other power func * feat: improve description * refactor: various small fixes * refactor: get StimulusModality from adsm * chore: merge issues * chore: remove MicroscopeConfig from examples * tests: typo * chore: stupid codespell is stupid * feat: add volume to LickSpoutConfig * tests: missing fields in tests * chore: typo * chore: isort * breaking change: compilation of changes from remaining issues (#1395) * bump schema version [skip actions] * refactor: change OligoProbe functionality and introduce GeneticStain * bump schema version [skip actions] * docs: working on revamping documentation * fix: bad merge * chore: lint * refactor: complete overhaul of the documentation and generation process * docs: update README to reflect new documentation process * refactor: move model into examples * chore: moving files around * chore: lint * chore: lint and move files * feat: improving doc handling of List[Annotated] patterns * fix: mistake in generating wrapped {Class} names * fix: fixing broken cross-references * fix: fixing links, bumping python version * fix: | -> "or" * chore: lint * feat: adding registries to main documentation output * fix: fixing issues with registries getting generated incorrectly, working on x-refs * fix: fixing links in components to registries * feat: functional code for all adsm * fix: fixing broken links * docs: cleaning up examples * docs: new examples rendered * docs: fixing issues with enums in ads classes and missing enums from adsm * docs: adding missing licenses * chore: clean up un-used code * chore: lint and simplify over-complex entry * chore: lint, simplify functions * docs: cleaning up text, adding missing units, working on broken x-refs * docs: fix missing condition for non-annotated unions * docs: cleanly handle using of Literal * chore: lint * chore: lint * docs: linking "how to" sections * docs: cleaning up example workflow * chore: better title * docs: fix links in "I want to" section * chore: remove query section * docs: small tweaks * docs: continuing to re-write sections * docs: fixing links, re-organizing FAQ sections * docs: fix base files, not rendered files * docs: adding more details, adding new coordinate_systems files * docs: adding coordinate systems page * chore: fix issues * chore: fix images and data organization time format * chore: various small fixes * chore: missing toctree directives * chore: lowercase second word * feat: adding key_experimenters field to QC (#1423) * bump schema version [skip actions] * docs: working on improving links * docs: cleaning up readme/contributing files * docs: link to related_standards * docs: rename philosophy section * docs: link to aind-metadata-mapper tutorial * chore: fixing various issues * chore: lint * chore: typo * chore: typo * chore: minor * docs: fix issues with Generics/AssetPath * Update model.md * fix: fixing linking issues * docs: cleaning up base core files * docs: working on general sections * chore: minor * docs: remove "models" section on first page * chore: lint * chore: minor * docs: remove "trivial" * refactor: separate location/instrument_id/modification_date (#1425) * bump schema version [skip actions] * docs: fix order of core files and add new base files * docs: update uniqueness section * docs: separating core file into its own section * docs: add links to python code (non-functional on branch) * bump schema version [skip actions] * fix: fundee should be a list (#1430) * bump schema version [skip actions] * fix: Camera missing from components list (#1432) * bump schema version [skip actions] * fix: remove Laser.power_unit (#1434) * bump schema version [skip actions] * 1435 20 rename lasercalibration to lightcalibration to accommodate leds (#1436) * refactor: Volume and Power Calibration * refactor: small changes to title/descriptions * bump schema version [skip actions] * fix: replace "None" enum with value (#1438) * bump schema version [skip actions] * chore: bump floor on aind-data-schema-models version to latest (#1443) * bump schema version [skip actions] * refactor: remove material_type, redundant with object_type (#1451) * feat: add protocol_parameters (#1452) * chore: coordinates to MM (#1455) * bump schema version [skip actions] * 1447 20 rename metadataexternal links to external identifiers (#1450) * refactor: rename external_links * chore: lint * refactor: replace all references to external_links * refactor: renaming to be better aligned with usage for database identifiers * fix: missed title * fix: typo * fix: missing name changes * fix: plural and change default * bump schema version [skip actions] * feat: add optional protocol_id to water restriction (#1458) * fix: change headframe part_number to be optional (#1459) * bump schema version [skip actions] * examples: adding QC example (#1426) * bump schema version [skip actions] * feat: forward compatibility with macaque anatomy (#1461) * refactor: use BrainStructureModel instead of CCFStructure.ONE_OF * refactor: re-organize procedures and move implanted_devices/device_configs into individual procedures (#1464) * refactor: starting to test moving implanted_devices/configurations into Surgery * fix: typo * refactor: re-organize procedures into separate components files * fix: import for anaesthetic * fix: more import issues * refactor: moving implanted devices down to their surgery procedures * fix: fixing various examples, validators, etc * fix: removing recursive device name check * tests: remove unnecessary tests * chore: a few typos * fix: classmethod -> regular instance method * chore: lint * tests: adding coverage on get_device_names * chore: lint * tests: fix ridiculously broken LLM generated tests * chore: lint * tests: coverage on missing devices error * chore: comment out unused code * fix: CCFStructure -> CCFv3 * chore: lint * fix: bad merge * bump schema version [skip actions] * refactor: flatten QC (#1465) * bump schema version [skip actions] * feat: adding support for multiple center wavelengths and a validator,… (#1469) * feat: add library IMAGE_XYZ coordinate system (#1474) * refactor: allow repeats in calibrations (#1478) * feat: add support for training curriculums (#1472) * fluorescent stain stuff * lint * lint * delete extras * fixed species * tests: fix changed classname * fix: missing center_wavelength in examples (#1483) * bump schema version [skip actions] * tests: fix missing coverage * initiator and allowing probes without fluorescent * typo * obscure lint * 1197 docs cleanup 2 (#1428) * chore: re-build docs to include code links and missing instrument * fix: adding more registries/atlases * docs: add link back to code * chore: missing SpeedUnit in registries map * docs: adding more information on how platform was replaced * docs: add definitions for components/registries pages * docs: various updates based on feedback * docs: updating with source changes * docs: various updates to docs * docs: fix typo * docs: rebuild doc files, add metadata.md * docs: small tweaks to index page * docs: update to instrument change writing * docs: update to latest release-v2 branch * docs: clean up QC docs with more information about tags and clarifying metrics/curations * docs: rebuild docs, including fixing a bug * chore: lint * docs: only generate model definitions subheading if models exist * fix: index typo * docs: actually build docs * docs: cleaning up acquisition * docs: removing contributing page * docs: build source * docs: improve descriptions in a number of places * refactor: move connections into their own components folder * docs: rebuild * docs: convert general file to markdown * docs: cleaning up the general page * docs: improving coordinate systems and fixing image caption * location removed --------- Co-authored-by: Saskia de Vries <saskiad@alleninstitute.org> * bump schema version [skip actions] * chore: bump aind-data-schema-models version * docs: add missing ProcessName, rebuild all docs (#1486) * bump schema version [skip actions] * feat: ensuring all __add__ functions work (#1487) * feat: missing __add__ in instrument, test coverage * fix: forgot coordinate_system in procedures * tests: missing coverage on procedures coordinate_system error * chore: lint * bump schema version [skip actions] * fix: repair example test runner and ophys_procedures.py example file (#1489) * fix: fix broken test runner to get ALL json files * fix: force test to run for all .py files, even if the json isn't generated * fix: remove old json files to prevent old files being read as the latest * added species to protein probe * fixing probes and reagents * docs: re-build docs * chore: lint * chore: lint * fix: small issue with use of Discriminated * fixed target * actually fixed now * fix: upgrade validator to accept both stain and probe for immunolabeling * tests: fix broken test case * chore: lint * chore: bump to aind-data-schema-models, and fix various small examples errors * fix: typo * fix: typo * docs: push some documentation changes due to adsm 4.2.4 * tests: remove test_examples from coverage checks --------- Co-authored-by: Saskia de Vries <sejdevries@gmail.com> * bump schema version [skip actions] * feat: add optional calibration fit to Calibration (#1494) * feat: working on CalibrationFit * chore: lint * chore: docstring int he wrong place * bump schema version [skip actions] * feat: validate datetime objects in the schema (except QC and model) (#1491) * feat: validate times * fix: reduce requirement for data_description.name to just the same day * chore: lint * chore: lint * tests: fix variable passing issue * fix: remove validators in procedures * chore: lint * fix: add the additional time validators for other core files * fix: revert validation on prep_date field * tests: add full coverage for metadata new time validators * chore: lint * fix: remove unnecessary try/except * chore: lint * refactor: simplify time validator by pulling function into a util * chore: lint * bump schema version [skip actions] --------- Co-authored-by: Tom Chartrand <tom.chartrand@alleninstitute.org> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Saskia de Vries <saskiad@users.noreply.github.com> Co-authored-by: Su-Yee Lee <32553786+leesuyee@users.noreply.github.com> Co-authored-by: Saskia de Vries <saskiad@alleninstitute.org> Co-authored-by: Saskia de Vries <sejdevries@gmail.com>
2 parents 65499b6 + bc0d270 commit 987c78e

234 files changed

Lines changed: 90533 additions & 265860 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/publish_dev.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ jobs:
2020
- uses: actions/checkout@master
2121
- name: Pull latest changes
2222
run: git pull origin dev
23-
- name: Set up Python 3.8
23+
- name: Set up Python 3.10
2424
uses: actions/setup-python@v3
2525
with:
26-
python-version: 3.8
26+
python-version: '3.10'
2727
- name: Configure aws credentials
2828
uses: aws-actions/configure-aws-credentials@v2
2929
with:

.github/workflows/run_dev_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
runs-on: ubuntu-latest
3030
strategy:
3131
matrix:
32-
python-version: [ '3.8', '3.9', '3.10', '3.11' ]
32+
python-version: [ '3.10', '3.11', '3.12', '3.13' ]
3333
steps:
3434
- uses: actions/checkout@v3
3535
- name: Set up Python ${{ matrix.python-version }}

.github/workflows/run_main_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
runs-on: ubuntu-latest
3232
strategy:
3333
matrix:
34-
python-version: [ '3.8', '3.9', '3.10', '3.11' ]
34+
python-version: [ '3.10', '3.11', '3.12', '3.13' ]
3535
steps:
3636
- uses: actions/checkout@v3
3737
- name: Set up Python ${{ matrix.python-version }}

.github/workflows/tag_and_publish_main.yml

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ jobs:
5353
- uses: actions/checkout@master
5454
- name: Pull latest changes
5555
run: git pull origin main
56-
- name: Set up Python 3.8
56+
- name: Set up Python 3.10
5757
uses: actions/setup-python@v3
5858
with:
59-
python-version: 3.8
59+
python-version: '3.10'
6060
- name: Configure aws credentials
6161
uses: aws-actions/configure-aws-credentials@v2
6262
with:
@@ -69,40 +69,3 @@ jobs:
6969
python -m aind_data_schema.utils.json_writer --output $TEMP_DIR --attach-version
7070
python -m pip install awscli
7171
aws s3 sync $TEMP_DIR s3://${AWS_DATA_SCHEMA_BUCKET}/$S3_PREFIX
72-
73-
upload_diagrams:
74-
needs: tag_and_publish
75-
runs-on: ubuntu-latest
76-
permissions:
77-
id-token: write
78-
contents: read
79-
env:
80-
AWS_DATA_SCHEMA_ROLE: ${{ secrets.AWS_DATA_SCHEMA_ROLE_PROD }}
81-
AWS_DATA_SCHEMA_BUCKET: ${{ vars.AWS_DATA_SCHEMA_BUCKET_PROD }}
82-
AWS_REGION : ${{ vars.AWS_REGION_PROD }}
83-
DIAGRAM_DIRECTORY: ./docs/source/_static/diagrams
84-
steps:
85-
- uses: actions/checkout@master
86-
- name: Pull latest changes
87-
run: git pull origin main
88-
- name: Set up Python 3.8
89-
uses: actions/setup-python@v3
90-
with:
91-
python-version: 3.8
92-
- name: Install dependencies
93-
run: |
94-
sudo apt install graphviz libgraphviz-dev -y
95-
python -m pip install -e .[docs] --no-cache-dir
96-
python -m pip install awscli
97-
- name: Generate erdantic diagrams
98-
run: |
99-
mkdir $DIAGRAM_DIRECTORY
100-
python -m aind_data_schema.utils.diagrams $DIAGRAM_DIRECTORY
101-
- name: Configure aws credentials
102-
uses: aws-actions/configure-aws-credentials@v2
103-
with:
104-
role-to-assume: ${{ env.AWS_DATA_SCHEMA_ROLE }}
105-
role-session-name: github-diagram-upload-session
106-
aws-region: ${{ env.AWS_REGION }}
107-
- name: Create and upload diagrams
108-
run: aws s3 sync $DIAGRAM_DIRECTORY s3://${AWS_DATA_SCHEMA_BUCKET}/diagrams

.github/workflows/update_docs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
- uses: actions/checkout@v3
1515
with:
1616
token: ${{ secrets.SERVICE_TOKEN }}
17-
- name: Set up Python 3.8
17+
- name: Set up Python 3.10
1818
uses: actions/setup-python@v3
1919
with:
20-
python-version: 3.8
20+
python-version: '3.10'
2121
- name: Install dependencies
2222
run: |
2323
python -m pip install -e .[dev] --no-cache-dir
@@ -51,10 +51,10 @@ jobs:
5151
- uses: actions/checkout@v3
5252
with:
5353
token: ${{ secrets.SERVICE_TOKEN }}
54-
- name: Set up Python 3.8
54+
- name: Set up Python 3.10
5555
uses: actions/setup-python@v2
5656
with:
57-
python-version: 3.8
57+
python-version: '3.10'
5858
- name: Install dependencies
5959
run: |
6060
sudo apt install graphviz libgraphviz-dev -y

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,8 @@ dmypy.json
140140

141141
# Jupyter
142142
notebook/
143+
*.vscode
144+
ephys_instrument.json
145+
examples/*.json
146+
*.json
147+
docs/base/models/*

.readthedocs.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2
33
build:
44
os: ubuntu-22.04
55
tools:
6-
python: "3.8"
6+
python: "3.13"
77

88
python:
99
install:
@@ -12,3 +12,7 @@ python:
1212
extra_requirements:
1313
- dev
1414
- docs
15+
16+
sphinx:
17+
# Path to your Sphinx configuration file.
18+
configuration: docs/source/conf.py

CONTRIBUTING.md

Lines changed: 77 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,92 @@
11
# Contributor Guidelines
2-
This repository defines the schemas needed to validate and document metadata. As a core service, it is used across multiple teams and services. Therefore, any contributions must follow certain rules to ensure stability and organization.
3-
This document will go through best practices for contributing to this project
2+
3+
Contributions to `aind-data-schema` must follow certain rules to ensure stability and organization. This document will go through best practices for contributing to this project
44

55
## Issues and Feature Requests
6+
67
Feature requests and bug reports are all welcome as [issues](https://github.com/AllenNeuralDynamics/aind-data-schema/issues). Create a ticket using the provided [templates](https://github.com/AllenNeuralDynamics/aind-metadata-mapper/issues/new/choose) to ensure we have enough information to work with.
78
Our team will review, assign, and address the ticket. If the ticket is urgent, you may tag a dedicated engineer in the issue but please refrain from assigning it.
89

910
If you have a broader suggestion or a question about how things work, start a new [Discussion](https://github.com/AllenNeuralDynamics/aind-data-schema/discussions)!
1011

11-
NOTE: If your request requires upgrading pydantic, create a separate ticket and a dedicated engineer will handle the upgrade.
12-
1312
## Installation and Development
13+
1414
To develop the software, *clone* the repository and create a new branch for your changes.
1515
Please do not fork this repository unless you are an external developer.
16+
1617
```bash
17-
git clone git@github.com:AllenNeuralDynamics/aind-metadata-mapper.git
18+
git clone git@github.com:AllenNeuralDynamics/aind-data-schema.git
19+
cd aind-data-schema
1820
git checkout -b my-new-feature-branch
19-
```
20-
Then run the following command in the checked out directory.
21+
```
22+
23+
It's recommended you work in an isolated virtual environment.
24+
25+
```bash
26+
python -m venv .venv
27+
source .venv/bin/activate # (unix)
28+
```
29+
30+
Then run the following command in the checked out directory.
31+
2132
```bash
2233
pip install -e .[dev]
2334
```
2435

36+
### Upgrades
37+
38+
Starting with the v2.0 release all changes must be accompanied by an [upgrader](https://github.com/AllenNeuralDynamics/aind-metadata-upgrader/) that converts valid metadata from the latest version tag of `aind-data-schema` to valid metadata in the version tag where your changes are introduced. Breaking changes are exempt from this requirement.
39+
40+
### Documentation
41+
42+
**Note**: The core files (`docs/source/acquisition.md`, etc) are auto-generated from the base files in the folder `docs/base/core` with the model definitions appended. You must modify the **base** file or your changes will be overwritten when you run the documentation generators.
43+
44+
To generate the source files for the documentation and model class links, run:
45+
46+
```python
47+
python src/aind_data_schema/utils/docs/model_generator.py
48+
python src/aind_data_schema/utils/docs/registries_generator.py
49+
python src/aind_data_schema/utils/docs/doc_generator.py
50+
```
51+
52+
Then to create the documentation html files, run:
53+
54+
```bash
55+
sphinx-build -b html docs/source/ docs/build/html
56+
```
57+
58+
More info on sphinx installation can be found here: https://www.sphinx-doc.org/en/master/usage/installation.html
59+
2560
### Testing
61+
2662
Testing is required to open a PR in this repository to ensure robustness and reliability of our codebase.
2763
- **1:1 Correspondence:** Structure unit tests in a manner that mirrors the module structure.
2864
- For every package in the src directory, there should be a corresponding test package.
2965
- For every module in a package, there should be a corresponding unit test module.
3066
- For every method in a module, there should be a corresponding unit test.
67+
- For complicated functions, keep unit test functions small and interpretable.
3168
- **Test Coverage:** Aim for comprehensive test coverage to validate all critical paths and edge cases within the module. To open a PR, you will need at least 80% coverage.
3269
- Please test your changes using the **coverage** library, which will run the tests and log a coverage report:
70+
3371
```bash
3472
coverage run -m unittest discover && coverage report
3573
```
74+
3675
To open the coverage report in a browser, you can run
76+
3777
```bash
3878
coverage html
3979
```
4080
and find the report in the htmlcov/index.html.
4181

82+
To run a single unit test file you can use
83+
84+
```bash
85+
coverage run -m unittest tests/your_test.py
86+
```
87+
4288
### Linters
89+
4390
There are several libraries used to run linters and check documentation. We've included these in the development package. You can run them as described [here](https://github.com/AllenNeuralDynamics/aind-metadata-mapper/blob/main/README.md#linters-and-testing).
4491
4592
- To run tests locally, navigate to AIND-DATA-SCHEMA directory in terminal and run (this will not run any on-line only tests):
@@ -80,11 +127,32 @@ There are several libraries used to run linters and check documentation. We've i
80127
```
81128
**NOTE**: Please note that these linters are automatically run in github actions when a PR is opened. These linters must pass for a PR to merge.
82129
83-
## Documentation and Style Guide
84-
Documentation is required for contributing to this project. We have settled on using Numpy's conventions as a default: [Numpy docstring standards](https://numpydoc.readthedocs.io/en/latest/format.html)
130+
### Units
131+
Unit types (i.e. anything from [aind_data_schema_models.units](https://github.com/AllenNeuralDynamics/aind-data-schema-models/blob/main/src/aind_data_schema_models/units.py)) should always be paired with a variable in one of two patterns.
132+
133+
When you have a single `variable` with a unit, you should add the `_unit` suffix on the name of the unit:
134+
135+
```python
136+
variable: type = Field(...)
137+
variable_unit: XUnit = Field(...)
138+
```
139+
140+
If the variable is `Optional[]` the unit should also be marked as optional.
85141
142+
If you have multiple variables that map onto a single unit type, start each `variable` with the same prefix. The prefix should be unique within the class (watch out for inherited fields).
143+
144+
```python
145+
fov_width: type = Field(...)
146+
fov_height: type = Field(...)
147+
fov_unit: XUnit = Field(...)
148+
```
149+
150+
### Docstrings
151+
152+
Docstrings are required for contributing to this project. We have settled on using Numpy's conventions as a default: [Numpy docstring standards](https://numpydoc.readthedocs.io/en/latest/format.html)
86153

87154
## Pull Requests
155+
88156
For internal members, please create a branch. For external members, please fork the repo and open a pull request from the fork. We'll primarily use [Angular](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit) style for commit messages. Roughly, they should follow the pattern:
89157
```
90158
<type>(<scope>): <short summary>

0 commit comments

Comments
 (0)