Skip to content

Commit aeff8f7

Browse files
committed
Merge branch 'main' into timeseries-loader
2 parents 3fdeb5f + 29f43dc commit aeff8f7

63 files changed

Lines changed: 4673 additions & 527 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# DO NOT EDIT THIS FILE MANUALLY.
2+
# Generated from maintainers.toml by scripts/sync_ownership.py.
3+
# Update maintainers.toml, then rerun the sync script.
4+
5+
* charles.r.graham@usace.army.mil eric.v.novotny@usace.army.mil # Default owners for repository-wide files and shared cwms-cli behavior
6+
/.github/CODEOWNERS charles.r.graham@usace.army.mil eric.v.novotny@usace.army.mil # Protect ownership rules themselves
7+
/cwmscli/commands/csv2cwms/ charles.r.graham@usace.army.mil
8+
/docs/cli/csv2cwms*.rst charles.r.graham@usace.army.mil
9+
/cwmscli/commands/blob.py charles.r.graham@usace.army.mil
10+
/docs/cli/blob.rst charles.r.graham@usace.army.mil
11+
/cwmscli/utils/update.py charles.r.graham@usace.army.mil
12+
/docs/cli/update.rst charles.r.graham@usace.army.mil
13+
/cwmscli/load/ charles.r.graham@usace.army.mil eric.v.novotny@usace.army.mil
14+
/docs/cli/load_*.rst charles.r.graham@usace.army.mil eric.v.novotny@usace.army.mil
15+
/cwmscli/usgs/ eric.v.novotny@usace.army.mil
16+
/cwmscli/commands/shef_critfile_import.py eric.v.novotny@usace.army.mil
17+
/cwmscli/commands/commands_cwms.py charles.r.graham@usace.army.mil eric.v.novotny@usace.army.mil # Shared Click wrappers span commands owned by both maintainers

.github/workflows/cli-tests.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,5 @@ jobs:
3636
if: matrix.python-version == '3.9'
3737
run: poetry run python scripts/smoke_test_cli.py
3838

39-
- name: Run full test suite (Python >= 3.10)
40-
if: matrix.python-version != '3.9'
39+
- name: Run full test suite
4140
run: poetry run pytest -q

.github/workflows/code-check.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@ jobs:
2222
poetry config virtualenvs.create false
2323
poetry install --no-interaction
2424
25+
- name: Verify generated ownership files
26+
run: poetry run python scripts/sync_ownership.py --check
27+
2528
- uses: pre-commit/action@v3.0.1

.github/workflows/docs.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
# Confirm the docs build works on PRs touching docs or code
2-
name: ReadTheDocs/Sphinx Validation
1+
name: Docs Validation
2+
33
on:
44
pull_request:
55
paths: ["docs/**", "cwmscli/**", "pyproject.toml"]
66
push:
77
branches: [main]
88
paths: ["docs/**", "cwmscli/**", "pyproject.toml"]
9+
schedule:
10+
- cron: "0 6 * * *"
11+
workflow_dispatch:
12+
913
jobs:
10-
build:
14+
html:
15+
if: github.event_name != 'schedule' && github.event_name != 'workflow_dispatch'
1116
runs-on: ubuntu-latest
1217
steps:
1318
- uses: actions/checkout@v6

