Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
8a57bc8
V0.1.1 (#58)
tusharchou Oct 30, 2024
d1c0894
0.1.1 BigQuery Release (#46)
tusharchou Oct 30, 2024
72ab669
pypi release through github actions (#60)
tusharchou Oct 30, 2024
0757da8
Create manual.yml
tusharchou Oct 30, 2024
cd2cbbe
Update publish.yml (#62)
tusharchou Oct 30, 2024
80c8286
Update publish.yml (#63)
tusharchou Oct 30, 2024
48efe67
Update pyproject.toml (#64)
tusharchou Oct 30, 2024
d1dbf62
Update publish.yml (#65)
tusharchou Oct 30, 2024
7464490
Brmhastra patch 1 (#67)
brmhastra Oct 30, 2024
773058f
Brmhastra patch 1 (#68)
brmhastra Oct 30, 2024
d3e26b7
Brmhastra patch 1 (#69)
brmhastra Oct 30, 2024
840223e
GitHub workflow for pypi release (#70)
mrutunjay-kinagi Oct 30, 2024
e39db41
GitHub workflow for pypi release (#71)
mrutunjay-kinagi Oct 30, 2024
8ab9414
Update publish.yml (#72)
mrutunjay-kinagi Oct 30, 2024
11143b4
Update publish.yml (#73)
mrutunjay-kinagi Oct 30, 2024
c9d1101
Release v1.1 changes (#74)
mrutunjay-kinagi Oct 31, 2024
c3f2aa1
Github action setup for release v1.1 (#76)
mrutunjay-kinagi Oct 31, 2024
bf783b4
Update publish.yml
redpheonixx Nov 1, 2024
9cb0189
Merge pull request #77 from tusharchou/redpheonixx-patch-1
redpheonixx Nov 1, 2024
81eab88
Merge pull request #61 from tusharchou/tusharchou-patch-4
redpheonixx Nov 1, 2024
00f5009
Update publish.yml (#78)
redpheonixx Nov 2, 2024
28d5787
Update publish.yml
redpheonixx Nov 2, 2024
5735908
Merge pull request #79 from tusharchou/redpheonixx-patch-3
redpheonixx Nov 2, 2024
66b31b0
Update publish.yml (#80)
redpheonixx Nov 3, 2024
6716cfd
Update pyproject.toml (#81)
redpheonixx Nov 4, 2024
f8c994a
Release v1.1 fix (#84)
mrutunjay-kinagi Nov 5, 2024
4980033
0.1.1 Pytest Added for BigQuery Source (#86)
mrutunjay-kinagi Nov 9, 2024
0e7e61d
fix(deps): Stabilize build dependencies and configuration
tusharchou Jul 17, 2025
ea64269
Merge pull request #95 from tusharchou/fix/stabilize-dependencies
redpheonixx Jul 17, 2025
0c4c40f
Add restaurant_data_mart_PRD.md for managing restaurant data with LDP…
sankalpmodi94 Jul 20, 2025
09755aa
feat(dx): Add Makefile and setup guide (#96)
tusharchou Jul 27, 2025
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
43 changes: 43 additions & 0 deletions .github/workflows/append_pr_history.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# This GitHub Actions workflow appends PR history to docs/PR_HISTORY.md after a PR is merged into main or a release branch.

name: Append PR History

on:
pull_request:
types: [closed]
branches:
- main
- 'release/**'

jobs:
append-pr-history:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
permissions:
contents: write # Required to push a commit
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure full git history for diff

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Append PR history
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_TITLE: ${{ github.event.pull_request.title }}
PR_MERGER: ${{ github.event.pull_request.merged_by.login }}
PR_DESCRIPTION: ${{ github.event.pull_request.body }}
run: python scripts/append_pr_history.py

- name: Commit and push PR_HISTORY.md
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add docs/PR_HISTORY.md
git commit -m "docs: update PR history for PR #${{ github.event.pull_request.number }}" || echo "No changes to commit"
git push
56 changes: 56 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: CI - Lint, Test, and Docs

on:
pull_request:
branches: [ main, fix-readthedocs, docs-sidebar-recipes-from-fix-readthedocs ]
push:
branches: [ main, fix-readthedocs, docs-sidebar-recipes-from-fix-readthedocs ]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --with dev,docs
- name: Lint with flake8
run: poetry run flake8 src/ tests/

test:
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --with dev,docs
- name: Run tests
run: poetry run pytest tests/

docs:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --with docs
- name: Build documentation
run: poetry run mkdocs build --strict

# Only allow merge if all jobs succeed (enforced by branch protection rules in GitHub settings)
32 changes: 32 additions & 0 deletions .github/workflows/manual.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# This is a basic workflow that is manually triggered

name: Manual workflow

# Controls when the action will run. Workflow runs when manually triggered using the UI
# or API.
on:
workflow_dispatch:
# Inputs the workflow accepts.
inputs:
name:
# Friendly description to be shown in the UI instead of 'name'
description: 'Person to greet'
# Default value if no value is explicitly provided
default: 'World'
# Input has to be provided for the workflow to run
required: true
# The data type of the input
type: string

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "greet"
greet:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Runs a single command using the runners shell
- name: Send greeting
run: echo "Hello ${{ inputs.name }}"
37 changes: 37 additions & 0 deletions .github/workflows/mkdocs_link_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This workflow checks for broken links in the built MkDocs site using mkdocs-htmlproofer-plugin.
# It runs on every push and pull request to main and release branches.

name: MkDocs Broken Link Check

on:
push:
branches:
- main
- 'release/**'
pull_request:
branches:
- main
- 'release/**'

jobs:
link-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
pip install -r requirements.txt || true
pip install mkdocs-htmlproofer-plugin

- name: Build docs and check links
run: |
mkdocs build
47 changes: 47 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Upload Python Package to PyPI when a Release is Created

on:
release:
types: [created]
workflow_dispatch:

jobs:
pypi-publish:
name: Publish release to PyPI
runs-on: ubuntu-latest
environment:
name: production
url: https://pypi.org/p/local-data-platform
permissions:
id-token: write

steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel poetry==1.8
cd local-data-platform
poetry install

- name: Clean up dist directory
run: |
cd local-data-platform
rm -rf dist/*

- name: Build package
run: |
cd local-data-platform
poetry build

- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@v1.11.0
with:
packages-dir: local-data-platform/dist/

4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@
.idea/modules.xml
.idea/vcs.xml
.idea/workspace.xml
**/__pycache__/
**/__pycache__/
docs/_build/
site/
36 changes: 11 additions & 25 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,32 +1,18 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
# .readthedocs.yml
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.9"
# You can also specify other tool versions:
# nodejs: "19"
# rust: "1.64"
# golang: "1.19"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/conf.py
python: "3.12"

# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub
# Configuration for MkDocs
mkdocs:
configuration: mkdocs.yml

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
# python:
# install:
# - requirements: docs/requirements.txt
# Python dependencies
python:
install:
- requirements: requirements.txt
- method: pip
path: .
84 changes: 84 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Makefile for the local-data-platform project

.PHONY: help all install reinstall lint test docs serve-docs clean generate-docs verify-pymdownx

# Default target to show help.
help:
@echo "Usage: make [target]"
@echo ""
@echo "Targets:"
@echo " all Run all quality checks (lint and test)."
@echo " help Show this help message."
@echo " install Install project dependencies using Poetry."
@echo " reinstall Force a clean re-installation of all dependencies."
@echo " lint Run flake8 linter on the project."
@echo " test Run pytest tests."
@echo " generate-docs Generate dynamic documentation content (e.g., issue lists)."
@echo " docs Build the MkDocs documentation."
@echo " serve-docs Build and serve the documentation locally on http://localhost:8000."
@echo " clean Remove temporary build files and caches."
@echo " verify-pymdownx Verify a specific documentation dependency."

POETRY_RUN := poetry run

# ==============================================================================
# Development Setup
# ==============================================================================

install:
@echo "--> Installing dependencies with Poetry..."
poetry install --with dev,docs

reinstall:
@echo "--> Removing existing virtual environment to ensure a clean state..."
@poetry env remove $$(poetry env info --path) || echo "No virtualenv found to remove, continuing..."
@echo "--> Reinstalling all dependencies from scratch..."
@$(MAKE) install

# ==============================================================================
# Quality & Testing
# ==============================================================================

all: lint test
@echo "--> All quality checks passed successfully."

lint:
@echo "--> Linting with flake8..."
$(POETRY_RUN) flake8 src/ tests/

test:
@echo "--> Running tests with pytest..."
$(POETRY_RUN) pytest tests/

# ==============================================================================
# Documentation
# ==============================================================================

generate-docs:
@echo "--> Generating dynamic documentation content..."
$(POETRY_RUN) python3 docs/scripts/generate_issue_list.py

docs:
@$(MAKE) generate-docs
@echo "--> Building documentation..."
$(POETRY_RUN) mkdocs build --strict

serve-docs:
@$(MAKE) generate-docs
@echo "--> Serving documentation..."
$(POETRY_RUN) mkdocs serve

# ==============================================================================
# Cleaning
# ==============================================================================

clean:
@echo "--> Cleaning up build artifacts and caches..."
@find . -type f -name "*.py[co]" -delete
@find . -type d -name "__pycache__" -exec rm -rf {} +
@rm -rf .pytest_cache .mypy_cache build dist *.egg-info site

# Verify if pymdownx.toc is importable within the Poetry environment
verify-pymdownx:
@echo "--> Verifying pymdownx.toc installation..."
$(POETRY_RUN) python3 -c "import pymdownx.toc" || echo "pymdownx.toc not found. Please run 'make install'."
Loading
Loading