Snowpylot-bump#49
Conversation
📝 WalkthroughWalkthroughVersion release for package 3.1.6 across metadata files, replacing snowpylot's pinned Git dependency with a versioned PyPI requirement (>=1.1.5), and adding verbose output to the release workflow. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@pyproject.toml`:
- Line 26: Update the unbounded dependency spec for snowpylot to use a
compatible upper bound (e.g. change "snowpylot>=1.1.5" to a caret/range-style
pin like "snowpylot>=1.1.5,<2.0.0" or "snowpylot~=1.1.5") in pyproject.toml so
major breaking releases are excluded; follow the same pinning style used for
numpy (e.g. numpy>=2.3.5,<2.4.0) to protect code that depends on snowpylot APIs
referenced in src/weac/utils/snowpilot_parser.py (caaml_parser,
snowpylot.layer.Layer, snowpylot.snow_pit.SnowPit,
snowpylot.snow_profile.DensityObs, and tuple-shaped attributes like
thickness/depth_top/grain_form_primary.grain_size_avg).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 3bf7b14e-c7b5-4dd2-9492-d3f0d7522c0e
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (5)
.github/workflows/release.ymlCITATION.cffdemo/demo.ipynbpyproject.tomlsrc/weac/__init__.py
| "pydantic>=2.11.7", | ||
| # Required for SLF CAAML parsing; can upgrade once version >=1.1.5 is released | ||
| "snowpylot @ git+https://github.com/connellymk/snowpylot.git@e1a0d7c3f16a05ea97f75e97bdacece86ac4704b", | ||
| "snowpylot>=1.1.5", |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
Consider adding an upper bound on snowpylot.
The spec snowpylot>=1.1.5 is unbounded, so any future 2.x (potentially breaking) release will be accepted at install time. The WEAC codebase depends on a fairly specific surface of the snowpylot API (caaml_parser, snowpylot.layer.Layer, snowpylot.snow_pit.SnowPit, snowpylot.snow_profile.DensityObs, plus tuple-shaped attributes like thickness, depth_top, grain_form_primary.grain_size_avg, etc. — see src/weac/utils/snowpilot_parser.py), which makes it vulnerable to silent breakage on a major bump.
Given the other pinning style in this file (e.g. numpy>=2.3.5,<2.4.0), a compatible-range constraint would be safer:
📦 Proposed constraint
- "snowpylot>=1.1.5",
+ "snowpylot>=1.1.5,<2",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "snowpylot>=1.1.5", | |
| "snowpylot>=1.1.5,<2", |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@pyproject.toml` at line 26, Update the unbounded dependency spec for
snowpylot to use a compatible upper bound (e.g. change "snowpylot>=1.1.5" to a
caret/range-style pin like "snowpylot>=1.1.5,<2.0.0" or "snowpylot~=1.1.5") in
pyproject.toml so major breaking releases are excluded; follow the same pinning
style used for numpy (e.g. numpy>=2.3.5,<2.4.0) to protect code that depends on
snowpylot APIs referenced in src/weac/utils/snowpilot_parser.py (caaml_parser,
snowpylot.layer.Layer, snowpylot.snow_pit.SnowPit,
snowpylot.snow_profile.DensityObs, and tuple-shaped attributes like
thickness/depth_top/grain_form_primary.grain_size_avg).
There was a problem hiding this comment.
Pull request overview
Bumps WEAC to v3.1.6 and switches the snowpylot dependency from a git-pinned revision to the published PyPI release, aligning packaging and lockfile metadata for a new release.
Changes:
- Update WEAC version from 3.1.5 → 3.1.6 across package metadata and demo notebook text.
- Replace
snowpylotgit dependency withsnowpylot>=1.1.5from PyPI and regenerateuv.lock. - Increase verbosity of the PyPI publish step in the GitHub Actions release workflow.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| uv.lock | Locks snowpylot to PyPI distribution metadata for v1.1.5 (sdist/wheel) instead of a git source. |
| src/weac/init.py | Bumps library __version__ to 3.1.6. |
| pyproject.toml | Bumps project version and updates dependency spec to snowpylot>=1.1.5. |
| demo/demo.ipynb | Updates referenced release version text to 3.1.6. |
| CITATION.cff | Updates citation version to 3.1.6 (but leaves release date unchanged). |
| .github/workflows/release.yml | Adds --verbose to twine upload in the release workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| orcid: "https://orcid.org/0000-0001-8320-8672" | ||
| version: 3.1.5 | ||
| version: 3.1.6 | ||
| date-released: 2021-12-30 |
| TWINE_USERNAME: __token__ | ||
| TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | ||
| run: uv run twine upload dist/* | ||
| run: uv run twine upload dist/* --verbose |
Bumped Snowpylot Version
Summary by CodeRabbit
Release Notes - Version 3.1.6