Skip to content

Commit aae35cb

Browse files
committed
workflows, changelog, readme.
added workflows for compiling & releasing, changelogs. edited readme to have instructions on where to install pyder using nightly or github releases. `build.spec` is pyinstaller's build file.
1 parent 326bc59 commit aae35cb

6 files changed

Lines changed: 257 additions & 1 deletion

File tree

.github/workflows/main.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Pyder Builder
2+
on:
3+
push:
4+
branches:
5+
- '**'
6+
pull_request:
7+
branches:
8+
- '**'
9+
10+
env:
11+
pythonVersion: 3.14.3
12+
13+
jobs:
14+
build:
15+
name: Build for ${{ matrix.os-name }}
16+
runs-on: ${{ matrix.os }}
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
include:
21+
- os: ubuntu-latest
22+
os-name: Linux Ubuntu
23+
artifact-path: dist/Pyder-Linux
24+
artifact-name: Pyder-Linux
25+
- os: windows-latest
26+
os-name: Windows
27+
artifact-path: dist/Pyder-Windows.exe
28+
artifact-name: Pyder-Windows
29+
- os: macos-latest
30+
os-name: macOS
31+
artifact-path: dist/Pyder-macOS
32+
artifact-name: Pyder-macOS
33+
steps:
34+
- name: Checkout repository
35+
uses: actions/checkout@v4
36+
37+
- name: Set up Python ${{ env.pythonVersion }}
38+
uses: actions/setup-python@v4
39+
with:
40+
python-version: ${{ env.pythonVersion }}
41+
42+
- name: Install Python dependencies
43+
run: pip install -r requirements.txt
44+
45+
- name: Compile with PyInstaller
46+
run: pyinstaller build.spec
47+
48+
- name: Rename Build (Windows)
49+
if: runner.os == 'Windows'
50+
run: move dist\Pyder.exe ${{ matrix.artifact-path }}
51+
52+
- name: Rename Build (Linux/macOS)
53+
if: runner.os != 'Windows'
54+
run: mv dist/Pyder ${{ matrix.artifact-path }}
55+
56+
- name: Upload Build Artifact
57+
uses: actions/upload-artifact@v4
58+
with:
59+
name: ${{ matrix.artifact-name }}
60+
path: ${{ matrix.artifact-path }}

