Skip to content
Open

2.0.0 #300

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
4c0795f
adding `comp_events` table
digitalghost-dev May 20, 2026
e549d22
updating paths to ignore
digitalghost-dev May 20, 2026
5914b4d
adding `tcg` and `vg` tournament data
digitalghost-dev May 20, 2026
5125303
removing files
digitalghost-dev May 21, 2026
c8d81c8
changing to have only one events table
digitalghost-dev May 21, 2026
2726028
updating paths to ignore
digitalghost-dev May 23, 2026
42908df
removing files. moving to a single extract, load file
digitalghost-dev May 23, 2026
eb619c3
soda data quality checks
digitalghost-dev May 23, 2026
ae5ccb2
initial competitive data pipeline
digitalghost-dev May 23, 2026
434c580
adding dbt models
digitalghost-dev May 23, 2026
636816f
removing redundant constraint setting
digitalghost-dev May 24, 2026
554ad7a
updating sources
digitalghost-dev May 24, 2026
b1762c0
applying `DRY`
digitalghost-dev May 24, 2026
241fb06
adding dbt jobs
digitalghost-dev May 26, 2026
4c25673
adding competitive functions
digitalghost-dev May 26, 2026
bb6117e
initial rust layout
digitalghost-dev May 28, 2026
1e3fb05
initial cache service (#288)
digitalghost-dev May 28, 2026
40c1fd7
initial `struct`, `enum`, and `main()` layout (#289)
digitalghost-dev May 30, 2026
816df7c
initial aggregate service (#289)
digitalghost-dev May 30, 2026
ca6d973
adding in `ProfileOptions` struct (#289)
digitalghost-dev May 30, 2026
5e69b45
adding tests (#289)
digitalghost-dev May 30, 2026
f33f426
adding aggregation service info (#289)
digitalghost-dev May 31, 2026
3e37d32
initial data structure layout (#289)
digitalghost-dev May 31, 2026
24d4198
updating deps
digitalghost-dev May 31, 2026
8619845
minor renames (#289)
digitalghost-dev May 31, 2026
862cbb0
implementing pokemon profile fetching and building (#289)
digitalghost-dev May 31, 2026
bbd3258
replacing with pokemon profile (#289)
digitalghost-dev May 31, 2026
726c8e3
adding functions and structs for `--defenses` flag (#289)
digitalghost-dev Jun 1, 2026
099cc2b
adding functions and structs for `--moves` flag (#289)
digitalghost-dev Jun 1, 2026
2261888
applying `rustfmt` to files (#288, #289)
digitalghost-dev Jun 1, 2026
b348349
adding test files for aggregation service (#289)
digitalghost-dev Jun 1, 2026
5be244d
fixing formatting issues (#288, #289)
digitalghost-dev Jun 1, 2026
356f26c
calling `pokemon.species.name` to get correct data (#289)
digitalghost-dev Jun 1, 2026
caa084e
Merge branch 'main' into 2.0.0
digitalghost-dev Jun 3, 2026
4fb02cd
Merge remote-tracking branch 'origin/main' into 2.0.0
digitalghost-dev Jun 4, 2026
42abf12
removing `natures` command (#290)
digitalghost-dev Jun 4, 2026
13ec5e3
updating test data
digitalghost-dev Jun 4, 2026
7a41f7f
adding `mechanics` command (#292)
digitalghost-dev Jun 4, 2026
70b13ec
updating command list
digitalghost-dev Jun 4, 2026
e7a5a30
adding new error formatting to accompany `pflag` change (#299)
digitalghost-dev Jun 4, 2026
a8c053d
adding `pflag` dependency (#299)
digitalghost-dev Jun 4, 2026
539b060
updating to use `pflag` library (#299)
digitalghost-dev Jun 4, 2026
46f477b
moving `tcg` files into `comp` directory (#293)
digitalghost-dev Jun 4, 2026
df1bf24
updating test data
digitalghost-dev Jun 4, 2026
0e8762b
removing stale test data
digitalghost-dev Jun 5, 2026
a2ee2e2
removing `tcg` command flags (#293)
digitalghost-dev Jun 6, 2026
e3f8170
updating docs for the command (#292)
digitalghost-dev Jun 6, 2026
3bed76e
adding `comp` command (#293)
digitalghost-dev Jun 6, 2026
e18ea70
replacing tcg `--web` flag with a `w` keystroke (#293)
digitalghost-dev Jun 6, 2026
c280271
initial Pokémon data ETL
digitalghost-dev Jun 8, 2026
083c5aa
initial dbt models for Pokémon data
digitalghost-dev Jun 8, 2026
2be0288
updating sources
digitalghost-dev Jun 8, 2026
78ab16f
materializing as `incremental`
digitalghost-dev Jun 8, 2026
501785d
creating Dagster assets
digitalghost-dev Jun 9, 2026
a43a735
updating macro to accept arguments
digitalghost-dev Jun 9, 2026
7ca0f0e
removing champions nonmenclature
digitalghost-dev Jun 9, 2026
e1fd3b5
creating paramaterized function
digitalghost-dev Jun 9, 2026
20d601c
adding `pokeapi` and `pikalytics` data
digitalghost-dev Jun 9, 2026
d2ff435
removing champions source
digitalghost-dev Jun 9, 2026
34a3ec0
updating version numbers
digitalghost-dev Jun 9, 2026
50494fa
calculating win percentages
digitalghost-dev Jun 9, 2026
c3501c8
retrieving city name from event
digitalghost-dev Jun 9, 2026
42f1dcd
creating `usage` pipeline
digitalghost-dev Jun 10, 2026
d81c60d
creatig `top-teams` pipeline
digitalghost-dev Jun 10, 2026
a6cb6d4
updating sources
digitalghost-dev Jun 10, 2026
76159a5
adding macro for Pokémon name joining
digitalghost-dev Jun 10, 2026
6e3e9ca
creating `pokemon-comp-info` pipeline
digitalghost-dev Jun 10, 2026
1c5201a
updating docs
digitalghost-dev Jun 10, 2026
e03fa58
renaming card_data -> data_platform
digitalghost-dev Jun 10, 2026
da0535c
moving `pflag` to direct requirement (#299)
digitalghost-dev Jun 10, 2026
a63e0d7
updating project name
digitalghost-dev Jun 10, 2026
a745e9e
creating relationships
digitalghost-dev Jun 10, 2026
f49e484
renaming files
digitalghost-dev Jun 11, 2026
02c11d2
creating `pokemon-sprites` pipeline
digitalghost-dev Jun 11, 2026
37891f1
removing pikalytics assets as dependents
digitalghost-dev Jun 11, 2026
ad7e2d4
changing unique key
digitalghost-dev Jun 12, 2026
2f9376e
bringing in special events
digitalghost-dev Jun 12, 2026
0fceba9
updating tests (#293)
digitalghost-dev Jun 12, 2026
4895b8e
updating dashboard to read from new source (#293)
digitalghost-dev Jun 12, 2026
ac9b399
creating new views
digitalghost-dev Jun 12, 2026
f56f301
organizing assets
digitalghost-dev Jun 13, 2026
21eec6c
adding new section
digitalghost-dev Jun 13, 2026
94b64e7
updating GIF paths
digitalghost-dev Jun 13, 2026
fd14b09
adding library
digitalghost-dev Jun 13, 2026
092ad31
removing files in favor of a shared shell (#293)
digitalghost-dev Jun 13, 2026
0fd3c53
updating tests (#293)
digitalghost-dev Jun 13, 2026
b6380f9
adding `vgc` dashboard (#293)
digitalghost-dev Jun 13, 2026
4bd729b
moving shared files into one package (#293)
digitalghost-dev Jun 13, 2026
9675925
updating `tcg` dashboard (#293)
digitalghost-dev Jun 13, 2026
2d18189
new view for `vgc` standings (#293)
digitalghost-dev Jun 13, 2026
ac00b99
updating tests (#293)
digitalghost-dev Jun 13, 2026
59eaa0c
updating `usage` tab (#293)
digitalghost-dev Jun 13, 2026
d4acdf8
removing `--types` flag
digitalghost-dev Jun 14, 2026
728698b
change `--defense` flag name (#291)
digitalghost-dev Jun 14, 2026
8971d4f
wiring caching service to CLI (#288)
digitalghost-dev Jun 15, 2026
421cce1
wiring caching service to CLI (#288)
digitalghost-dev Jun 15, 2026
3d1db3e
truncating table instead of drop/replace
digitalghost-dev Jun 15, 2026
571ab2b
applying `style.WarningColor()` to output (#288)
digitalghost-dev Jun 15, 2026
7794cd3
parsing the value as a boolean (#288)
digitalghost-dev Jun 15, 2026
62aafb9
bundle `poke-cache` into package + release pipelines, add smoke test…
digitalghost-dev Jun 16, 2026
48f7730
creating short documentation on the `caching` and `aggregation` services
digitalghost-dev Jun 16, 2026
5f99405
adding documentation on `comp` command
digitalghost-dev Jun 16, 2026
70ca3c0
updating `comp` gif
digitalghost-dev Jun 16, 2026
00f4108
adding quotes around version number
digitalghost-dev Jun 16, 2026
8146cb0
adding rust chache service, updating Go version
digitalghost-dev Jun 16, 2026
7779cea
renaming files for consistency
digitalghost-dev Jun 16, 2026
899bbdc
implementing `pflag` library (#299)
digitalghost-dev Jun 16, 2026
fa0366f
fixing "inefficient string concatenation in call to `WriteString()` w…
digitalghost-dev Jun 16, 2026
f046e32
adding Rust standalone binaries
digitalghost-dev Jun 16, 2026
4c10f88
the FK macros now only fire for the models that actually built
digitalghost-dev Jun 16, 2026
18766a0
changed all 5 calls to `fetch_n8n_webhook_secret("n8n_webhook")`
digitalghost-dev Jun 17, 2026
6d42351
moving to truncation instead of drop and create
digitalghost-dev Jun 17, 2026
b4d350f
adding initial champions dashboard layout (#301)
digitalghost-dev Jun 17, 2026
4743315
removing `n` and `p` navigation options
digitalghost-dev Jun 17, 2026
34e0a56
adding detail pane, removing `rank`, renaming `author` to `player` (#…
digitalghost-dev Jun 17, 2026
530d27f
updating installation instructions
digitalghost-dev Jun 17, 2026
cdfb211
adding tests
digitalghost-dev Jun 18, 2026
5a07e48
adding Pokémon Overview page
digitalghost-dev Jun 18, 2026
efca477
unexporting internal TUI model struct fields
digitalghost-dev Jun 18, 2026
0c7125b
applying `go fmt`
digitalghost-dev Jun 18, 2026
b36ece9
adding Speed Tiers tab
digitalghost-dev Jun 18, 2026
e1602ea
adding Usage tab
digitalghost-dev Jun 18, 2026
2348c49
moving file to `utils` package
digitalghost-dev Jun 19, 2026
70f0dec
updating docs
digitalghost-dev Jun 19, 2026
b05c4f3
adding `TOML` user config persistence to flags package (#302)
digitalghost-dev Jun 19, 2026
95683a8
adding swappable accent themes via `ApplyTheme()` (#302(
digitalghost-dev Jun 19, 2026
40ed498
moving browser opener into the `cmd/utils` package
digitalghost-dev Jun 19, 2026
7898e9d
adding the interactive setup/config screen (#302)
digitalghost-dev Jun 19, 2026
8487096
making `poke-cache` warning and binary path configurable
digitalghost-dev Jun 19, 2026
eb8c40c
`wiring config, theming, and setup screen into cli`
digitalghost-dev Jun 19, 2026
baefff3
`pflag` flagset migration (#299)
digitalghost-dev Jun 20, 2026
be76993
cache auto-dismiss revert (#288)
digitalghost-dev Jun 20, 2026
24cf247
cleaning up the orphaned temp file when a config save fails (#302)
digitalghost-dev Jun 20, 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
5 changes: 4 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,7 @@ dist/
testdata/

# Python data
card_data/
data_platform/

# Rust build artifacts
services/target/
128 changes: 84 additions & 44 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:
- '.github/**'
- '.dockerignore'
- 'docs/**'
- 'card_data/**'
- 'data_platform/**'
- '.gitignore'
- '.gitleaksignore'
- 'demo**'
Expand All @@ -31,7 +31,7 @@ on:
- main

env:
VERSION_NUMBER: 'v1.10.3'
VERSION_NUMBER: 'v2.0.0'
DOCKERHUB_REGISTRY_NAME: 'digitalghostdev/poke-cli'
AWS_REGION: 'us-west-2'

Expand All @@ -42,8 +42,40 @@ permissions:
security-events: write

jobs:
smoke-tests:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.25'

- name: Build
shell: bash
run: go build -o poke-cli${{ matrix.os == 'windows-latest' && '.exe' || '' }} .

- name: Smoke test
shell: bash
run: |
BIN=./poke-cli${{ matrix.os == 'windows-latest' && '.exe' || '' }}
"$BIN" --help
"$BIN" pokemon pikachu
"$BIN" pokemon charizard -a -d
"$BIN" ability overgrow
"$BIN" move thunderbolt
"$BIN" natures

gosec:
runs-on: ubuntu-22.04
needs: [smoke-tests]

steps:
- name: Checkout
Expand All @@ -61,6 +93,7 @@ jobs:

bandit:
runs-on: ubuntu-22.04
needs: [smoke-tests]

steps:
- name: Checkout
Expand All @@ -77,7 +110,7 @@ jobs:
- name: Run Bandit Security Scanner
run: |
uv tool run --from 'bandit[sarif,toml]' bandit \
-r card_data/pipelines \
-r data_platform/pipelines \
-f sarif \
-o bandit-results.sarif \
|| true
Expand All @@ -87,6 +120,31 @@ jobs:
with:
sarif_file: bandit-results.sarif

rust-cache:
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Rust
uses: dtolnay/rust-toolchain@stable

- name: Build poke-cache
run: cargo build --release --manifest-path services/Cargo.toml --bin poke-cache

- name: Test cache module
run: cargo test --manifest-path services/Cargo.toml --lib cache

- name: Smoke test poke-cache
run: |
BIN=services/target/release/poke-cache
"$BIN" get "https://pokeapi.co/api/v2/pokemon/pikachu" > out.json
test -s out.json
"$BIN" get "https://pokeapi.co/api/v2/pokemon/pikachu" 2> hit.log > /dev/null
grep -q "Cache hit" hit.log
echo "poke-cache smoke test passed"

gitleaks:
runs-on: ubuntu-22.04
needs: [gosec, bandit]
Expand All @@ -111,8 +169,8 @@ jobs:

build-linux-packages:
runs-on: ubuntu-22.04
needs: [gitleaks]
if: needs.gitleaks.result == 'success'
needs: [gitleaks, rust-cache]
if: needs.gitleaks.result == 'success' && needs.rust-cache.result == 'success'
strategy:
matrix:
arch: [ amd64, arm64 ]
Expand All @@ -134,6 +192,24 @@ jobs:
run: |
go build -ldflags="-s -w -X main.version=${{ env.VERSION_NUMBER }}" -o poke-cli

- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.arch == 'arm64' && 'aarch64-unknown-linux-gnu' || 'x86_64-unknown-linux-gnu' }}

- name: Install aarch64 cross-linker
if: matrix.arch == 'arm64'
run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu

- name: Build poke-cache Binary
env:
RUST_TARGET: ${{ matrix.arch == 'arm64' && 'aarch64-unknown-linux-gnu' || 'x86_64-unknown-linux-gnu' }}
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
CC_aarch64_unknown_linux_gnu: aarch64-linux-gnu-gcc
run: |
cargo build --release --manifest-path services/Cargo.toml --bin poke-cache --target "$RUST_TARGET"
cp "services/target/$RUST_TARGET/release/poke-cache" ./poke-cache

- name: Install nFPM
run: |
go install github.com/goreleaser/nfpm/v2/cmd/nfpm@v2.43.0
Expand Down Expand Up @@ -161,12 +237,6 @@ jobs:
--packager rpm \
--target dist/poke-cli_${{ env.VERSION_NUMBER }}_linux_${{ matrix.arch }}.rpm

# Build APK package
nfpm package \
--config nfpm-${{ matrix.arch }}.yaml \
--packager apk \
--target dist/poke-cli_${{ env.VERSION_NUMBER }}_linux_${{ matrix.arch }}.apk

- name: Upload packages as artifacts
uses: actions/upload-artifact@v6
with:
Expand Down Expand Up @@ -229,49 +299,19 @@ jobs:
digitalghost-dev/poke-cli/fedora/42 \
poke-cli_${{ env.VERSION_NUMBER }}_linux_${{ matrix.arch }}.rpm

upload-apk-packages:
runs-on: ubuntu-22.04
needs: [build-linux-packages]
if: needs.build-linux-packages.result == 'success'
strategy:
matrix:
arch: [ amd64, arm64 ]
fail-fast: false

steps:
- name: Download package artifact
uses: actions/download-artifact@v7
with:
name: linux-packages-${{ matrix.arch }}
path: packages/

- name: Install Cloudsmith CLI
uses: cloudsmith-io/cloudsmith-cli-action@v2
with:
api-key: ${{ secrets.CLOUDSMITH_API_KEY }}

- name: Upload APK to Cloudsmith
working-directory: packages
run: |
cloudsmith push alpine \
digitalghost-dev/poke-cli/alpine/v3.22 \
poke-cli_${{ env.VERSION_NUMBER }}_linux_${{ matrix.arch }}.apk

upload-summary:
runs-on: ubuntu-22.04
needs: [upload-deb-packages, upload-rpm-packages, upload-apk-packages]
needs: [upload-deb-packages, upload-rpm-packages]
if: always()

steps:
- name: Check all Uploads
run: |
echo "DEB uploads: ${{ needs.upload-deb-packages.result }}"
echo "RPM uploads: ${{ needs.upload-rpm-packages.result }}"
echo "APK uploads: ${{ needs.upload-apk-packages.result }}"


if [ "${{ needs.upload-deb-packages.result }}" != "success" ] || \
[ "${{ needs.upload-rpm-packages.result }}" != "success" ] || \
[ "${{ needs.upload-apk-packages.result }}" != "success" ]; then
[ "${{ needs.upload-rpm-packages.result }}" != "success" ]; then
echo "⚠️ Some uploads failed"
exit 1
fi
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
types: [opened, reopened, synchronize]
paths-ignore:
- 'card_data/**'
- 'data_platform/**'

jobs:
tests:
Expand All @@ -16,7 +16,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.25
go-version: '1.25'

- name: Install dependencies
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/go_lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
types: [opened, reopened, synchronize]
paths-ignore:
- 'card_data/**'
- 'data_platform/**'

permissions:
contents: read
Expand All @@ -20,7 +20,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.25
go-version: '1.25'

- name: Lint
uses: golangci/golangci-lint-action@v7
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/go_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
types: [opened, reopened, synchronize]
paths-ignore:
- 'card_data/**'
- 'data_platform/**'

jobs:
tests:
Expand All @@ -16,7 +16,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.25
go-version: '1.25'

- name: Install dependencies
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/python_lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
types: [opened, reopened, synchronize]
paths:
- 'card_data/**'
- 'data_platform/**'

permissions:
contents: read
Expand All @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-22.04
defaults:
run:
working-directory: card_data
working-directory: data_platform

steps:
- name: Checkout
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/python_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ on:
branches:
- main
paths:
- 'card_data/**'
- 'data_platform/**'
- 'web/**'
pull_request:
types: [opened, reopened, synchronize]
paths:
- 'card_data/**'
- 'data_platform/**'
- 'web/**'

permissions:
Expand All @@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-22.04
defaults:
run:
working-directory: card_data
working-directory: data_platform

steps:
- name: Checkout
Expand All @@ -42,7 +42,7 @@ jobs:
- name: Run the benchmarks
uses: CodSpeedHQ/action@v4
with:
working-directory: card_data
working-directory: data_platform
mode: simulation
run: uv run pytest pipelines/tests/ -v --codspeed

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/python_typing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
pull_request:
types: [opened, reopened, synchronize]
paths:
- 'card_data/**'
- 'data_platform/**'

permissions:
contents: read
Expand All @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-22.04
defaults:
run:
working-directory: card_data
working-directory: data_platform

steps:
- name: Checkout
Expand Down
Loading
Loading