Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .coveragerc

This file was deleted.

49 changes: 49 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Test

on:
push:
branches:
- master
pull_request:
types:
- opened
- synchronize
- reopened
schedule:
# run monthly to monitor dependency updates
- cron: "0 0 1 * *"

jobs:
build:
strategy:
fail-fast: false
matrix:
python: ["3.10", "3.11", "3.12", "3.13", "3.14"]
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install tox
run: pip install tox
- name: Run tox
run: tox -e ${{ matrix.python }}

# Fan-in over the build matrix so branch protection can require a single
# context instead of every (python, os) combination. needs.build.result is
# 'success' only if every matrix combination passed.
build-all:
name: build (all)
if: always()
needs: build
runs-on: ubuntu-latest
steps:
- name: Verify all matrix jobs passed
if: needs.build.result != 'success'
run: |
echo "build matrix result: ${{ needs.build.result }}"
exit 1
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ _build/
build/
dist/

# coverage
coverage.xml

# config files
.*
!.github/
!.gitignore
!.coveragerc
!.travis.yml
!.gitattributes
39 changes: 0 additions & 39 deletions .travis.yml

This file was deleted.

18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,24 @@ Development
* Remove deprecated `typing` dependency
* Switch from snapshottest to syrupy for snapshot testing.
* Update internal database (2025-03-12).
* Modernize packaging: pyproject.toml with hatchling replaces setup.py,
Pipfile, and MANIFEST.in; python >=3.10.
* Add test workflow (python/os matrix) and tox environments for current
python versions.
* Rewrite key-value cache on stdlib sqlite3; sqlalchemy is no longer used
or required. Cache urls must have the sqlite:/// form.
* Replace retry and attrs dependencies with stdlib equivalents; fix
pkg_resources import broken on setuptools >=81.
* Warn when loaded data is empty, truncated, or contains a multi-day
internal gap. Requests ending after a station's last available
observation previously returned NaN-padded series silently.
* Fix crash (`No objects to concatenate`) when all years in a requested
range are missing and `error_on_missing_years=False`.
* Loaders always return a series covering the full requested range.
* Add `error_on_missing_years` to daily ISD/GSOD loaders; default is True
for all loaders, matching the ISDStation method default.
* Tests run fully offline against captured NCEI access api payloads;
add coverage floor.

0.3.29
------
Expand Down
32 changes: 3 additions & 29 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,35 +23,9 @@ Releasing
5. make a new branch called release/vX.X.X
6. bump version - edit `__version__.py` with the new version
7. Rename `Development` section with the new version in CHANGELOG.md
8. commit changes
9. create a tag called vX.X.X on release/vX.X.X branch
10. push tag and branch
11. submit to pypi with `pipenv run python setup.py upload` (must have proper credentials)
12. merge release branch to master

Release command cheatsheet

```
git checkout master
git pull
git checkout -b release/vX.X.X

# then bump versions
vim eeweather/__version__.py
vim CHANGELOG.md
git commit -am "Bump version"

git tag vX.X.X
git push -u origin release/vX.X.X --tags
docker-compose run --rm pipenv run python setup.py upload
git checkout master
git pull
git merge release/vX.X.X
git push
```

Or, use the `./bump_version.sh X.X.X Y.Y.Y` command to generate some more
specific commands.
8. commit changes, create and merge the release PR
9. create a GitHub release with a tag called vX.X.X; the publish workflow
builds and uploads the package to pypi

Updating the internal db
------------------------
Expand Down
13 changes: 3 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
FROM python:3.12-bookworm
# bullseye required for GEOS>3.7.1 which is needed for newest cartopy

RUN apt-get update \
&& apt-get install -yqq \
Expand All @@ -12,18 +11,12 @@ RUN apt-get update \
# node for mapshaper
nodejs npm \
# for access to metadata.db
sqlite3 libsqlite3-dev
sqlite3 libsqlite3-dev

RUN npm install -g mapshaper

COPY Pipfile Pipfile
COPY Pipfile.lock Pipfile.lock
RUN pip install pipenv
RUN set -ex && pipenv install --system --deploy --dev
ENV PYTHONPATH=/app

COPY setup.py README.rst /app/
COPY pyproject.toml README.md LICENSE /app/
COPY eeweather/ /app/eeweather
RUN set -ex && cd /usr/local/lib/ && python /app/setup.py develop
RUN set -ex && pip install -e /app[dev]

WORKDIR /app
4 changes: 0 additions & 4 deletions MANIFEST.in

This file was deleted.

37 changes: 0 additions & 37 deletions Pipfile

This file was deleted.

Loading
Loading