Skip to content

Commit efb93d4

Browse files
Merge pull request #382 from DashAISoftware/develop
DashAI 0.3.0 Release
2 parents db60a16 + 31b8174 commit efb93d4

480 files changed

Lines changed: 20830 additions & 7531 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,5 @@ Tell us what happened, what went wrong, and what you expected to happen.
1010
### What I Did
1111

1212
```
13-
Paste the command(s) you ran and the output.
14-
If there was a crash, please include the traceback here.
13+
If there was a crash, please include an image of the console if possible.
1514
```

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 23 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,33 @@
1-
# Summary
1+
## Summary
2+
Short explanation of what changed and why.
23

3-
<!--
4-
Include a short summary of the changes made to the platforn and list any dependencies
5-
of the pr - Required.
6-
-->
7-
...
4+
---
85

9-
## Type of change
6+
## Type of Change
7+
Check all that apply like this [x]:
108

11-
<!-- Indicate the type of change. Delete those that do not apply - Required -->
9+
- [ ] Backend change
10+
- [ ] Frontend change
11+
- [ ] CI / Workflow change
12+
- [ ] Build / Packaging change
13+
- [ ] Bug fix
14+
- [ ] Documentation
1215

13-
- Front end new feature.
14-
- Back end new feature.
15-
- Bug fix.
16-
- Refactoring.
17-
- Documentation.
16+
---
1817

19-
## Changes
18+
## Changes (by file)
19+
Briefly list the important modified files and what was done.
2020

21-
<!--
22-
Indicate the changes/fixes that you want to merge - Required.
21+
Example:
22+
- `path/to/file.py`: description
23+
- `another/file.tsx`: description
2324

24-
- Bug 1
25-
- Bug 2
26-
- Feature 1
27-
- Feature 2
28-
-->
29-
...
25+
---
3026

31-
## How to Test
27+
## Testing (optional)
28+
Only add if there's something reviewers should verify.
3229

33-
<!--
34-
Describe the tests or executions that you ran to verify your changes and provide
35-
instructions to reproduce them - Required.
36-
-->
37-
...
30+
---
3831

39-
## Screenshots
40-
41-
<!--
42-
In the case of modifying a view in the front-end, include screenshots with the changes.
43-
Optional, delete this section if not needed.-->
44-
...
45-
46-
## Notes
47-
48-
<!--
49-
Include any additional information that would be useful to the reviewer.
50-
Optional, delete this section if not needed.
51-
-->
52-
...
32+
## Notes (optional)
33+
Additional context or considerations.

.github/workflows/build-test.yaml

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: Build and Test
22
on:
3-
push
3+
push:
4+
pull_request:
45

56
jobs:
67
react-build-test:
@@ -30,15 +31,17 @@ jobs:
3031

3132
pytest:
3233
needs: react-build-test
34+
runs-on: ${{ matrix.os }}
3335
strategy:
36+
fail-fast: false
3437
matrix:
35-
python-version: ['3.10']
38+
python-version: ${{ github.event_name == 'pull_request' && fromJson('["3.10", "3.11", "3.12", "3.13"]') || fromJson('["3.12"]') }}
3639
os: [ubuntu-latest, windows-latest, macos-latest]
37-
runs-on: ${{ matrix.os }}
40+
3841
steps:
3942
- uses: actions/checkout@v3
4043
- name: Set up Python
41-
uses: actions/setup-python@v4
44+
uses: actions/setup-python@v5
4245
with:
4346
python-version: ${{ matrix.python-version }}
4447

@@ -47,14 +50,17 @@ jobs:
4750
path: ${{ env.pythonLocation }}
4851
key: ${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }}
4952

50-
- run: pip install --upgrade --upgrade-strategy eager -r requirements.txt
51-
- run: pip install --upgrade --upgrade-strategy eager -r requirements-dev.txt
52-
- name: Make build directory
53-
run: mkdir DashAI/front/build
53+
- name: Upgrade pip tools
54+
run: python -m pip install --upgrade pip setuptools wheel
55+
- run: python -m pip install --upgrade --upgrade-strategy eager -r requirements.txt
56+
- run: python -m pip install --upgrade --upgrade-strategy eager -r requirements-dev.txt
57+
58+
- name: Prepare frontend build
59+
run: mkdir -p DashAI/front/build
60+
5461
- uses: actions/download-artifact@v4
5562
with:
5663
name: react-build
5764
path: DashAI/front/build
5865
- name: Test with pytest
59-
run: |
60-
pytest
66+
run: pytest -v

.github/workflows/docs.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,14 @@ jobs:
3636
docs/requirements.txt
3737
3838
- name: Install system build tools (gcc, g++, cmake, ninja)
39-
# Compilará llama-cpp-python sin dramas
4039
run: |
4140
sudo apt-get update
4241
sudo apt-get install -y build-essential cmake ninja-build
4342
4443
- name: Build docs
4544
env:
46-
# Asegura que scikit-build encuentre el compilador
4745
CC: gcc
4846
CXX: g++
49-
# Evita ruidos de pip
5047
PIP_DISABLE_PIP_VERSION_CHECK: "1"
5148
run: |
5249
python -m pip install -U pip setuptools wheel scikit-build-core

