Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/check_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
path: .venv
key: nipanel-with-docs-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
- name: Install nipanel (with docs)
run: poetry install -v --extras docs
run: poetry install -v --only main,docs
- name: Generate docs
run: poetry run sphinx-build docs docs/_build -b html -W
- name: Upload docs artifact
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check_nipanel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
path: .venv
key: nipanel-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
- name: Install nipanel
run: poetry install -v --extras "dev docs examples lint test"
run: poetry install -v --with examples,docs
- name: Lint
run: poetry run ni-python-styleguide lint
- name: Mypy static analysis (Linux)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
path: .venv
key: nipanel-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
- name: Install nipanel
run: poetry install -v --extras test
run: poetry install -v
- name: Run unit tests and code coverage
run: poetry run pytest ./tests/unit -v --cov=nipanel --junitxml=test_results/nipanel-${{ matrix.os }}-py${{ matrix.python-version }}.xml
- name: Upload test results
Expand Down
21 changes: 17 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,19 @@ See [GitHub's official documentation](https://help.github.com/articles/using-pul

# Getting Started

To contribute to this project, it is recommended that you follow these steps:

1. Ensure you have poetry installed
1. Fork the repository on GitHub.
1. Install `nipanel` dependencies using `poetry install`
1. Run the regression tests on your system (see Testing section). At this point, if any tests fail, do not begin development. Try to investigate these failures. If you're unable to do so, report an issue through our [GitHub issues page](https://github.com/ni/nipanel-python/issues).
1. Write new tests that demonstrate your bug or feature. Ensure that these new tests fail.
1. Make your change.
1. Run all the regression tests again (including the tests you just added), and confirm that they all pass.
1. Run `poetry run nps lint` to check that the updated code follows NI's Python coding conventions. If this reports errors, first run `poetry run nps fix` in order to sort imports and format the code with Black, then manually fix any remaining errors.
1. Run `poetry run mypy` to statically type-check the updated code.
1. Send a GitHub Pull Request to the main repository's main branch. GitHub Pull Requests are the expected method of code collaboration on this project.

# Testing

## Simple development loop
Expand All @@ -31,17 +44,17 @@ git fetch
git switch --create users/{username}/{branch-purpose} origin/main

# Install the project dependencies
poetry install --extras docs
poetry install --with docs

# ✍ Make source changes

# Run the analyzers -- see files in .github/workflows for details
poetry run ni-python-styleguide lint
poetry run nps lint
poetry run mypy
poetry run bandit -c pyproject.toml -r src/nipanel

# Apply safe fixes
poetry run ni-python-styleguide fix
poetry run nps fix

# Run the tests
poetry run pytest -v
Expand All @@ -54,7 +67,7 @@ start docs\_build\index.html
## Running examples

1. Run the **PythonPanelService** (not part of this repo, provided seperately)
2. `poetry install --extras examples` to get the dependencies needed for the examples
2. `poetry install --with examples` to get the dependencies needed for the examples
3. Run the examples with these command(s):
- `poetry run python examples/hello/hello.py`
- `poetry run python examples/all_types/all_types.py`
Expand Down
2 changes: 1 addition & 1 deletion examples/all_types/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ This is an example for `nipanel` that demonstrates all supported data types.
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run python examples/all_types/all_types.py
```
2 changes: 1 addition & 1 deletion examples/hello/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ This is a simple `nipanel` example that displays a Streamlit app.
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run python examples/hello/hello.py
```
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Script demonstrates analog input data getting continuously acquired, and being f
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run python examples\nidaqmx\nidaqmx_analog_input_filtering\nidaqmx_analog_input_filtering.py
```

2 changes: 1 addition & 1 deletion examples/nidaqmx/nidaqmx_analog_output_voltage/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ This is a nipanel example that displays an interactive Streamlit app and updates
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run examples\nidaqmx\nidaqmx_analog_output_voltage\nidaqmx_analog_output_voltage.py
```
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ This is a nipanel example that displays an interactive Streamlit app and updates
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run examples\nidaqmx\nidaqmx_continuous_analog_input\nidaqmx_continuous_analog_input.py
```
2 changes: 1 addition & 1 deletion examples/niscope/nicope_ex_fetch_forever/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ Script demonstrates NIScope waveform data getting continuously acquired.
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run examples\niscope\niscope_ex_fetch_forever\niscope_ex_fetch_forever.py
```
2 changes: 1 addition & 1 deletion examples/niscope/niscope_binary_acquisition/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ Script demonstrates waveform data getting continuously acquired and being conver
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run examples\niscope\niscope_binary_acquisition\niscope_binary_acquisition.py
```
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ Script demonstrates how to configure vertical, horizontal, and triggering proper
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run examples\niscope\niscope_configured_acquisition\niscope_configured_acquisition.py
```
2 changes: 1 addition & 1 deletion examples/performance_checker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ This example measures the performance of a streamlit panel with a graph.
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run python examples/performance_checker/performance_checker.py
```
2 changes: 1 addition & 1 deletion examples/simple_graph/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ This example demonstrates using `nipanel` with Streamlit to display a dynamic si
### Usage

```pwsh
poetry install --extras examples
poetry install --with examples
poetry run python examples/simple_graph/simple_graph.py
```
Loading
Loading