release: prepare 0.2.0-rc.1 - #7
Merged
Merged
Conversation
Bumps the crate version and adjusts the packaging pipeline for the first beta/release-candidate build covering the complete v1 feature set (nav + obs pipelines, RINEX 3/4 conversion, Linux/macOS/Windows packaging). A SemVer pre-release identifier needs different handling per package format, discovered by actually running each packaging tool locally rather than assuming compatibility: - cargo-wix (Windows .msi) requires the pre-release identifier to be numeric or dot-separated (rc.1, not rc1) to derive a valid Windows ProductVersion. Using "0.2.0-rc1" as originally planned would have failed the Windows build outright. - cargo-deb (Debian .deb) auto-converts "-" to Debian's own "~" pre-release marker; no changes needed there. - cargo-generate-rpm (Fedora .rpm) hard-rejects "-" in the version entirely, since RPM reserves it as the name-version-release separator. Added an explicit package.metadata.generate-rpm.version override using RPM's "~" convention instead, since there's no way to derive this automatically from the SemVer version at build time - commented in both places to keep them in sync on future releases. release.yml now marks a tag with a pre-release identifier (containing "-") as a GitHub pre-release rather than "Latest". Verified by actually building the .deb and .rpm packages locally with the new version string, not just reading the tools' source for validation logic. Signed-off-by: Oleksandr Suvorov <cryosay@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Version bump and packaging fixes for the first beta/release-candidate build. No functional code changes to rinexfetch itself beyond what's already on main - this PR is about cutting a release, not adding a feature. Below is a full description of what 0.2.0-rc.1 actually does, end to end.
What rinexfetch does as of this release
Nav pipeline - fetches the combined multi-GNSS broadcast navigation file for a given time:
--time latestresolves to the most recent day with a usable nav product, walking backward through final and rapid tiers (BRDC00IGS, then BRD400DLR) across up to 5 fallback days if needed;--time <ISO8601>resolves to an explicit day.--systemsfilters the output to a chosen subset of gps, glonass, galileo, beidou, qzss, sbas (or all).--rinex-version 3or4selects the output format, converting from the source version where needed. Downconverting a RINEX-4-native source to RINEX 3 is detected and reported with a clear error when the underlying library can't represent it, rather than writing a broken file.Obs pipeline - optionally fetches per-station observation files for an explicit
--stationslist (modern 9-character IGS IDs only):Authentication - NASA Earthdata Login (URS) bearer token, attached as a header (no username/password exchange):
Reliability - structured, specific error types throughout (auth / not-yet-published / network / unknown-station / parse-format), download integrity via gzip's CRC32 trailer, and the fallback/isolation behavior described above.
Packaging - built and tested for all three major desktop platforms: .deb (Debian/Ubuntu), .rpm (Fedora), .pkg (macOS, arm64 and x86_64), .msi (Windows x86_64), plus a plain tarball/zip per platform. CI builds and tests on Linux, macOS, and Windows on every push/PR.
Release-specific changes in this PR
package.metadata.generate-rpm.versionoverride using RPM's "~" convention, commented in both places to keep it in sync on future releases.Test plan