Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
23ff2f5
Merge pull request #34 from osgeonepal/develop
kshitijrajsharma Apr 28, 2026
00049d6
bump: version 0.4.0 → 1.0.0
kshitijrajsharma Apr 28, 2026
87b9783
fix(lock): uv lock
kshitijrajsharma Apr 28, 2026
67a6c1f
docs(bumps-readme): userfriendly docs and add token in ci
kshitijrajsharma Apr 28, 2026
4aae09f
bump: version 1.0.0 → 1.0.1
kshitijrajsharma Apr 28, 2026
1c6f9ef
fix(license): fix license text on build
kshitijrajsharma Apr 28, 2026
a124461
fix(precommit): add lock to precommit hooks
kshitijrajsharma Apr 28, 2026
e8299bd
bump: version 1.0.1 → 1.0.2
kshitijrajsharma Apr 28, 2026
2e3b761
docs(lint): markdown
kshitijrajsharma Apr 28, 2026
8c72df9
docs(uvx): add uvx installation command
kshitijrajsharma Apr 28, 2026
a85c0a0
perf(url): auto switch the replication url base don the input span
kshitijrajsharma Apr 28, 2026
6c933a8
bump: version 1.0.2 → 1.0.3
kshitijrajsharma Apr 28, 2026
c4b49e6
fix(pipeline): Replace hardcoded "processing" label with stage-specif…
gauravbarall Apr 29, 2026
c2ee123
Merge pull request #35 from gauravbarall/test/master-v1.0.3
kshitijrajsharma Apr 29, 2026
c907aa5
Add litestar API endpoints
NirrWorks May 3, 2026
f0f3554
Add Railway deployment config
NirrWorks May 3, 2026
7614a52
Address API review comments
NirrWorks May 3, 2026
918a503
Delete railway.json
NirrWorks May 3, 2026
f610c98
Handle user stats when changeset metadata is unavailable
NirrWorks May 3, 2026
a4b8e2a
Addressed minor API review comments
NirrWorks May 6, 2026
92fe3f9
Install API dependencies in CI
NirrWorks May 6, 2026
a681709
Merge pull request #36 from NirrWorks/api/litestar-endpoints
kshitijrajsharma May 6, 2026
a4c254d
feat(infra): adds infra docker compose for hosting osmsg
kshitijrajsharma May 7, 2026
fe8e2c3
fix(schema): fixes shcmea being in multiple pieces , added test case …
kshitijrajsharma May 7, 2026
fa62380
Merge pull request #41 from osgeonepal/feat/infra
kshitijrajsharma May 7, 2026
1c5b8a9
Normalize API hashtag filters
NirrWorks May 7, 2026
3100a65
fix(caddy): adds caddy server and fix for the api rendering on 80 port
kshitijrajsharma May 7, 2026
545c4e7
Merge pull request #42 from NirrWorks/fix/normalize-api-hashtags
kshitijrajsharma May 7, 2026
2aaf1e9
Merge pull request #43 from osgeonepal/feat/infra
kshitijrajsharma May 7, 2026
81f5642
fix(docker): docker compose prod cluster
kshitijrajsharma May 7, 2026
c12be3c
fix(docker): resource limit in docker compose
kshitijrajsharma May 7, 2026
2fa5b76
fix(docker): caddy
kshitijrajsharma May 7, 2026
606c8f6
fix(health): patch health endpoint to include the last sequence and u…
kshitijrajsharma May 7, 2026
61bb58c
fix(url): api url arg default start end
kshitijrajsharma May 7, 2026
af5356f
fix(test): don't wait for fetch state to be there
kshitijrajsharma May 7, 2026
361d160
fix(validation): pydantic arg validation and docs with swagger
kshitijrajsharma May 7, 2026
ffc850d
refactor(alltags): refactors all tags and schema
kshitijrajsharma May 7, 2026
669fddf
fix(ci): fixes spatial extension loading bug
kshitijrajsharma May 7, 2026
66f7630
fix(changeset): null bug on bbox when newer one appears
kshitijrajsharma May 7, 2026
462a0b9
fix(url): respect url when it is passed for country
kshitijrajsharma May 7, 2026
b7a6ef3
fix(stats): fix stats inconsistency on null
kshitijrajsharma May 7, 2026
c4838da
fix(padding): fix changeset pad
kshitijrajsharma May 8, 2026
1da7f00
chore : add osmsg scme email
kshitijrajsharma May 8, 2026
1c0b649
fix(health): fix health endpoint to include last_ts and updated_at
kshitijrajsharma May 8, 2026
a3f91c8
fix(test): fix test cases on api
kshitijrajsharma May 8, 2026
da79b34
bump: version 1.0.3 → 1.1.0
kshitijrajsharma May 8, 2026
47c7add
fix(osmsg): resolved markdown stats bug
gauravbarall May 10, 2026
5305593
Merge pull request #46 from gauravbarall/fix/markdown-stats
kshitijrajsharma May 11, 2026
06c86e3
Add hashtags to stats API response
NirrWorks May 17, 2026
78f290a
Merge pull request #47 from NirrWorks/feature/hashtag-stats-api
kshitijrajsharma May 20, 2026
3759bf4
fix(osmsg): update service configuration for docker compose
kshitijrajsharma May 21, 2026
a51859e
fix(bug): replication timestamp
kshitijrajsharma May 21, 2026
d434627
chore(release): bump version to 1.1.1 and update changelog
kshitijrajsharma May 21, 2026
60b73c5
fix(worker): update worker service image to correct version
kshitijrajsharma May 21, 2026
b8ef328
fix(update): fix hte update bug on tick
kshitijrajsharma May 21, 2026
c6a7d68
test(tick): add test cases for tick to capture the url update bug on …
kshitijrajsharma May 21, 2026
0642d32
fix(osmsg): Fixed data-loss with update flag. Update now fully depend…
gauravbarall May 28, 2026
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
28 changes: 22 additions & 6 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,34 @@
.venv
.ruff_cache
.pytest_cache
.ty_cache
.mypy_cache
.coverage
.coverage.*
htmlcov
coverage.xml
dist
build
site
.cache
__pycache__
*.pyc
*.pyo
.env
.env.*
!.env.example
tests
docs
.editorconfig
.pre-commit-config.yaml
justfile
CHANGELOG.md
.dockerignore
*.duckdb
*.parquet
dist
build
*.egg-info
docs
tests
data
temp
temp_cs_parquet
temp_cf_parquet
.env
.DS_Store
*.egg-info
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Local dev — database for running osmsg CLI or the API standalone
DATABASE_URL=postgresql://osmsg:osmsg@localhost:5432/osmsg

