33Development Guides
44==================
55
6- Here are a set of detailed guides depending on if you are a public user,
7- Stanford NAV Lab member, or a project maintainer.
6+ Here are a set of detailed guides depending on if you are a :ref: `public user<standard_dev> `,
7+ :ref: `Stanford NAV Lab member<navlab_dev> `, or a project maintainer
8+ :ref: `reviewing pull requests<pr_review> ` or
9+ :ref: `creating new release branches<release_workflow> `.
810
11+ .. _standard_dev :
912
1013Standard GitHub Workflow
1114------------------------
@@ -44,17 +47,15 @@ Standard GitHub Workflow
44476. Add tests for the newly added code and ensure the new code is covered.
4548 See the :ref: `Testing<testing> ` section for more details.
4649
47- 7. Add your name to the `contributors list <https://github.com/Stanford-NavLab/gnss_lib_py/blob/main/CONTRIBUTORS.sh >`__.
48-
49- 8. When you're done making changes run all the tests with:
50+ 7. When you're done making changes run all the tests with:
5051
5152 .. code-block :: bash
5253
5354 poetry run pytest
5455
5556 Make sure that all tests are passing.
5657
57- 9 . Verify that testing coverage has not decreased:
58+ 8 . Verify that testing coverage has not decreased:
5859
5960 .. code-block :: bash
6061
@@ -63,19 +64,34 @@ Standard GitHub Workflow
6364
6465 See the :ref: `Coverage Report<coverage> ` section for more details.
6566
67+ 9. Improve code readability by linting it. Run :code: `pylint ` to preview
68+ issues with the code:
69+
70+ .. code-block :: bash
71+
72+ poetry run python -m pylint path-to-file-to-lint
73+
74+ Resolve issues that do not impact how you have implemented your functionality,
75+ such as conforming to snake case naming, removing TODOs and using suggested
76+ defaults.
77+
667810. Ensure that system and IDE dependent files, like those in :code: `.idea `
6779 folders for PyCharm and :code: `.vscode ` folders for VS Code are not
6880 committed by updating the :code: `.gitignore ` file.
6981
70- 11. Commit your changes and publish your branch to GitHub:
82+ 11. Add your name to the `contributors list <https://github.com/Stanford-NavLab/gnss_lib_py/blob/main/CONTRIBUTORS.sh >`__.
83+
84+ 12. Commit your changes and publish your branch to GitHub:
7185
7286 .. code-block :: bash
7387
7488 git add -A
7589 git commit -m " <describe changes in this commit>"
7690 git push origin your-name/name-of-your-bugfix-or-feature
7791
78- 12. Submit a pull request through GitHub.
92+ 13. Submit a pull request through GitHub.
93+
94+ .. _navlab_dev :
7995
8096NAVLab GitHub Workflow
8197----------------------
@@ -126,11 +142,22 @@ NAVLab GitHub Workflow
126142 folders for PyCharm and :code: `.vscode ` folders for VS Code are not
127143 committed by updating the :code: `.gitignore ` file.
128144
129- 9. When you're ready to commit changes follow the steps below to
130- minimize unnecessary merging. This is especially important if
131- multiple people are working on the same branch. If you pull new
132- changes, then repeat the tests above to double check that everything
133- is still working as expected.
145+ 9. Improve code readability by linting it. Run :code: `pylint ` to preview
146+ issues with the code:
147+
148+ .. code-block :: bash
149+
150+ poetry run python -m pylint path-to-file-to-lint
151+
152+ Resolve issues that do not impact how you have implemented your functionality,
153+ such as conforming to snake case naming, removing TODOs and using suggested
154+ defaults.
155+
156+ 10. When you're ready to commit changes follow the steps below to
157+ minimize unnecessary merging. This is especially important if
158+ multiple people are working on the same branch. If you pull new
159+ changes, then repeat the tests above to double check that everything
160+ is still working as expected.
134161
135162 .. code-block :: bash
136163
@@ -141,11 +168,16 @@ NAVLab GitHub Workflow
141168 git commit -m " <describe changes in this commit>"
142169 git push origin your-name/name-of-your-bugfix-or-feature
143170
144- 10. Submit a pull request through the GitHub website. In the pull request,
171+ 11. Submit a pull request through the GitHub website. For the base branch
172+ in the pull request, select the latest version release branch :code: `vx.Y.Z `
173+ (with the highest number of all such branches). *Do not target the *
174+ :code: `main ` *branch in your pull request. * In the pull request,
145175 add a code review request for the current maintainers of the repository,
146- Ashwin Kanhere, Derek Knowles or Sriramya Bhamidipati . The reviewers
176+ Ashwin Kanhere or Derek Knowles . The reviewers
147177 might add comments to ensure compliance with the rest of the code.
148178
179+ .. _pr_review :
180+
149181Pull Request Review Workflow
150182----------------------------
151183
@@ -203,16 +235,24 @@ Pull Request Review Workflow
203235
204236 See the :ref: `Coverage Report<coverage> ` section for more details.
205237
206- 7. Submit your approval or any comments on GitHub.
238+ 7. Verify that the Pull Request targets the latest version release branch,
239+ called :code: `vX.Y.Z `. If it doesn't target this branch, change the base
240+ branch to the latest version release branch. If this branch
241+ doesn't exist, create the latest version release branch from :code: `main `
242+ before changing the base.
243+
244+ 8. Submit your approval or any comments on GitHub.
245+
246+ .. _release_workflow :
207247
208248New Package Release Workflow
209249----------------------------
210250
211- 1. Create new branch for the release :
251+ 1. Switch to the latest version release branch (with the highest number) :
212252
213253 .. code-block :: bash
214254
215- git checkout -b your-name/release-X .Y.Z
255+ git checkout -b vX .Y.Z
216256
217257 2. Open the ``pyproject.toml `` file and under the ``[tool.poetry] ``
218258 group change the ``version = X.Y.Z `` variable to match the new
0 commit comments