Skip to content

Commit 87428c4

Browse files
authored
Merge pull request #165 from Stanford-NavLab/daniel/git_actions_py_version
`Daniel/git actions py version` is ready for the next release.
2 parents a22343f + aad7449 commit 87428c4

Some content is hidden

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

74 files changed

+3799
-1965
lines changed

.github/workflows/build.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,18 @@ jobs:
2020
runs-on: ${{ matrix.os }}
2121
strategy:
2222
matrix:
23-
python-version: ["3.8", "3.11"]
23+
python-version: ["3.9","3.10","3.11","3.12"]
2424
os: [ubuntu-latest, macos-latest, windows-latest]
2525
fail-fast : false
2626
defaults:
2727
run:
2828
shell: bash
2929

3030
steps:
31-
- uses: actions/checkout@v3
31+
- uses: actions/checkout@v4
3232
- name: Set up Python ${{ matrix.python-version }}
3333
id: setup-python
34-
uses: actions/setup-python@v4
34+
uses: actions/setup-python@v5
3535
with:
3636
python-version: ${{ matrix.python-version }}
3737
- name: Install Poetry
@@ -43,7 +43,7 @@ jobs:
4343
# Load cached environment, if it exists
4444
- name: Load cached poetry environment
4545
id: cached-poetry-dependencies
46-
uses: actions/cache@v3
46+
uses: actions/cache@v4
4747
with:
4848
path: .venv
4949
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
@@ -68,7 +68,7 @@ jobs:
6868
source $VENV
6969
poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/navdata --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov=gnss_lib_py/visualizations --cov-report=xml
7070
- name: Upload coverage report to code-cov
71-
uses: codecov/codecov-action@v3
71+
uses: codecov/codecov-action@v4
7272
with:
7373
fail_ci_if_error: true
7474
token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
@@ -79,13 +79,13 @@ jobs:
7979
runs-on: ubuntu-latest
8080
name: Check if index.rst and README.md weren't changed together
8181
steps:
82-
- uses: actions/checkout@v3
82+
- uses: actions/checkout@v4
8383
with:
8484
fetch-depth: 0
8585

8686
- name: Get changed files since last remote commit
8787
id: changed-files
88-
uses: tj-actions/changed-files@v34
88+
uses: tj-actions/changed-files@v44
8989

9090
- name: Check if index.rst changed when README.md file changes
9191
if: contains(steps.changed-files.outputs.modified_files, 'README.md') && !contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst')

.github/workflows/pip-install.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ jobs:
1414
runs-on: ${{ matrix.os }}
1515
strategy:
1616
matrix:
17-
python-version: ["3.8"]
17+
python-version: ["3.9"]
1818
os: [ubuntu-latest]
1919

2020
steps:
21-
- uses: actions/checkout@v3
21+
- uses: actions/checkout@v4
2222
- name: Set up Python ${{ matrix.python-version }}
23-
uses: actions/setup-python@v4
23+
uses: actions/setup-python@v5
2424
with:
2525
python-version: ${{ matrix.python-version }}
2626
- name: Install using pip

.github/workflows/pylint.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ jobs:
1313
runs-on: ubuntu-latest
1414
strategy:
1515
matrix:
16-
python-version: ["3.8"]
16+
python-version: ["3.9"]
1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1919
- name: Set up Python ${{ matrix.python-version }}
2020
id: setup-python
21-
uses: actions/setup-python@v4
21+
uses: actions/setup-python@v5
2222
with:
2323
python-version: ${{ matrix.python-version }}
2424
- name: Install Poetry
@@ -29,7 +29,7 @@ jobs:
2929
installer-parallel: true # default option selected currently
3030
- name: Load cached poetry environment
3131
id: cached-poetry-dependencies
32-
uses: actions/cache@v3
32+
uses: actions/cache@v4
3333
with:
3434
path: .venv
3535
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}

.github/workflows/pypi-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ jobs:
1515
runs-on: ubuntu-latest
1616

