Skip to content

Commit 6ff3999

Browse files
Add release workflow and changelog (#115)
1 parent 96c8150 commit 6ff3999

File tree

5 files changed

+102
-14
lines changed

5 files changed

+102
-14
lines changed

.github/workflows/continuous-integration.yaml renamed to .github/workflows/continuous-integration.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ jobs:
1212
build:
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v5
15+
- name: Checkout
16+
uses: actions/checkout@v5
1617

1718
- name: Install uv
18-
uses: astral-sh/setup-uv@v6
19+
uses: astral-sh/setup-uv@v7
1920

20-
- uses: actions/setup-node@v5
21+
- name: Install Node.js
22+
uses: actions/setup-node@v5
2123
with:
2224
node-version-file: .node-version
2325

.github/workflows/release.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v5
14+
15+
- name: Install uv
16+
uses: astral-sh/setup-uv@v6
17+
18+
- name: Build release distributions
19+
run: uv build
20+
21+
- name: Upload release dists
22+
uses: actions/upload-artifact@v4
23+
with:
24+
name: release-dists
25+
path: dist/
26+
27+
publish:
28+
runs-on: ubuntu-latest
29+
needs:
30+
- build
31+
permissions:
32+
# required to create a short-lived OIDC token used for PyPI auth
33+
id-token: write
34+
steps:
35+
- name: Fetch release distributions
36+
uses: actions/download-artifact@v5
37+
with:
38+
name: release-dists
39+
path: dist/
40+
41+
- name: Publish release distributions to PyPI
42+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
43+
44+
announce:
45+
runs-on: ubuntu-latest
46+
needs:
47+
- publish
48+
permissions:
49+
# required to create the release on GitHub
50+
contents: write
51+
steps:
52+
- name: Checkout
53+
uses: actions/checkout@v5
54+
55+
- name: Create Release on GitHub
56+
run: |
57+
RELEASE_NOTES=$(awk -v ver="${VERSION}" '/^## / {cur=$2; next} cur == ver {print}' CHANGELOG.md)
58+
PRERELEASE_ARG=""
59+
if [[ "${VERSION}" == *beta* ]]; then
60+
PRERELEASE_ARG="--prerelease"
61+
fi
62+
63+
gh release create "${VERSION}" --title "${VERSION}" --notes "${RELEASE_NOTES}" ${PRERELEASE_ARG}
64+
env:
65+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
66+
VERSION: ${{ github.ref_name }}

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Changelog
2+
3+
## v1.1.0 (2025-10-15)
4+
* publish releases to [PyPI](https://pypi.org/project/fava-dashboards/)
5+
6+
## v1.0.0 (2023-03-08)
7+
* initial version

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
# Fava Dashboards
2-
[![Continuous Integration](https://github.com/andreasgerstmayr/fava-dashboards/actions/workflows/continuous-integration.yaml/badge.svg)](https://github.com/andreasgerstmayr/fava-dashboards/actions/workflows/continuous-integration.yaml)
2+
[![Continuous Integration](https://github.com/andreasgerstmayr/fava-dashboards/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/andreasgerstmayr/fava-dashboards/actions/workflows/continuous-integration.yml)
3+
[![PyPI](https://img.shields.io/pypi/v/fava-dashboards)](https://pypi.org/project/fava-dashboards/)
34

45
fava-dashboards allows creating custom dashboards in [Fava](https://github.com/beancount/fava).
56

67
Example dashboards with random data:
7-
[![Overview](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Overview-1-chromium-linux.png)](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Overview-1-chromium-linux.png)
8-
[![Assets](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Assets-1-chromium-linux.png)](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Assets-1-chromium-linux.png)
9-
[![Income and Expenses](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Income-and-Expenses-1-chromium-linux.png)](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Income-and-Expenses-1-chromium-linux.png)
10-
[![Travelling](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Travelling-1-chromium-linux.png)](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Travelling-1-chromium-linux.png)
11-
[![Sankey](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Sankey-1-chromium-linux.png)](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Sankey-1-chromium-linux.png)
12-
[![Projection](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Projection-1-chromium-linux.png)](frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Projection-1-chromium-linux.png)
8+
[![Overview](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Overview-1-chromium-linux.png)](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Overview-1-chromium-linux.png)
9+
[![Assets](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Assets-1-chromium-linux.png)](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Assets-1-chromium-linux.png)
10+
[![Income and Expenses](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Income-and-Expenses-1-chromium-linux.png)](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Income-and-Expenses-1-chromium-linux.png)
11+
[![Travelling](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Travelling-1-chromium-linux.png)](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Travelling-1-chromium-linux.png)
12+
[![Sankey](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Sankey-1-chromium-linux.png)](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Sankey-1-chromium-linux.png)
13+
[![Projection](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Projection-1-chromium-linux.png)](https://github.com/andreasgerstmayr/fava-dashboards/raw/main/frontend/tests/e2e/dashboards.test.ts-snapshots/PNG-Snapshot-Tests-Light-Theme-Projection-1-chromium-linux.png)
1314

1415
## Installation
1516
```
16-
pip install git+https://github.com/andreasgerstmayr/fava-dashboards.git
17+
pip install fava-dashboards
1718
```
1819

1920
Enable this plugin in Fava by adding the following lines to your ledger:

pyproject.toml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,32 @@
22
name = "fava-dashboards"
33
dynamic = ["version"]
44
description = "Custom Dashboards for Beancount in Fava"
5+
readme = "README.md"
6+
license = {text = "MIT License"}
7+
license-files = [
8+
"LICENSE.md",
9+
]
510
authors = [
611
{ name = "Andreas Gerstmayr", email = "[email protected]" }
712
]
13+
keywords = ["fava", "beancount", "portfolio", "investment", "returns"]
14+
classifiers = [
15+
"Development Status :: 4 - Beta",
16+
"Intended Audience :: Financial and Insurance Industry",
17+
"Topic :: Office/Business :: Financial :: Accounting",
18+
"Topic :: Office/Business :: Financial :: Investment",
19+
]
20+
requires-python = ">= 3.8"
821
dependencies = [
922
"fava>=1.26.1",
1023
"pyyaml>=6.0.1",
1124
"beanquery>=0.1.0",
1225
]
13-
readme = "README.md"
14-
requires-python = ">= 3.8"
15-
license = {text = "MIT License"}
1626

1727
[project.urls]
1828
Source = "https://github.com/andreasgerstmayr/fava-dashboards"
29+
Issues = "https://github.com/andreasgerstmayr/fava-dashboards/issues"
30+
Changelog = "https://github.com/andreasgerstmayr/fava-dashboards/blob/main/CHANGELOG.md"
1931

2032
[build-system]
2133
requires = ["hatchling", "hatch-vcs"]

0 commit comments

Comments
 (0)