Skip to content

Commit

Permalink
Merge pull request #787 from swift-nav/silverjam/v2.7.6
Browse files Browse the repository at this point in the history
libsbp release 2.7.6
  • Loading branch information
Jason Mobarak committed Mar 12, 2020
2 parents 9500997 + c459a8a commit 58c8ec7
Show file tree
Hide file tree
Showing 34 changed files with 2,282 additions and 301 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Change Log

## [v2.7.6](https://github.com/swift-nav/libsbp/tree/v2.7.6)

[Full Changelog](https://github.com/swift-nav/libsbp/compare/v2.7.5...v2.7.6)

**Merged pull requests:**

- Update haskell installation instructions [\#785](https://github.com/swift-nav/libsbp/pull/785)
- \[INFRA-114\] Nojit fixes and unit testing [\#784](https://github.com/swift-nav/libsbp/pull/784)
- Add IMU type code for ST ASM330LLH \[STEP-63\] [\#783](https://github.com/swift-nav/libsbp/pull/783)

## [v2.7.5](https://github.com/swift-nav/libsbp/tree/v2.7.5)

[Full Changelog](https://github.com/swift-nav/libsbp/compare/v2.7.4...v2.7.5)
Expand Down
100 changes: 68 additions & 32 deletions HOWTO.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,57 +95,82 @@ Ubuntu 16.04.
0. Branch and tag a new release. Tag the release version:

```shell
# Produces most recent tag (e.g., v0.29)
# Produces most recent tag (e.g., v2.7.5)
git describe --abbrev=0 --tags
# Increment that value, create a new one (e.g, v0.30), and push
# Increment that value, create a new one (e.g, v2.7.6)
git tag -a INCREMENTED_TAG -m "Version INCREMENTED_TAG of libsbp."
```

1. Run `make all`. If running the release macOS you may need to install
1. Make sure that the repo is reported as clean, e.g.

```shell
git describe --tags --dirty --always
```

This will ensure that version information for language libraries
will be generated cleanly.

If running the release macOS you may need to install
llvm though brew (recommend installing llvm 6 with `brew instal llvm@6`)
then add it to your path with `export PATH=$(brew --prefix llvm@6)/bin:$PATH`.
You can also use Nixpkgs to setup a complete build environment for
running a release. [Install Nixpkgs](https://nixos.org/nix/download.html)
and then run `nix-shell` prior to running `make all`.

2. This will bump versions in the following files:
- `python/sbp/RELEASE-VERSION`
- `docs/sbp.pdf`
- `haskell/sbp.cabal`
- `package.json`
- `c/include/libsbp/version.h`
- `package-lock.json` -- you can typically revert all the changes in this
file except for the libsbp version change:
```shell
git add -p package-lock.json
# enter 'y' for version change, 'd' to stop adding changes
git commit -m 'package-lock.json version bump'
git checkout package-lock.json
```
Commit the docs, these above version bumps and re-tag:
```shell
git add docs/sbp.pdf
git commit -m 'Update docs'
git add python/sbp/RELEASE-VERSION haskell/sbp.cabal.m4 package.json c/include/libsbp/version.h
git commit -m 'Version bumps'
git tag -f -a INCREMENTED_TAG -m "Version INCREMENTED_TAG of libsbp."
```

3. Verify that package dependencies, their version numbers, and the
2. Run make tagets for each language and re-tag. For python:

```shell
make python pythonNG
git add python/sbp/RELEASE-VERSION
git commit -m 'INCREMENTED_TAG'
git tag -f -a INCREMENTED_TAG -m "Version INCREMENTED_TAG of libsbp."
```

For Java, jsonschema, and Protobuf (these should not require bumping the git tag,
unless the geneated files are out of date):

```shell
make java jsonschema protobuf rust
```

For C, Haskell and JavaScript:

```shell
make c haskell javascript
git add c/include/libsbp/version.h sbp.cabal package.json package-lock.json
git commit -m 'INCREMENTED_TAG'
git tag -f -a INCREMENTED_TAG -m "Version INCREMENTED_TAG of libsbp."
```

3. Finally, build the docs:

```shell
make docs
```

Then commit the docs and re-tag:

```shell
git add docs/sbp.pdf
git commit -m 'Update docs'
git tag -f -a INCREMENTED_TAG -m "Version INCREMENTED_TAG of libsbp."
```

4. Verify that package dependencies, their version numbers, and the
libsbp version number in the C, Python, JavaScript, and LaTeX developer
documentation are consistent.

- JavaScript: Manually update `package-lock.json`.

- Others: should be automatically extracted from git tag

4. Update the CHANGELOG details with `make release`. Submit a pull request and
5. Update the CHANGELOG details with `make release`. Submit a pull request and
get it merged. This requires
[github-changelog-generator](https://github.com/skywinder/github-changelog-generator),
and a `CHANGELOG_GITHUB_TOKEN` in your `PATH` if you don't already have
them.

5. After the release PR is merged, recreate the tag:
6. After the release PR is merged, recreate the tag:
```shell
git checkout master
git pull
Expand All @@ -154,11 +179,11 @@ Ubuntu 16.04.
git push origin INCREMENTED_TAG
```

6. Create a release on
7. Create a release on
[GitHub](https://github.com/swift-nav/libsbp/releases) and add the
RELEASE_NOTES.md.

7. Distribute release packages. You can attempt to run all releases
8. Distribute release packages. You can attempt to run all releases
with `make dist` -- this will likely not work through... it is
advisable to run each dist target separately. In particular:

Expand All @@ -174,7 +199,7 @@ Ubuntu 16.04.
update all other supported languages when we make an official firmware
release.

8. Releases are not only never perfect, they never really end. Please
9. Releases are not only never perfect, they never really end. Please
pay special attention to any downstream projects or users that may
have issues or regressions as a consequence of the release version.

Expand Down Expand Up @@ -283,6 +308,17 @@ Tox also seems to have issues interacting with conda environments. The easiest
way to work around this is to remove conda from your path and make sure tox is
installed with a Python2 version of the interpreter.

### Tox error: `ERROR: cowardly refusing to delete envdir`

Tox may fail with the following error:

ERROR: cowardly refusing to delete `envdir` (it does not look like a virtualenv): /home/ubuntu/dev/libsbp/python/.tox/py38-nojit

There's an open tox issue for this: https://github.com/tox-dev/tox/issues/1354
-- the only workaround that resolved this was to downgrade tox:

pip install --upgrade --force-reinstall tox==3.12.1

# Contributions

This library is developed internally by Swift Navigation. We welcome
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ help:
@echo " quicktype-elm generate Elm module from JSON Schema"
@echo

all: c python pythonNG javascript java docs haskell protobuf rust
all: c python pythonNG javascript java docs haskell protobuf rust jsonschema
clean:
@echo "Removing the ./c/build directory..."
rm -r $(SWIFTNAV_ROOT)/c/build
Expand Down Expand Up @@ -267,12 +267,12 @@ gen-quicktype-typescript:

gen-quicktype-javascript:
$(call announce-begin,"Generating JavaScript module from JSON Schema")
(cd jsonschema; quicktype -l javascript --src-lang schema *.json >../sbpjson/javascript/SbpModule.js)
(cd jsonschema; quicktype -l javascript --src-lang schema *.json >../sbpjson/javascript/SbpJson.js)
$(call announce-begin,"Finished generating JavaScript module from JSON Schema definitions")

gen-quicktype-elm:
$(call announce-begin,"Generating Elm module from JSON Schema")
(cd jsonschema; quicktype -l elm --module SbpJson --src-lang schema *.json >../sbpjson/elm/SbpModule.elm)
(cd jsonschema; quicktype -l elm --module SbpJson --src-lang schema *.json >../sbpjson/elm/SbpJson.elm)
$(call announce-begin,"Finished generating Elm module from JSON Schema definitions")

# Testers
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ repository is organized into the following directory structure:
* [`haskell`](https://github.com/swift-nav/libsbp/tree/HEAD/haskell): Haskell client and examples.
* [`java`](https://github.com/swift-nav/libsbp/tree/HEAD/java): Java client library and examples.
* [`javascript`](https://github.com/swift-nav/libsbp/tree/HEAD/javascript): JavaScript client library and examples.
* [`rust`](https://github.com/swift-nav/libsbp/tree/HEAD/rust): Rust client library and examples.
* [`sbpjson`](https://github.com/swift-nav/libsbp/tree/HEAD/sbpjson): Tools for parsing SBP-JSON.

Except for the `generator`, all of the above are generated and should not be modified directly.

Expand Down
2 changes: 1 addition & 1 deletion c/include/libsbp/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
/** Protocol minor version. */
#define SBP_MINOR_VERSION 7
/** Protocol patch version. */
#define SBP_PATCH_VERSION 5
#define SBP_PATCH_VERSION 6

/** \} */

Expand Down
Binary file modified docs/sbp.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion haskell/sbp.cabal
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: sbp
version: 2.7.5
version: 2.7.6
synopsis: SwiftNav's SBP Library
homepage: https://github.com/swift-nav/libsbp
license: LGPL-3
Expand Down
2 changes: 1 addition & 1 deletion jsonschema/GridElement.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "#GridElement",
"title":"GridElement",
"description":"Contains one tropo delay, plus STEC residuals for each satellite at the,\ngrid point.\n",
"description":"Contains one tropo delay (mean and stddev), plus STEC residuals (mean and,\nstddev) for each satellite at the grid point.\n",
"type": "object",
"properties": {
"index": {"type": "integer"},
Expand Down
28 changes: 28 additions & 0 deletions jsonschema/GridElementNoStd.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"copyright": [
"Copyright (C) 2019 Swift Navigation Inc.",
"Contact: Swift Navigation <dev@swiftnav.com>",
"",
"This source is subject to the license found in the file 'LICENSE' which must",
"be be distributed together with this source. All other rights reserved.",
"",
"THIS CODE AND INFORMATION IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND,",
"EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED",
"WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE."
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "#GridElementNoStd",
"title":"GridElementNoStd",
"description":"Contains one tropo delay, plus STEC residuals for each satellite at the,\ngrid point.\n",
"type": "object",
"properties": {
"index": {"type": "integer"},
"tropo_delay_correction": {"$ref": "TroposphericDelayCorrectionNoStd.json"},
"stec_residuals": {"type": "array", "items": {"$ref": "STECResidualNoStd.json"}}
},
"required": [
"index",
"tropo_delay_correction",
"stec_residuals"
]
}
46 changes: 46 additions & 0 deletions jsonschema/MsgPosECEFCovGnss.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"copyright": [
"Copyright (C) 2019 Swift Navigation Inc.",
"Contact: Swift Navigation <dev@swiftnav.com>",
"",
"This source is subject to the license found in the file 'LICENSE' which must",
"be be distributed together with this source. All other rights reserved.",
"",
"THIS CODE AND INFORMATION IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND,",
"EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED",
"WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE."
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "#MsgPosECEFCovGnss",
"title":"MsgPosECEFCovGnss",
"description":"The position solution message reports absolute Earth Centered,\nEarth Fixed (ECEF) coordinates and the status (single point vs,\npseudo-absolute RTK) of the position solution. The message also,\nreports the upper triangular portion of the 3x3 covariance matrix.,\nIf the receiver knows the surveyed position of the base station and has,\nan RTK solution, this reports a pseudo-absolute position,\nsolution using the base station position and the rover's RTK,\nbaseline vector. The full GPS time is given by the preceding,\nMSG_GPS_TIME with the matching time-of-week (tow).\n",
"type": "object",
"properties": {
"tow": {"type": "integer"},
"x": {"type": "number"},
"y": {"type": "number"},
"z": {"type": "number"},
"cov_x_x": {"type": "number"},
"cov_x_y": {"type": "number"},
"cov_x_z": {"type": "number"},
"cov_y_y": {"type": "number"},
"cov_y_z": {"type": "number"},
"cov_z_z": {"type": "number"},
"n_sats": {"type": "integer"},
"flags": {"type": "integer"}
},
"required": [
"tow",
"x",
"y",
"z",
"cov_x_x",
"cov_x_y",
"cov_x_z",
"cov_y_y",
"cov_y_z",
"cov_z_z",
"n_sats",
"flags"
]
}
36 changes: 36 additions & 0 deletions jsonschema/MsgPosECEFGnss.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"copyright": [
"Copyright (C) 2019 Swift Navigation Inc.",
"Contact: Swift Navigation <dev@swiftnav.com>",
"",
"This source is subject to the license found in the file 'LICENSE' which must",
"be be distributed together with this source. All other rights reserved.",
"",
"THIS CODE AND INFORMATION IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND,",
"EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED",
"WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE."
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "#MsgPosECEFGnss",
"title":"MsgPosECEFGnss",
"description":"The position solution message reports absolute Earth Centered,\nEarth Fixed (ECEF) coordinates and the status (single point vs,\npseudo-absolute RTK) of the position solution. If the rover,\nreceiver knows the surveyed position of the base station and has,\nan RTK solution, this reports a pseudo-absolute position,\nsolution using the base station position and the rover's RTK,\nbaseline vector. The full GPS time is given by the preceding,\nMSG_GPS_TIME with the matching time-of-week (tow).\n",
"type": "object",
"properties": {
"tow": {"type": "integer"},
"x": {"type": "number"},
"y": {"type": "number"},
"z": {"type": "number"},
"accuracy": {"type": "integer"},
"n_sats": {"type": "integer"},
"flags": {"type": "integer"}
},
"required": [
"tow",
"x",
"y",
"z",
"accuracy",
"n_sats",
"flags"
]
}
46 changes: 46 additions & 0 deletions jsonschema/MsgPosLLHCovGnss.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"copyright": [
"Copyright (C) 2019 Swift Navigation Inc.",
"Contact: Swift Navigation <dev@swiftnav.com>",
"",
"This source is subject to the license found in the file 'LICENSE' which must",
"be be distributed together with this source. All other rights reserved.",
"",
"THIS CODE AND INFORMATION IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND,",
"EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED",
"WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE."
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "#MsgPosLLHCovGnss",
"title":"MsgPosLLHCovGnss",
"description":"This position solution message reports the absolute geodetic,\ncoordinates and the status (single point vs pseudo-absolute RTK),\nof the position solution as well as the upper triangle of the 3x3,\ncovariance matrix. The position information and Fix Mode flags should,\nfollow the MSG_POS_LLH message. Since the covariance matrix is computed,\nin the local-level North, East, Down frame, the covariance terms follow,\nwith that convention. Thus, covariances are reported against the \"downward\",\nmeasurement and care should be taken with the sign convention.\n",
"type": "object",
"properties": {
"tow": {"type": "integer"},
"lat": {"type": "number"},
"lon": {"type": "number"},
"height": {"type": "number"},
"cov_n_n": {"type": "number"},
"cov_n_e": {"type": "number"},
"cov_n_d": {"type": "number"},
"cov_e_e": {"type": "number"},
"cov_e_d": {"type": "number"},
"cov_d_d": {"type": "number"},
"n_sats": {"type": "integer"},
"flags": {"type": "integer"}
},
"required": [
"tow",
"lat",
"lon",
"height",
"cov_n_n",
"cov_n_e",
"cov_n_d",
"cov_e_e",
"cov_e_d",
"cov_d_d",
"n_sats",
"flags"
]
}

0 comments on commit 58c8ec7

Please sign in to comment.