.github/workflows/publish.yml

Lines changed: 188 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,48 @@ on:
66
- production
77

88
jobs:
9-
build:
10-
runs-on: ubuntu-latest
119

10+
# ============================================================
11+
# 1. Frontend Build
12+
# ============================================================
13+
react-build:
14+
runs-on: ubuntu-latest
15+
defaults:
16+
run:
17+
working-directory: DashAI/front
1218
steps:
13-
- name: Checkout code
14-
uses: actions/checkout@v4
15-
16-
- name: Set up Node.js
19+
- uses: actions/checkout@v4
20+
- name: Enable Corepack and use Yarn 3
21+
run: corepack enable
22+
- name: Use Node.js
1723
uses: actions/setup-node@v4
1824
with:
19-
node-version: '18'
25+
node-version: '18.x'
26+
cache: 'yarn'
27+
cache-dependency-path: DashAI/front/yarn.lock
28+
- name: Install and build
29+
run: |
30+
yarn install --frozen-lockfile
31+
yarn build
32+
- name: Upload build artifact
33+
uses: actions/upload-artifact@v4
34+
with:
35+
name: react-build
36+
path: DashAI/front/build
37+
retention-days: 1
38+
- name: Run frontend tests
39+
run: yarn test --passWithNoTests
2040

21-
- name: Install frontend dependencies
22-
run: yarn install
23-
working-directory: DashAI/front
41+
# ============================================================
42+
# 2. Publish to PyPI
43+
# ============================================================
44+
publish-pypi:
45+
needs: react-build
46+
runs-on: ubuntu-latest
2447

25-
- name: Build frontend
26-
run: yarn build
27-
working-directory: DashAI/front
48+
steps:
49+
- name: Checkout code
50+
uses: actions/checkout@v4
2851