.github/workflows/pr-title-release-hint.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,14 @@ jobs:
3535
}
3636
);
3737
38-
const hasPythonChanges = files.some((file) => file.filename.endsWith(".py"));
38+
const excludedPythonFiles = new Set([
39+
"docs/conf.py",
40+
]);
41+
const hasPythonChanges = files.some(
42+
(file) =>
43+
file.filename.endsWith(".py") &&
44+
!excludedPythonFiles.has(file.filename)
45+
);
3946
if (!hasPythonChanges || expected.test(pr.title)) {
4047
const comments = await github.paginate(
4148
github.rest.issues.listComments,

.github/workflows/release-please.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ jobs:
7070
uses: pypa/gh-action-pypi-publish@release/v1
7171

7272
- name: Sign Distribution
73-
uses: sigstore/gh-action-sigstore-python@v3.2.0
73+
uses: sigstore/gh-action-sigstore-python@v3.3.0
7474
with:
7575
inputs: |
7676
./dist/*.tar.gz

.pre-commit-config.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,23 @@ repos:
66
entry: poetry run black
77
language: system
88
types: [file, python]
9+
exclude: ^cwmscli/_generated/ownership_data\.py$
910

1011
- id: isort
1112
name: isort
1213
entry: poetry run isort
1314
language: system
1415
types: [file, python]
16+
exclude: ^cwmscli/_generated/ownership_data\.py$
1517

1618
- id: yamlfix
1719
name: yamlfix
1820
entry: poetry run yamlfix
1921
language: system
2022
types: [file, yaml]
23+
24+
- id: ownership-sync
25+
name: generated ownership files
26+
entry: poetry run python scripts/sync_ownership.py --check
27+
language: system
28+
pass_filenames: false

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.3.6"
2+
".": "0.4.0"
33
}

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# Changelog
22

3+
## [0.4.0](https://github.com/HydrologicEngineeringCenter/cwms-cli/compare/v0.3.8...v0.4.0) (2026-04-02)
4+
5+
6+
### Features
7+
8+
* 45 users cli ([#147](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/147)) ([08ae2a4](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/08ae2a45dbc7a3d945d056a1dda991c641a1743e))
9+
10+
## [0.3.8](https://github.com/HydrologicEngineeringCenter/cwms-cli/compare/v0.3.7...v0.3.8) (2026-03-30)
11+
12+
13+
### Bug Fixes
14+
15+
* 108 issue passing kl into cwms cli ([#170](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/170)) ([2d4d63e](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/2d4d63e5e2c2007ee74b1da042cfbca8dfe93cc5))
16+
* Add and test for friendly user error output on usgs ts command ([#177](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/177)) ([9b7886a](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/9b7886a0018eb90566d35d5d43fdc4223c8a75a5))
17+
18+
## [0.3.7](https://github.com/HydrologicEngineeringCenter/cwms-cli/compare/v0.3.6...v0.3.7) (2026-03-28)
19+
20+
21+
### Bug Fixes
22+
23+
* 128 add warningdisplay that there is a newer version avaiable ([#174](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/174)) ([b6a66df](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/b6a66dfceee39e9189a2f09f3f36008d7ae24b12))
24+
* 140 allow version target on update command ([#171](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/171)) ([407af1f](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/407af1f8695885c155660503798e85c8b243932c))
25+
* 51 change default precision case for csv2cwms ([#173](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/173)) ([fabf94e](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/fabf94ec6340724cf2a42797cf58aee342de62db))
26+
* 81 graceful error handling ([#176](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/176)) ([2dd6356](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/2dd6356a7db32074f4d49be33cb70101cc817a95))
27+
* Avoid circular reference failures in doc site ([#175](https://github.com/HydrologicEngineeringCenter/cwms-cli/issues/175)) ([fa8dc68](https://github.com/HydrologicEngineeringCenter/cwms-cli/commit/fa8dc68f7a2e139d6b0d5e2dcff3deb790552349))
28+
329
## [0.3.6](https://github.com/HydrologicEngineeringCenter/cwms-cli/compare/v0.3.5...v0.3.6) (2026-03-27)
430

531

CONTRIBUTING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ Once you have the repository on your system you can proceed:
1515
3. `python -m pip install -e .` - This adds cwms-cli and it's commands to your local path allowing you to live develop cwms-cli as a package and test the CLI functions on your system.
1616
4. Run `cwms-cli` to confirm everything installed!
1717

18+
## Ownership Metadata
19+
20+
Ownership metadata is centralized in [maintainers.toml](/maintainers.toml).
21+
22+
- Run `python scripts/sync_ownership.py` after editing `maintainers.toml` to regenerate `.github/CODEOWNERS` and synced package authors in [pyproject.toml](/pyproject.toml).
23+
- Run `python scripts/sync_ownership.py --check` to verify the generated ownership files are current.
24+
- The local `pre-commit` hook will check this if you installed it, but GitHub Actions is the enforcement point for contributors who do not have hooks installed.
25+
1826
## Running Tests
1927

2028
To run tests you can run: `poetry run pytest`

0 commit comments

Comments
 (0)