.github/workflows/release.yml

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
name: Release Pyder (New Version)
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: 'Release version (e.g., `0.1.0-alpha.1`, `0.1.0-beta.1`, `0.1.0`.)'
8+
required: true
9+
prerelease:
10+
description: 'Mark as prerelease?'
11+
type: boolean
12+
default: false
13+
14+
permissions:
15+
contents: write
16+
17+
env:
18+
pythonVersion: 3.14.3
19+
20+
jobs:
21+
release:
22+
name: Build for ${{ matrix.os-name }}
23+
runs-on: ${{ matrix.os }}
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
include:
28+
- os: ubuntu-latest
29+
os-name: Linux Ubuntu
30+
artifact-path: dist/Pyder-Linux
31+
artifact-name: Pyder-Linux
32+
- os: windows-latest
33+
os-name: Windows
34+
artifact-path: dist/Pyder-Windows.exe
35+
artifact-name: Pyder-Windows
36+
- os: macos-latest
37+
os-name: macOS
38+
artifact-path: dist/Pyder-macOS
39+
artifact-name: Pyder-macOS
40+
steps:
41+
- name: Checkout repository
42+
uses: actions/checkout@v4
43+
44+
- name: Set up Python ${{ env.pythonVersion }}
45+
uses: actions/setup-python@v4
46+
with:
47+
python-version: ${{ env.pythonVersion }}
48+
49+
- name: Install Python dependencies
50+
run: pip install -r requirements.txt
51+
52+
- name: Compile with PyInstaller
53+
run: pyinstaller build.spec
54+
55+
- name: Rename Build (Windows)
56+
if: runner.os == 'Windows'
57+
run: move dist\Pyder.exe ${{ matrix.artifact-path }}
58+
59+
- name: Rename Build (Linux/macOS)
60+
if: runner.os != 'Windows'
61+
run: mv dist/Pyder ${{ matrix.artifact-path }}
62+
63+
- name: Upload Build Artifact
64+
uses: actions/upload-artifact@v4
65+
with:
66+
name: ${{ matrix.artifact-name }}
67+
path: ${{ matrix.artifact-path }}
68+
69+
finalize:
70+
needs: release
71+
runs-on: ubuntu-latest
72+
steps:
73+
- uses: actions/checkout@v4
74+
with:
75+
fetch-depth: 0
76+
77+
- uses: actions/download-artifact@v4
78+
with:
79+
path: artifacts/
80+
81+
- name: Generate commit list
82+
id: commits
83+
run: |
84+
git fetch --tags
85+
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
86+
87+
if [ -z "$LAST_TAG" ]; then
88+
COMMITS=$(git log --pretty=format:"- %s (%h)")
89+
else
90+
COMMITS=$(git log ${LAST_TAG}..HEAD --pretty=format:"- %s (%h)")
91+
fi
92+
93+
{
94+
echo "COMMITS<<END"
95+
echo "$COMMITS"
96+
echo "END"
97+
} >> $GITHUB_OUTPUT
98+
99+
- name: Create Git Tag (if not exists) # this is p smart actually
100+
run: |
101+
git fetch --tags
102+
if git rev-parse "${{ inputs.version }}" >/dev/null 2>&1; then
103+
echo "Tag already exists"
104+
else
105+
git config user.name "github-actions"
106+
git config user.email "github-actions@github.com"
107+
git tag -a ${{ inputs.version }} -m "Release ${{ inputs.version }}"
108+
git push origin ${{ inputs.version }}
109+
fi
110+
111+
- name: Create Release
112+
uses: softprops/action-gh-release@v2
113+
with:
114+
repo_token: ${{ secrets.GITHUB_TOKEN }}
115+
tag_name: ${{ inputs.version }}
116+
prerelease: ${{ inputs.prerelease }}
117+
title: 'Pyder: ${{ inputs.version }}'
118+
body: |
119+
# Pyder version ${{ inputs.version }}!!!
120+
Check out the summarized updates in [CHANGELOG.md](https://github.com/PinpointTools/Pyder/blob/main/CHANGELOG.md)
121+
122+
---
123+
124+
## Commits
125+
${{ steps.commits.outputs.COMMITS }}
126+
files: artifacts/neutralino-binaries/**

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33
__pycache__
44

55
projectTest
6+
7+
build
8+
dist

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Changelogs
2+
All notable changes to Pyder will be documented in this file.
3+
4+
# [ 0.1.0-alpha.1 ] - 23rd March 2026
5+
Initial release.

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,19 @@ Nothing-burger. 0$ Funded. Free and Open source, fuck paying. Although, if you w
2929

3030
Starring, contributing, finding bugs to the project is already enough. Your suppport matters and we love it.
3131

32-
# Where's the documentation?
32+
## Where's the documentation?
3333
It's at [the wiki](https://github.com/PinpointTools/Pyder/wiki)! You can find on how to use Pyder with this.
3434

35+
## Where to download it?
36+
**Per-commit releases**:
37+
- Windows: https://nightly.link/PinpointTools/Pyder/workflows/main/main/Pyder-Windows.zip
38+
- Linux: https://nightly.link/PinpointTools/Pyder/workflows/main/main/Pyder-Linux.zip
39+
- macOS: https://nightly.link/PinpointTools/Pyder/workflows/main/main/Pyder-macOS.zip
40+
41+
**GitHub releases**:
42+
- Releases: https://github.com/PinpointTools/Pyder/releases/
43+
- Latest: https://github.com/PinpointTools/Pyder/releases/latest
44+
3545
# Known Issues:
3646
- Unstable. Still in ALPHA.
3747
- Possibly already stable enough. Might be in Beta. rebuild your Vite app and the PyWebView page will reload.

build.spec

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# -*- mode: python ; coding: utf-8 -*-
2+
3+
import sys
4+
import os
5+
6+
block_cipher = None
7+
8+
if sys.platform == 'win32':
9+
icon_file = os.path.join('icon', '512.ico')
10+
elif sys.platform == 'darwin':
11+
icon_file = os.path.join('icon', '512.icns')
12+
else:
13+
icon_file = os.path.join('icon', '512.png')
14+
15+
a = Analysis(
16+
['main.py'],
17+
pathex=[],
18+
binaries=[],
19+
hookspath=[],
20+
hooksconfig={},
21+
runtime_hooks=[],
22+
excludes=[],
23+
win_no_prefer_redirects=False,
24+
win_private_assemblies=False,
25+
cipher=block_cipher,
26+
noarchive=False,
27+
)
28+
29+
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
30+
31+
exe = EXE(
32+
pyz,
33+
a.scripts,
34+
a.binaries,
35+
a.zipfiles,
36+
a.datas,
37+
[],
38+
name='Pyder',
39+
debug=False,
40+
bootloader_ignore_signals=False,
41+
strip=False,
42+
upx=True,
43+
upx_exclude=[],
44+
runtime_tmpdir=None,
45+
console=False,
46+
disable_windowed_traceback=False,
47+
argv_emulation=False,
48+
target_arch=None,
49+
codesign_identity=None,
50+
entitlements_file=None,
51+
icon=icon_file,
52+
)

0 commit comments

Comments
 (0)