2952
- name: Set up Python
3053
uses: actions/setup-python@v5
@@ -42,7 +65,7 @@ jobs:
4265
- name: Verify frontend is included in wheel
4366
run: |
4467
if ! zipinfo dist/*.whl | grep -q 'DashAI/front/build'; then
45-
echo "❌ Archivos del frontend no encontrados en el wheel"
68+
echo "Frontend files not found in the wheel package!"
4669
exit 1
4770
fi
4871
@@ -51,3 +74,154 @@ jobs:
5174
TWINE_USERNAME: __token__
5275
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
5376
run: twine upload dist/*
77+
78+
# ============================================================
79+
# 3. Build Windows Executable
80+
# ============================================================
81+
build-windows-executable:
82+
needs: react-build
83+
runs-on: windows-latest
84+
85+
steps:
86+
- uses: actions/checkout@v4
87+
- name: Download React build artifact
88+
uses: actions/download-artifact@v4
89+
with:
90+
name: react-build
91+
path: DashAI/front/build
92+
- name: Set up Python 3.12
93+
uses: actions/setup-python@v5
94+
with:
95+
python-version: "3.12"
96+
- name: Install dependencies (CPU-only)
97+
run: |
98+
python -m pip install --upgrade pip
99+
pip install -r requirements-cpu.txt
100+
pip install pyinstaller
101+
- name: Build executable
102+
shell: cmd
103+
run: |
104+
for /f "delims=" %%i in ('python -c "import site; s=site.getsitepackages(); print(s[-1])"') do set SITEPKG=%%i
105+
echo SITEPKG=%SITEPKG%
106+
if exist "%SITEPKG%\llama_cpp\lib" (
107+
echo Found llama_cpp/lib — adding binaries
108+
pyinstaller -F -n DashAI-launcher-cpu --clean ^
109+
--add-data "DashAI/front/build;DashAI/front/build" ^
110+
--add-data "%SITEPKG%\transformers;transformers" ^
111+
--add-binary "%SITEPKG%\llama_cpp\lib\*;llama_cpp/lib" ^
112+
--additional-hooks-dir=hooks DashAI/__main__.py
113+
) else (
114+
echo No llama_cpp/lib — building without binaries
115+
pyinstaller -F -n DashAI-launcher-cpu --clean ^
116+
--add-data "DashAI/front/build;DashAI/front/build" ^
117+
--add-data "%SITEPKG%\transformers;transformers" ^
118+
--additional-hooks-dir=hooks DashAI/__main__.py
119+
)
120+
- name: Upload Windows executable
121+
uses: actions/upload-artifact@v4
122+
with:
123+
name: DashAI-windows-cpu
124+
path: dist/DashAI-launcher-cpu.exe
125+
retention-days: 1
126+
127+
# ============================================================
128+
# 4. Build macOS ARM64 Executable
129+
# ============================================================
130+
build-macos-arm64:
131+
needs: react-build
132+
runs-on: macos-14
133+
steps:
134+
- uses: actions/checkout@v4
135+
- name: Download React build artifact
136+
uses: actions/download-artifact@v4
137+
with:
138+
name: react-build
139+
path: DashAI/front/build
140+
- uses: actions/setup-python@v5
141+
with:
142+
python-version: "3.12"
143+
- name: Install dependencies (CPU-only)
144+
run: |
145+
python -m pip install --upgrade pip
146+
pip install -r requirements-cpu.txt
147+
pip install pyinstaller
148+
pip install --force-reinstall llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
149+
- name: Build ARM64 executable
150+
run: |
151+
SITEPKG=$(python -c "import site; print(site.getsitepackages()[-1])")
152+
echo "SITEPKG=$SITEPKG"
153+
if [ -d "$SITEPKG/llama_cpp/lib" ]; then
154+
echo "Found llama_cpp/lib — adding binaries"
155+
pyinstaller -F -n DashAI-launcher-cpu-arm64 --clean \
156+
--add-data "DashAI/front/build:DashAI/front/build" \
157+
--add-data "$SITEPKG/transformers:transformers" \
158+
--add-binary "$SITEPKG/llama_cpp/lib/*:llama_cpp/lib" \
159+
--additional-hooks-dir=hooks DashAI/__main__.py
160+
else
161+
echo "No llama_cpp/lib — building without binaries"
162+
pyinstaller -F -n DashAI-launcher-cpu-arm64 --clean \
163+
--add-data "DashAI/front/build:DashAI/front/build" \
164+
--add-data "$SITEPKG/transformers:transformers" \
165+
--additional-hooks-dir=hooks DashAI/__main__.py
166+
fi
167+
- name: Sign ARM64 binary (ad-hoc)
168+
run: |
169+
chmod +x dist/DashAI-launcher-cpu-arm64
170+
codesign --force --deep --sign - dist/DashAI-launcher-cpu-arm64
171+
- name: Upload ARM64 executable
172+
uses: actions/upload-artifact@v4
173+
with:
174+
name: DashAI-macos-arm64
175+
path: dist/DashAI-launcher-cpu-arm64
176+
retention-days: 1
177+
178+
# ============================================================
179+
# 5. Build macOS x86_64 Executable
180+
# ============================================================
181+
build-macos-x86_64:
182+
needs: react-build
183+
runs-on: macos-15-intel
184+
steps:
185+
- uses: actions/checkout@v4
186+
- name: Download React build artifact
187+
uses: actions/download-artifact@v4
188+
with:
189+
name: react-build
190+
path: DashAI/front/build
191+
- uses: actions/setup-python@v5
192+
with:
193+
python-version: "3.12"
194+
- name: Install dependencies (CPU-only)
195+
run: |
196+
python -m pip install --upgrade pip
197+
pip install -r requirements-cpu.txt
198+
pip install pyinstaller
199+
pip install --force-reinstall llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
200+
- name: Build x86_64 executable
201+
run: |
202+
SITEPKG=$(python -c "import site; print(site.getsitepackages()[-1])")
203+
echo "SITEPKG=$SITEPKG"
204+
if [ -d "$SITEPKG/llama_cpp/lib" ]; then
205+
echo "Found llama_cpp/lib — adding binaries"
206+
pyinstaller -F -n DashAI-launcher-cpu-x86_64 --clean \
207+
--add-data "DashAI/front/build:DashAI/front/build" \
208+
--add-data "$SITEPKG/transformers:transformers" \
209+
--add-binary "$SITEPKG/llama_cpp/lib/*:llama_cpp/lib" \
210+
--additional-hooks-dir=hooks DashAI/__main__.py
211+
else
212+
echo "No llama_cpp/lib — building without binaries"
213+
pyinstaller -F -n DashAI-launcher-cpu-x86_64 --clean \
214+
--add-data "DashAI/front/build:DashAI/front/build" \
215+
--add-data "$SITEPKG/transformers:transformers" \
216+
--additional-hooks-dir=hooks DashAI/__main__.py
217+
fi
218+
- name: Sign x86_64 binary (ad-hoc)
219+
run: |
220+
chmod +x dist/DashAI-launcher-cpu-x86_64
221+
codesign --force --deep --sign - dist/DashAI-launcher-cpu-x86_64
222+
- name: Upload x86_64 executable
223+
uses: actions/upload-artifact@v4
224+
with:
225+
name: DashAI-macos-x86_64
226+
path: dist/DashAI-launcher-cpu-x86_64
227+
retention-days: 1

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ user_datasets
171171
user_runs
172172
user_models
173173
user_explainers
174+
job_queue.db
174175
__pycache__
175176
dvclive
176177

@@ -180,5 +181,8 @@ dvclive
180181
# MacOS
181182
*.DS_Store
182183

184+
job_queue.db-shm
185+
job_queue.db-wal
186+
183187
db.sqlite
184188
trained_models/

0 commit comments

Comments
 (0)