1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1919
- name: Set up Python 3.10
20-
uses: actions/setup-python@v4
20+
uses: actions/setup-python@v5
2121
with:
2222
python-version: "3.10"
2323

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,6 @@ target/
151151
profile_default/
152152
ipython_config.py
153153

154-
# pyenv
155-
# .python-version
156-
157154
# pipenv
158155
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
159156
# However, in case of collaboration, if having platform-specific dependencies or dependencies

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.8.9
1+
3.9.19

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ version: 2
99
build:
1010
os: ubuntu-20.04
1111
tools:
12-
python: "3.8"
12+
python: "3.9"
1313

1414
# Build documentation in the docs/ directory with Sphinx
1515
sphinx:

README.md

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,31 @@ gnss_lib_py
99
`gnss_lib_py` is a modular Python tool for parsing, analyzing, and
1010
visualizing Global Navigation Satellite Systems (GNSS) data and state
1111
estimates.
12-
It also provides an intuitive and modular framework allowing users to
12+
It also provides an intuitive and modular framework which allows users to
1313
quickly prototype, implement, and visualize GNSS algorithms.
1414
`gnss_lib_py` is modular in the sense that multiple types of
15-
algorithms can be easily exchanged for each other and extendable in
16-
facilitating user-specific extensions of existing implementations.
15+
algorithms or datasets can be easily exchanged for each other.
16+
It is extendable in facilitating user-specific extensions of existing
17+
implementations.
1718

18-
<img src="https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/docs/source/img/skyplot.png" alt="satellite skyplot" width="600"/>
19+
<img src="https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/docs/source/img/glp_architecture.svg" alt="Architecture of gnss-lib-py library" width="800"/>
1920

