Prepare v0.5.0 and start a changelog - #123
Merged
Merged
Conversation
Adds CHANGELOG.md in Keep a Changelog format, backfilled with the user-facing changes since v0.4.2, and the enforce-changelog workflow so pull requests have to record their own entry. A pull request that genuinely needs no entry can carry the skip-changelog label. Earlier releases predate the file and are left to the GitHub releases page rather than reconstructed. Also bumps the version to 0.5.0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NQ9zmXUHQtA5suiMB8UdA7
Removes Iqbal from the accuracy, single call, vector, solposx comparison, and Pareto sections, along with its entry in the solposx function map. The colour vectors are trimmed in step with the algorithm name vectors they are indexed against, so the two stay the same length. Iqbal remains documented in the positioning guide and the precision guide. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NQ9zmXUHQtA5suiMB8UdA7
Addresses the two CodeQL findings on the new workflow. Adds a permissions block granting only contents: read, since the job just inspects the diff. Six of the existing workflows already declare one. Pins dangoslen/changelog-enforcer to the commit behind v3.7.0 rather than the floating v3 tag, because a tag on a third party action can be repointed at different code. The other third party actions in this repository are still on tags, but that is not a reason to add another unpinned one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NQ9zmXUHQtA5suiMB8UdA7
The Arc80 bibliography entry pointed at "Collector Control System Simulation" by Archer, Brockett and Oakes, which is an unrelated 1980 conference paper. The refraction model actually comes from Archer's comment on Walraven's "Calculating the position of the sun", which is consistent with the docstring noting that the method was developed for the Walraven algorithm. Replaced with the correct entry, verified against Crossref, and the home page now links the DOI as the other refraction references do. Moves uncertainty propagation out of the home page and into its own guide, alongside the automatic differentiation one it mirrors. The home page keeps the short version and points at the guide for uncertain refraction parameters and event times. Names the changelog section v0.5.0 rather than leaving it unreleased. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NQ9zmXUHQtA5suiMB8UdA7
The guide had drifted from the code in three ways that would mislead a
contributor.
Its worked example called datetime2julian and subtracted the J2000 epoch by
hand, which is the pattern the package specifically avoids: a full Julian Date
is around 2.45e6, so materializing it at T leaves Float32 with no useful
precision. No algorithm in the package does this. Replaced with the timebase.jl
helpers, plus a warning explaining why.
The default refraction example built HUGHES(), which is HUGHES{Float64} and
silently promotes a Float32 or BigFloat observer back to Float64. NOAA uses
HUGHES{T}(); the guide now does too.
The export step described editing an explicit import list and export line in
src/SolarPosition.jl. That code does not exist, since the main module uses
@reexport using .Positioning, so exporting from the submodule is the whole job.
Also documents steps the guide never covered: registering the algorithm in the
shared test_algorithms() list, the 84.375 s grid convention for reference
timestamps, and the changelog entry the new workflow now requires. Test paths
corrected to test/positioning/, and the azimuth range to the half open interval
the code actually produces.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NQ9zmXUHQtA5suiMB8UdA7
The section opened with a nineteen line paragraph explaining everything the reader had not seen yet, followed by a seventy line code block. Splits the code into four steps, each with a sentence above it: the sun's position over the day, the tracker rotation, the angles of incidence, and the analytical ideal. The figure is built in a final block of its own. The observations move below the figure, where they can be read against it, and are cut to the three that are worth the space. All three were checked against the computed values: the fixed panel does beat the tracker at solar noon, 1.08 degrees against 28.92, the tracked angle of incidence reaches 0.05 degrees at azimuth 269.9, and the noon angle of incidence equals the solar zenith to the digit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NQ9zmXUHQtA5suiMB8UdA7
Contributor
Benchmark Results (Julia vlts)Time benchmarks
Memory benchmarks
|
Contributor
Benchmark Results (Julia v1)Time benchmarks
Memory benchmarks
|
Contributor
Benchmark Results (Julia vpre)Time benchmarks
Memory benchmarks
|
Adds a worked example to the uncertainty guide that sweeps a horizontal position uncertainty from a centimetre to a kilometre and plots the resulting elevation and azimuth uncertainty against the accuracy the algorithms themselves claim. Propagation is linear to first order, at about 9.0e-6 degrees of elevation and 2.8e-5 degrees of azimuth per metre. Azimuth is the more sensitive of the two and meets SPA's stated 0.0003 degrees at roughly 11 m of position error, where elevation needs 33 m. Against PSA's 0.0083 degrees the margins are 300 m and 920 m, so for a PSA-class algorithm the coordinates are never the limiting factor, while for SPA at the weaker end of a consumer fix the two are comparable. Reuses the Wong palette hues already used in the tracker figure, checked for colourblind separation, with the curves directly labelled since the orange sits below a 3:1 contrast ratio against the light background on its own. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NQ9zmXUHQtA5suiMB8UdA7
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #123 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 21 21
Lines 764 764
=========================================
Hits 764 764 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Prepares the v0.5.0 release and starts keeping a changelog.
Changelog
Adds
CHANGELOG.mdin Keep a Changelog format,backfilled with the user-facing changes since v0.4.2. That came from the 18 substantive
merged pull requests in that range, with the dependabot and pre-commit commits filtered out:
Michalsky, Iqbal,
Interpolatedandsolar_rate, type-generic precision, ForwardDiffsupport, Measurements support,
transit_sunrise_sunset_seconds, the TimeZones extensionmove, and the
unit_clampand magnitude-safe time base fixes.Releases before v0.5.0 predate the file and are left to the GitHub releases page rather than
reconstructed, which seemed like poor value for the archaeology involved.
Adds
.github/workflows/enforce-changelog.yml, theDocumenterVitepress.jl
workflow, so pull requests have to record their own entry. A pull request that genuinely
needs none can carry the
skip-changeloglabel.Version
Bumps
Project.tomlto 0.5.0. A minor bump rather than a patch, sincetransit_sunrise_sunset_secondsis new public API.Benchmarking guide
Drops Iqbal from the benchmarking guide: the accuracy, single call, vector, solposx
comparison, and Pareto sections, plus its entry in the solposx function map. The colour
vectors are trimmed in step with the algorithm name vectors they are indexed against, since a
mismatch there would be a
BoundsErrorduring the docs build rather than a cosmetic problem.Iqbal is untouched in the positioning and precision guides.
Note for the tag
The changelog entries sit under
## unreleasedrather than a## v0.5.0heading, so thatany further fixes for this release land in the same section and the date is not guessed. At
tag time that heading becomes
## v0.5.0 - <date>with a fresh empty## unreleasedaboveit.
🤖 Generated with Claude Code