Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump version 8.2.0rc1 #1177

Draft
wants to merge 49 commits into
base: next
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
d0fd532
Bump version 8.2.0rc1
droserasprout Dec 23, 2024
a3bc564
fetcher optimizations
droserasprout Dec 23, 2024
1039ca3
update fetcher logic
droserasprout Dec 23, 2024
cf48863
typehints
droserasprout Dec 23, 2024
63f87fc
fixes and logs
droserasprout Dec 23, 2024
2665096
fix catching pending subscriptions
droserasprout Dec 23, 2024
1e239ce
jinja2 cve
droserasprout Dec 24, 2024
7a2bce8
various fixes and todos
droserasprout Dec 26, 2024
cfe7db6
update test configs
droserasprout Dec 26, 2024
2ca5b34
update GHA workflows
droserasprout Dec 26, 2024
aa060b4
fix env variables in CI
droserasprout Dec 27, 2024
09a5565
Etherscan key
droserasprout Dec 27, 2024
6828793
reenable two ancient tests, update release notes
droserasprout Dec 27, 2024
a7d3f7f
fix import in abi_etherscan
droserasprout Dec 27, 2024
144e83e
Initial uv support
droserasprout Jan 4, 2025
a348a0a
Bump starknetpy
droserasprout Jan 4, 2025
e3b84cc
Update project templates
droserasprout Jan 5, 2025
b946db5
Merge branch 'next' into aux/8.2.0rc1
droserasprout Jan 12, 2025
cb4886a
lint, changelog
droserasprout Jan 12, 2025
27d99c5
Merge branch 'feat/uv' into aux/8.2.0rc1
droserasprout Jan 14, 2025
afcc14d
fix pyproject.toml template
droserasprout Jan 14, 2025
60a8d68
optionals wip
droserasprout Jan 14, 2025
79813d2
fix optionals
droserasprout Jan 14, 2025
dc524cf
fix chosing runtime
droserasprout Jan 14, 2025
a2f3e3a
fix parsing payload from node
droserasprout Jan 15, 2025
224c335
padding wip
droserasprout Jan 15, 2025
be5fe9e
fix padding issues
droserasprout Jan 15, 2025
254ee0d
fix sqd args casing
droserasprout Jan 15, 2025
b29465c
don't deserialize args twice
droserasprout Jan 15, 2025
6ad8cf4
comments, sorting in codegen
droserasprout Jan 15, 2025
2877215
typo
droserasprout Jan 15, 2025
07dae3e
fix extracting arg names
droserasprout Jan 15, 2025
de9f6d6
fix parsing docstrings again
droserasprout Jan 15, 2025
c876302
warn on missing events
droserasprout Jan 15, 2025
0af4008
typeclass path fix
droserasprout Jan 15, 2025
0842080
fix codegen imports
droserasprout Jan 15, 2025
7d72bf1
fix generated union
droserasprout Jan 15, 2025
b432e28
fix parsing Vec<>
droserasprout Jan 16, 2025
bc1e00a
logging
droserasprout Jan 16, 2025
9f16e04
lint, typing
droserasprout Jan 16, 2025
637be3b
tuples wip, hidden command
droserasprout Jan 16, 2025
8a14da4
print node version
droserasprout Jan 16, 2025
9dca759
ignore missing scale types, nicer node log
droserasprout Jan 16, 2025
c68c3ba
parse some tuples
droserasprout Jan 16, 2025
1eaa579
misc decoding fixes
droserasprout Jan 18, 2025
d62e178
tuples in jsonschema
droserasprout Jan 18, 2025
1959e2d
cleanup
droserasprout Jan 18, 2025
e095c16
cleanup tuple type extraction, tiny test
droserasprout Jan 20, 2025
91b2e2f
Don't process internal models twice if imported from project
droserasprout Jan 20, 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
2 changes: 1 addition & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# Add metadata and build files
!pyproject.toml
!pdm.lock
!*.lock
!README.md
!requirements**

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
- 'src/**'
- 'Dockerfile'
- 'pyproject.toml'
# NOTE: Dumped with `pdm run update`
# NOTE: Dumped with `make update`
- 'requirements.txt'
- '.github/workflows/build.yml'

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,22 +46,22 @@ jobs:
python-version: '3.12'
cache: 'pip'

- name: Install PDM
run: pip install pdm
- name: Install uv
uses: astral-sh/setup-uv@v5

- name: Install markdownlint-cli
run: npm install -g markdownlint-cli

- name: Install project
run: pdm sync
run: make install

- name: Clone frontend
run: |
gh auth setup-git
gh repo clone dipdup-io/interface ../interface -- --single-branch --branch "$FRONTEND_BRANCH"