2021
`gnss_lib_py` contains parsers for common file types used for
2122
storing GNSS measurements, benchmark algorithms for processing
2223
measurements into state estimates and visualization tools for measurements
2324
and state estimates.
2425
The modularity of `gnss_lib_py` is made possibly by the unifying
25-
`NavData` class, which contains methods to add, remove and modify
26-
numeric and string data consistently.
27-
We provide standard row names for `NavData` elements on the
26+
`NavData` class, with accompanying standard nomenclature, which can be
27+
found in the
2828
[reference page](https://gnss-lib-py.readthedocs.io/en/latest/reference/reference.html).
29-
These names ensure cross compatibility between different datasets and
30-
algorithms.
29+
The standard nomenclature ensures cross compatibility between different
30+
datasets and algorithms.
31+
32+
`NavData` combines the readability of `pandas.DataFrame` with `numpy.ndarray`
33+
allowing for easy and fast access of numbers or strings.
34+
We also provide functionality to add, remove and modify numeric and
35+
string data consistently along with commonly needed supporting
36+
functionality.
3137

3238
Documentation
3339
-------------
@@ -51,7 +57,7 @@ Code Organization
5157
├── parsers/ # Data parsers
5258
├── utils/ # GNSS and common utilities
5359
├── visualizations/ # plotting functions
54-
└── __init__.py
60+
└── __init__.py # Initialize gnss_lib_py
5561
├── notebooks/ # Interactive Jupyter notebooks
5662
├── tutorials/ # Notebooks with tutorial code
5763
├── results/ # Location for result images/files
@@ -61,7 +67,7 @@ Code Organization
6167
├── parsers/ # Tests for files in parsers
6268
├── utils/ # Tests for files in utils
6369
├── visualizations/ # Tests for files in visualizations
64-
└── test_gnss_lib_py.py # High level checks for repository
70+
└── conftest.py # Common methods for tests
6571
├── CONTRIBUTORS.md # List of contributors
6672
├── build_docs.sh # Bash script to build docs
6773
├── poetry.lock # Poetry specific Lock file
@@ -70,14 +76,19 @@ Code Organization
7076
```
7177
In the directory organization above:
7278

73-
* The `algorithms` directory contains localization algorithms that
79+
* The `algorithms` directory contains algorithms that
7480
work by passing in a `NavData` class. Currently, the following
7581
algorithms are implemented in the `algorithms`:
7682

7783
* Weighted Least Squares
7884
* Extended Kalman Filter
7985
* Calculating pseudorange residuals
8086
* Fault detection and exclusion
87+
88+
* The `navdata` directory defines the `NavData` class, its methods, and
89+
functions that operate on `NavData` instances, like `sort`, `concat`,
90+
and others.
91+
8192
* The data parsers in the `parsers` directory allow for either loading
8293
GNSS data into `gnss_lib_py`'s unifying `NavData` class or parsing
8394
precise ephemerides data.
@@ -96,6 +107,10 @@ In the directory organization above:
96107
visualizations, calculating multi-GNSS satellite PVT information,
97108
satellite simulation, file operations, etc.
98109

110+
* The `visualizations` directory contains methods for plotting quantities
111+
in `NavData`. It includes methods to plot metrics, positions on maps,
112+
and skyplots of satellites visible from the receiver position.
113+
99114
Installation
100115
------------
101116

build_docs.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22
# export requirements.txt for buildings docs
3+
poetry config warnings.export false
34
poetry export -f requirements.txt --output ./docs/source/requirements.txt --with dev --without-hashes
45
# export requirements.txt for Conda environment setup
56
poetry export -f requirements.txt --output ./requirements.txt --without-hashes

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
# -- Project information -----------------------------------------------------
3838

3939
project = 'gnss_lib_py'
40-
copyright = '2022, Stanford NAV Lab'
40+
copyright = '2024, Stanford NAV Lab'
4141
author = 'Ashwin Kanhere, Derek Knowles'
4242

4343

docs/source/contributing/contributing.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@ In your issue, please include:
1616
* Your operating system name and version.
1717
* Any details about your local setup that might be helpful in
1818
troubleshooting.
19-
* A minimal working example to reproduce the bug.
19+
* A minimal working example (MWE) to reproduce the bug. An MWE
20+
helps us reproduce the bug and troubleshoot the problem.
21+
For more details on how to create an MWE, see
22+
`this Stack Overflow guide <https://stackoverflow.com/help/minimal-reproducible-example>`.
2023

2124
Feature requests and feedback
2225
-----------------------------
2326

24-
The best way to send feedback is to file an issue on
27+
The best way to any send feedback is to file an issue on
2528
`GitHub <https://github.com/Stanford-NavLab/gnss_lib_py/issues>`__.
2629

2730
If you are proposing a feature:
@@ -31,8 +34,9 @@ If you are proposing a feature:
3134
* Keep the scope as narrow as possible, which will make it easier to
3235
implement.
3336
* This is a volunteer driven project and most contributions are a
34-
result of other research projects. If you implement your requested
35-
feature and submit a pull request, we will incorporate it.
37+
result of other research projects. We welcome outside implementations
38+
of additional features. If you implement your requested feature
39+
and submit a pull request, we will incorporate it.
3640

3741
Additional Contributing Pages
3842
-----------------------------

docs/source/contributing/development.rst

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@ Standard GitHub Workflow
2222
2323
2. If using poetry, follow the :ref:`developer install instructions<developer install>`
2424
to install pyenv, poetry, and the python dependencies. If using
25-
:code:`pip` or :code:`conda` for package management instead, use
26-
:code:`pip install -r requirements.txt` to install dependencies.
25+
:code:`pip` or :code:`conda` for package management instead, install
26+
dependencies using
27+
28+
.. code-block:: bash
29+
30+
pip install -r requirements.txt
2731
2832
3. Create a local branch:
2933

@@ -36,16 +40,21 @@ Standard GitHub Workflow
3640

3741
If the feature branch includes new functionality, you must also:
3842

39-
* update the "Code Organization" section of the :code:`README.md`
40-
* update the "Code Organization" section of
41-
:code:`docs/source/index.rst` to match the :code:`README.md`
4243
* add a section in the appropriate tutorial notebook located in
4344
:code:`notebooks/tutorials/*`
4445
* if the feature is in a new file, import the file in the
4546
`module's import block <https://github.com/Stanford-NavLab/gnss_lib_py/blob/main/gnss_lib_py/__init__.py>`__.
4647

48+
If directory level changes were made, you must also:
49+
50+
* update the "Code Organization" section of the :code:`README.md`
51+
* update the "Code Organization" section of
52+
:code:`docs/source/index.rst` to match the :code:`README.md`
53+
54+
4755
5. Add tests for the newly added code and ensure the new code is covered.
48-
See the :ref:`Testing<testing>` section for more details.
56+
See the :ref:`Testing<testing>` and :ref:`Coverage<coverage>` pages
57+
for more details.
4958

5059
6. When you're done making changes run all the tests with:
5160

@@ -93,9 +102,10 @@ Standard GitHub Workflow
93102
in the pull request, select the latest version release branch :code:`vX.Y.Z`
94103
(with the highest number of all such branches). *Do not target the*
95104
:code:`main` *branch in your pull request.* In the pull request,
96-
add a code review request for a current maintainer of the repository.
97-
The reviewers might add comments to ensure compliance with the rest
98-
of the code.
105+
add a code review request for a current maintainer of the repository
106+
and provide a brief description of the implemented features.
107+
The reviewers might add comments or suggest changes to ensure
108+
compliance with the rest of the code.
99109

100110
.. _navlab_dev:
101111

@@ -119,14 +129,18 @@ NAVLab GitHub Workflow
119129

120130
If the feature branch includes new functionality, you must also:
121131

122-
* update the "Code Organization" section of the :code:`README.md`
123-
* update the "Code Organization" section of
124-
:code:`docs/source/index.rst` to match the :code:`README.md`
125132
* add a section in the appropriate tutorial notebook located in
126133
:code:`notebooks/tutorials/*`
127134
* if the feature is in a new file, import the file in the
128135
`module's import block <https://github.com/Stanford-NavLab/gnss_lib_py/blob/main/gnss_lib_py/__init__.py>`__.
129136

137+
If directory level changes were made, you must also:
138+
139+
* update the "Code Organization" section of the :code:`README.md`
140+
* update the "Code Organization" section of
141+
:code:`docs/source/index.rst` to match the :code:`README.md`
142+
143+
130144
5. Add tests for the newly added code and ensure the new code is covered.
131145
See the :ref:`Testing<testing>` section for more details.
132146

@@ -214,19 +228,22 @@ Pull Request Review Workflow
214228
3. Verify that documentation is complete and updated if necessary. See
215229
the :ref:`Documentation<documentation>` section for more details on
216230
what is expected.
217-
218231
If the feature branch included new functionality, the following
219232
should have also been updated:
220233

221-
* the "Code Organization" section of the :code:`README.md`
222-
* the "Code Organization" section of
223-
:code:`docs/source/index.rst` to match the :code:`README.md`
224234
* the appropriate tutorial notebook located in
225235
:code:`notebooks/tutorials/*` with a simple example of the new
226236
functionality
227237
* if a new file was created, it should likely be imported in the
228238
`module's import block <https://github.com/Stanford-NavLab/gnss_lib_py/blob/main/gnss_lib_py/__init__.py>`__.
229239

240+
If the directory structure was modified, the following should also have
241+
been updated:
242+
243+
* the "Code Organization" section of the :code:`README.md`
244+
* the "Code Organization" section of
245+
:code:`docs/source/index.rst` to match the :code:`README.md`
246+
230247
4. Verify that all tests run on your system:
231248

232249
.. code-block:: bash
@@ -243,7 +260,7 @@ Pull Request Review Workflow
243260

244261
.. code-block:: bash
245262
246-
poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov-report=xml
263+
poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov-report=html
247264
poetry run coverage report
248265
249266
See the :ref:`Coverage Report<coverage>` section for more details.

0 commit comments

Comments
 (0)