# For self-hosting with docker compose, copy infra/.env.example instead
68 changes: 35 additions & 33 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,60 +11,62 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
lint-typecheck-test:
name: Lint, typecheck, test
pre-commit:
name: Pre-commit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6

- name: Install uv
uses: astral-sh/setup-uv@v7
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- run: uv sync --locked --group api
- run: uv run pre-commit run --all-files

- name: Install dependencies
run: uv sync --locked

- name: Ruff lint
run: uv run ruff check osmsg tests

- name: Ruff format check
run: uv run ruff format --check osmsg tests

- name: ty (Astral type checker)
run: uv run ty check osmsg

- name: Pytest (offline)
run: uv run pytest -m "not network"
test:
name: Test (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
python-version: ${{ matrix.python-version }}
- run: uv sync --locked --group api
- run: uv run pytest -m "not network"

build:
name: Build wheel + sdist
runs-on: ubuntu-latest
needs: lint-typecheck-test
needs: [pre-commit, test]
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- run: uv build --no-sources

smoke-last-hour:
name: Smoke — process last hour
smoke:
name: Smoke (last hour)
runs-on: ubuntu-latest
needs: lint-typecheck-test
needs: [pre-commit, test]
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- run: uv sync --locked --no-group dev
- name: Run osmsg --last hour --summary
run: |
uv run osmsg --last hour --tags building --tags highway --summary -f parquet -f markdown --delete-temp
- name: Show artifacts
run: ls -lh stats.parquet stats.duckdb stats_summary.parquet stats_summary.md
- run: uv run osmsg --last hour --tags building --tags highway --summary -f parquet -f markdown --delete-temp
- run: ls -lh stats.parquet stats.duckdb stats_summary.parquet stats_summary.md
49 changes: 36 additions & 13 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,37 @@
name: Docker (multi-arch)
name: Docker

on:
release:
types: [published]
push:
branches: [master, develop]
branches: [master]
tags: [v*]
pull_request:
branches: [master, develop]
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-push:
build:
name: Build ${{ matrix.target }}
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write
id-token: write
strategy:
matrix:
include:
- target: cli
image: ghcr.io/${{ github.repository }}
- target: api
image: ghcr.io/${{ github.repository }}-api
- target: worker
image: ghcr.io/${{ github.repository }}-worker
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
Expand All @@ -32,29 +43,41 @@ jobs:
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
images: ${{ matrix.image }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
type=raw,value=latest,enable={{is_default_branch}}

- name: Build and push (multi-arch)
uses: docker/build-push-action@v6
- name: Build and push
id: push
uses: docker/build-push-action@v5
with:
context: .
target: ${{ matrix.target }}
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Generate artifact attestation
if: github.event_name != 'pull_request'
uses: actions/attest-build-provenance@v1
with:
subject-name: ${{ matrix.image }}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true
26 changes: 0 additions & 26 deletions .github/workflows/publish.yml

This file was deleted.

27 changes: 27 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Release

on:
push:
tags:
- "v*"

permissions:
contents: read

jobs:
release:
name: Build and publish to PyPI
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/project/osmsg/
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- run: uv build --no-sources
- run: uv publish
env:
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ dist
.DS_Store
node_modules/
stats.*
*.parquet
*.parquet
12 changes: 12 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"default": true,
"MD013": {
"line_length": 120,
"code_blocks": false,
"tables": false,
"headings": false
},
"MD024": { "siblings_only": true },
"MD033": false,
"MD041": false
}
46 changes: 34 additions & 12 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,30 +1,52 @@
default_language_version:
python: python3

repos:
# Versioning
- repo: https://github.com/commitizen-tools/commitizen
rev: v3.29.0
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: commitizen
stages: [commit-msg]
- id: detect-private-key
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-merge-conflict
- id: check-toml
- id: check-yaml
- id: check-json
- id: fix-byte-order-marker

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.15.12"
rev: v0.15.12
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
args: [--fix]
- id: ruff-format

- repo: https://github.com/astral-sh/uv-pre-commit
rev: "0.11.8"
hooks:
- id: uv-lock

- repo: local
hooks:
- id: ty
name: ty
name: ty (type checker)
entry: uv run ty check
language: system
types_or: [python, pyi]
pass_filenames: false
require_serial: true
stages: [pre-commit]

- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.41.0
- id: pytest
name: pytest
entry: uv run pytest -m "not network"
language: system
stages: [pre-push]
pass_filenames: false
always_run: true

- repo: https://github.com/commitizen-tools/commitizen
rev: v4.6.0
hooks:
- id: markdownlint
args: [--fix, --ignore, CHANGELOG.md]
- id: commitizen
stages: [commit-msg]
Loading
Loading