- name: Build docs
run: pdm run make docs
run: uv run make docs

# NOTE: Installer is tested in `installer` workflow
- name: Commit and push frontend
Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,18 @@ jobs:
python-version: '3.12'
cache: 'pip'

- name: Install PDM
run: pipx install pdm
- name: Install uv
uses: astral-sh/setup-uv@v5

- name: Run install
run: pdm install
run: make install

- name: Run all checks
run: pdm run make all
run: uv run make all
env:
NODE_API_KEY: ${{ secrets.ALCHEMY_KEY }}
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
ONFINALITY_API_KEY: ${{ secrets.ONFINALITY_API_KEY }}

- name: Publish stable image
uses: docker/build-push-action@v5
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ jobs:
- name: Check out the repo
uses: actions/checkout@v4

- name: Install PDM
run: pipx install pdm
- name: Install uv
uses: astral-sh/setup-uv@v5

- name: Set up Python
uses: actions/setup-python@v4
Expand All @@ -40,13 +40,15 @@ jobs:
cache: 'pip'

- name: Run install
run: pdm sync
run: make install

- name: Run lint
run: pdm run make lint
run: uv run make lint
if: contains(matrix.os, 'ubuntu') && contains(matrix.arch, 'amd64')

- name: Run tests
run: pdm run make test
run: uv run make test
env:
NODE_API_KEY: ${{ secrets.ALCHEMY_KEY }}
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
ONFINALITY_API_KEY: ${{ secrets.ONFINALITY_API_KEY }}
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
!**/Makefile
!**/pyproject.toml
!**/requirements*
!**/pdm.lock
!**/*.lock
!**/README.md
!**/.keep
!**/py.typed
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog], and this project adheres to [Semantic

Releases prior to 7.0 has been removed from this file to declutter search results; see the [archived copy](https://github.com/dipdup-io/dipdup/blob/8.0.0b5/CHANGELOG.md) for the full list.

## [8.2.0rc1] - ????-??-??
## [8.2.0rc1] - 2025-01-14

### Added

Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ RUN apt update && \
touch /opt/dipdup/src/dipdup/__init__.py && \
rm -r /var/log/* /var/lib/apt/lists/* /var/cache/* /var/lib/dpkg/status*
WORKDIR /opt/dipdup
ENV PATH="/opt/dipdup/.venv/bin:$PATH"
ENV PATH="/root/.cargo/bin:$PATH"
ENV PATH="/root/.cargo/bin:/opt/dipdup/.venv/bin:$PATH"

COPY pyproject.toml requirements.txt README.md /opt/dipdup/
RUN /usr/local/bin/pip install --prefix /opt/dipdup --no-cache-dir --disable-pip-version-check --no-deps \
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
RUN uv pip install --prefix /opt/dipdup --compile-bytecode --no-cache --no-deps \
-r /opt/dipdup/requirements.txt -e .

FROM python:3.12-slim-bookworm AS build-image
Expand Down
7 changes: 4 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@ help: ## Show this help (default)
##

install: ## Install dependencies
pdm sync --clean
uv sync --all-extras --all-groups --locked

update: ## Update dependencies and dump requirements.txt
pdm update
pdm export --without-hashes -f requirements --prod -o requirements.txt
uv sync --all-extras --all-groups
uv export --all-extras --locked --no-group lint --no-group test --no-group docs --no-group perf > requirements.txt


##
##-- CI
Expand Down
56 changes: 36 additions & 20 deletions docs/7.references/2.config.md

Large diffs are not rendered by default.

37 changes: 19 additions & 18 deletions docs/8.examples/_demos_table.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
<!-- markdownlint-disable first-line-h1 -->
| name | network | description | source |
|-|-|-|-|
| demo_blank | | Empty config for a fresh start | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_blank) |
| demo_evm_events | EVM | ERC-20 token transfers (from event logs) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_evm_events) |
| demo_evm_transactions | EVM | ERC-20 token transfers (from transactions) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_evm_transactions) |
| demo_evm_uniswap | EVM | Uniswap V3 pools, positions, etc. (advanced, uses TimescaleDB) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_evm_uniswap) |
| demo_starknet_events | Starknet | ERC-20 token transfers (from events) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_starknet_events) |
| demo_tezos_auction | Tezos | NFT marketplace (TzColors) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_auction) |
| demo_tezos_dao | Tezos | DAO registry (Homebase DAO) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_dao) |
| demo_tezos_dex | Tezos | DEX balances and liquidity (Quipuswap) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_dex) |
| demo_tezos_domains | Tezos | Domain name service (Tezos Domains) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_domains) |
| demo_tezos_etherlink | Tezos | Etherlink smart rollup transactions | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_etherlink) |
| demo_tezos_events | Tezos | Processing contract events | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_events) |
| demo_tezos_factories | Tezos | Example of spawning indexes in runtime | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_factories) |
| demo_tezos_head | Tezos | Processing head block metadata (realtime only) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_head) |
| demo_tezos_nft_marketplace | Tezos | NFT marketplace (hic at nunc) | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_nft_marketplace) |
| demo_tezos_raw | Tezos | Process raw operations without filtering and typed payloads | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_raw) |
| demo_tezos_token | Tezos | FA1.2 token contract operations | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_token) |
| demo_tezos_token_balances | Tezos | FA1.2 token balances | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_token_balances) |
| demo_tezos_token_transfers | Tezos | FA1.2 token transfers | [link](https://github.com/dipdup-io/dipdup/tree/8.1.4/src/demo_tezos_token_transfers) |
| demo_blank | | Empty config for a fresh start | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_blank) |
| demo_substrate_events | | Substrate balance transfers | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_substrate_events) |
| demo_evm_events | EVM | ERC-20 token transfers (from event logs) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_evm_events) |
| demo_evm_transactions | EVM | ERC-20 token transfers (from transactions) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_evm_transactions) |
| demo_evm_uniswap | EVM | Uniswap V3 pools, positions, etc. (advanced, uses TimescaleDB) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_evm_uniswap) |
| demo_starknet_events | Starknet | ERC-20 token transfers (from events) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_starknet_events) |
| demo_tezos_auction | Tezos | NFT marketplace (TzColors) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_auction) |
| demo_tezos_dao | Tezos | DAO registry (Homebase DAO) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_dao) |
| demo_tezos_dex | Tezos | DEX balances and liquidity (Quipuswap) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_dex) |
| demo_tezos_domains | Tezos | Domain name service (Tezos Domains) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_domains) |
| demo_tezos_etherlink | Tezos | Etherlink smart rollup transactions | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_etherlink) |
| demo_tezos_events | Tezos | Processing contract events | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_events) |
| demo_tezos_factories | Tezos | Example of spawning indexes in runtime | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_factories) |
| demo_tezos_head | Tezos | Processing head block metadata (realtime only) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_head) |
| demo_tezos_nft_marketplace | Tezos | NFT marketplace (hic at nunc) | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_nft_marketplace) |
| demo_tezos_raw | Tezos | Process raw operations without filtering and typed payloads | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_raw) |
| demo_tezos_token | Tezos | FA1.2 token contract operations | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_token) |
| demo_tezos_token_balances | Tezos | FA1.2 token balances | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_token_balances) |
| demo_tezos_token_transfers | Tezos | FA1.2 token transfers | [link](https://github.com/dipdup-io/dipdup/tree/8.2.0rc1/src/demo_tezos_token_transfers) |
12 changes: 11 additions & 1 deletion docs/9.release-notes/1.v8.2.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
---
title: "8.2"
title: "8.2 (rc)"
description: DipDup 8.2 release notes
---

<!-- markdownlint-disable no-inline-html -->

# Release Notes: 8.2

Today we are glad to present you DipDup 8.2. This release is all about one thing: indexing Substrate networks.

If you're new to DipDup and want action, follow the [Substrate Quickstart Guide](../0.quickstart-substrate.md)!

If you're familiar with DipDup, the process is very similar to indexing EVM and Starknet networks. Run the `dipdup new` command to initialize the project interactively, update the with your URLs/variables/addresses (in this case, pallets) to index, run `dipdup init`, and you're good to go.

We support three sources of Substrate data. Squid Network provides all kinds of historical data in a very efficient format. For the blocks yet to be processed by Squid Network you can use Substrate node RPC. Indexing with node RPC is much slower, but allows to process blocks as soon as they are announced. Finally, an optional Subscan API connector is used to speed up the project initialization.

This release is a pretty big milestone for us, but we decided to make it a minor one, since we follow the semantic versioning, and 8.2 doesn't introduce any changes that break backward compatibility. So, you can extend your existing projects with Substrate data right after the update. A if you're still on 7.x branch, it's a pretty good time for us to remind you to upgrade! :)

{{ #include 9.release-notes/_8.2_changelog.md }}
{{ #include 9.release-notes/_footer.md }}
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,4 @@

from dipdup.config import DipDupConfig
from pydantic.dataclasses import rebuild_dataclass
rebuild_dataclass(DipDupConfig)
rebuild_dataclass(DipDupConfig) # type: ignore[arg-type]
Loading
Loading