Skip to content

Commit 5f0e666

Browse files
authored
Merge branch 'main' into docs_update
2 parents f5ce2b7 + 4939f02 commit 5f0e666

File tree

24 files changed

+2225
-557
lines changed

24 files changed

+2225
-557
lines changed

.github/workflows/cdci.yml

Lines changed: 86 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches: [main]
88
release:
99
types: [published]
10-
10+
1111
jobs:
1212
test:
1313
name: Unittests+streamlit
@@ -17,14 +17,16 @@ jobs:
1717
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
1818
steps:
1919
- uses: actions/checkout@v4
20-
- uses: psf/black@stable
20+
- uses: psf/black@stable
21+
with:
22+
jupyter: true
2123
- uses: isort/isort-action@v1
2224
- name: Set up Python ${{ matrix.python-version }}
2325
uses: actions/setup-python@v5
2426
with:
2527
python-version: ${{ matrix.python-version }}
26-
cache: 'pip' # caching pip dependencies
27-
cache-dependency-path: '**/pyproject.toml'
28+
cache: "pip" # caching pip dependencies
29+
cache-dependency-path: "**/pyproject.toml"
2830
- name: Install dependencies
2931
run: |
3032
python -m pip install --upgrade pip
@@ -37,7 +39,7 @@ jobs:
3739
cd docs
3840
vuegen --directory example_data/Earth_microbiome_vuegen_demo_notebook
3941
vuegen --config example_data/Earth_microbiome_vuegen_demo_notebook/Earth_microbiome_vuegen_demo_notebook_config.yaml
40-
42+
4143
other-reports:
4244
name: Integration tests
4345
runs-on: ubuntu-latest
@@ -50,8 +52,8 @@ jobs:
5052
uses: actions/setup-python@v5
5153
with:
5254
python-version: ${{ matrix.python-version }}
53-
cache: 'pip' # caching pip dependencies
54-
cache-dependency-path: '**/pyproject.toml'
55+
cache: "pip" # caching pip dependencies
56+
cache-dependency-path: "**/pyproject.toml"
5557
- name: Install dependencies
5658
run: |
5759
pip install --upgrade pip
@@ -70,8 +72,8 @@ jobs:
7072
- name: quarto pdf report
7173
run: |
7274
cd docs
73-
vuegen -dir example_data/Earth_microbiome_vuegen_demo_notebook -rt pdf
74-
vuegen -c example_data/Earth_microbiome_vuegen_demo_notebook/Earth_microbiome_vuegen_demo_notebook_config.yaml -rt pdf
75+
vuegen -dir example_data/Earth_microbiome_vuegen_demo_notebook -rt pdf -qt_checks
76+
vuegen -c example_data/Earth_microbiome_vuegen_demo_notebook/Earth_microbiome_vuegen_demo_notebook_config.yaml -rt pdf -qt_checks
7577
- name: quarto docx report
7678
run: |
7779
cd docs
@@ -110,7 +112,7 @@ jobs:
110112

111113
steps:
112114
- uses: actions/checkout@v4
113-
115+
114116
- uses: actions/setup-python@v5
115117
with:
116118
python-version: "3.11"
@@ -120,3 +122,77 @@ jobs:
120122
run: python -m build
121123
- name: Publish package distributions to PyPI
122124
uses: pypa/gh-action-pypi-publish@release/v1
125+
126+
build-executable:
127+
name: Build-exe-${{ matrix.os.label }}
128+
runs-on: ${{ matrix.os.runner }}
129+
needs:
130+
- test
131+
- other-reports
132+
strategy:
133+
matrix:
134+
python-version: ["3.12"]
135+
os:
136+
# https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow#example-using-a-multi-dimension-matrix
137+
- runner: "macos-13"
138+
label: "macos-13-x64"
139+
- runner: "macos-15"
140+
label: "macos-15-arm64"
141+
- runner: "windows-latest"
142+
label: "windows-x64"
143+
steps:
144+
- uses: actions/checkout@v4
145+
- uses: actions/setup-python@v5
146+
with:
147+
python-version: ${{ matrix.python-version }}
148+
- name: Install VueGen GUI and pyinstaller
149+
run: |
150+
python -m pip install ".[gui]" pyinstaller
151+
- name: Install quarto tools
152+
run: |
153+
quarto install chromium
154+
quarto install tinytex
155+
- name: Build executable
156+
run: |
157+
cd gui
158+
pyinstaller -n vuegen_gui --onefile --windowed --collect-all pyvis --collect-all streamlit --collect-all st_aggrid --collect-all customtkinter --collect-all quarto_cli --collect-all plotly --collect-all _plotly_utils --collect-all traitlets --collect-all referencing --collect-all rpds --collect-all tenacity --collect-all pyvis --collect-all pandas --collect-all numpy --collect-all matplotlib --collect-all openpyxl --collect-all xlrd --collect-all nbformat --collect-all nbclient --collect-all altair --collect-all itables --collect-all kaleido --collect-all pyarrow --collect-all dataframe_image --collect-all narwhals --collect-all PIL --collect-all vl_convert --add-data ../docs/example_data/Basic_example_vuegen_demo_notebook:example_data/Basic_example_vuegen_demo_notebook --add-data ../docs/images/vuegen_logo.png:. app.py
159+
# --windowed only for mac, see:
160+
# https://pyinstaller.org/en/stable/usage.html#building-macos-app-bundles
161+
# 'Under macOS, PyInstaller always builds a UNIX executable in dist.'
162+
# --onefile --windowed for Windows?
163+
# --collect-all yaml --collect-all strenum --collect-all jinja2 --collect-all fastjsonschema --collect-all jsonschema --collect-all jsonschema_specifications
164+
# replace by spec file once done...
165+
- name: Upload executable
166+
uses: actions/upload-artifact@v4
167+
with:
168+
name: vuegen_gui_${{ matrix.os.label }}
169+
path: gui/dist/
170+
- name: Upload MacOS Executable to a GitHub Release)
171+
if: startsWith(matrix.os.runner, 'macos') && startsWith(github.ref, 'refs/tags')
172+
env:
173+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
174+
run: |
175+
echo GITHUB_REF_NAME $GITHUB_REF_NAME
176+
echo "Uploading vuegen_gui_${{ matrix.os.label }} to release $GITHUB_REF_NAME"
177+
echo "Available files in build folder: gui/dist/"
178+
cd gui/dist/
179+
ls -lh
180+
echo "Zip .app folder"
181+
zip -r vuegen_gui_${{ matrix.os.label }}.zip vuegen_gui.app/
182+
echo "Uploading..."
183+
gh release upload $GITHUB_REF_NAME vuegen_gui_${{ matrix.os.label }}.zip
184+
# .app is folder that needs to be zipped
185+
- name: Upload Windows Executable to a GitHub Release
186+
if: startsWith(matrix.os.runner, 'windows') && startsWith(github.ref, 'refs/tags')
187+
env:
188+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
189+
run: |
190+
echo "GITHUB_REF_NAME in env $env:GITHUB_REF_NAME"
191+
$GITHUB_REF_NAME = $env:GITHUB_REF_NAME
192+
echo "Uploading vuegen_gui_${{ matrix.os.label }} to release $GITHUB_REF_NAME"
193+
echo "Available files in build folder: gui/dist/"
194+
ls gui/dist/
195+
echo "Uploading..."
196+
gh release upload $GITHUB_REF_NAME gui/dist/vuegen_gui.exe#vuegen_gui_${{ matrix.os.label }}.exe
197+
# https://cli.github.com/manual/gh_release_upload
198+
# .exe is a single file already

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ logs/
118118
vuegen/logs/
119119
streamlit_report/
120120
quarto_report/
121+
output_docker/
121122

122123
# VS Code
123124
.DS_Store

CONTRIBUTING.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Contributing to VueGen
2+
3+
[VueGen][vuegen-repo] is an open source project, and we welcome contributions of all
4+
kinds via GitHub issues and pull requests: correct or improve our [documentation][vuegen-docs], report or fix bugs, propose changes, and implement new features. Please follow
5+
these guidelines to make sure that your contribution is easily integrated into the project.
6+
7+
## 1. Contributor Agreement
8+
9+
By contributing, you agree that we may redistribute your work under [our
10+
license](LICENSE). In exchange, we will address your issues and/or assess
11+
your change proposal as promptly as we can, and help you become a member of our
12+
community.
13+
14+
## 2. What to Contribute
15+
16+
The easiest way to get started is by reporting an issue that needs to be fixed,
17+
such as a bug in the code, unclear explanations, conceptual errors, or other details.
18+
You can also contribute by proposing new features or modules, improving existing
19+
functionality, or suggesting other ideas that might be useful. If you’re looking for
20+
inspiration, please check the [list of open issues][issues] in this repository.
21+
22+
Feedback from beginners is especially valuable, as experienced users may overlook how
23+
challenging certain aspects of the software can be for newcomers. Therefore, we encourage
24+
you to share any suggestions or observations you have about this project.
25+
26+
## 3. How to Contribute
27+
28+
Here are the ways you can submit your suggestions and contribute to the project:
29+
30+
1. **Reporting Issues or Suggesting Improvements:** If you have a [GitHub][github] account
31+
(or are willing to [open one][github-join]) but are unfamiliar with Git, you can report
32+
bugs or suggest improvements by [creating an issue][new-issue]. This GitHub feature allows
33+
for discussion threads on reported issues and proposed enhancements.
34+
35+
2. **Submitting Changes via Pull Requests:** If you are comfortable using Git and would like to
36+
add or modify a functionality, you can submit a **pull request (PR)**. Instructions on how to contribute this way are provided in the next section.
37+
38+
3. **Providing Feedback via Email:** If you don’t have a GitHub account and are
39+
unfamiliar with Git, you can send feedback via email to [[email protected]][contact]. However, using GitHub is preferred, as it allows us to respond more quickly and track discussions openly.
40+
41+
> [!NOTE]
42+
> The documentation for [Git][git-docs] and [GitHub][github-docs] are easy to follow, and you can learn the basics using their official guides.
43+
44+
## 4. Creating a Pull Request
45+
46+
If you choose to contribute via GitHub, you may want to look at [How to Contribute to an Open Source Project on GitHub][how-contribute]. In brief, we use [GitHub flow][github-flow] to manage changes:
47+
48+
1. Create a new branch in your desktop copy of this repository for each significant change.
49+
2. Commit the change in that branch.
50+
3. Push that branch to your fork of this repository on GitHub.
51+
4. Submit a pull request from that branch to the [upstream repository][vuegen-repo].
52+
5. If you receive feedback, make changes on your desktop and push to your branch on GitHub: the
53+
pull request will update automatically.
54+
55+
## 5. Credits
56+
57+
This contribution guide was modified under the [Creative Commons Attribution 4.0 International License][ccby] from the [Software Carpentry guides][soft-cp-guides].
58+
59+
[vuegen-repo]: https://github.com/Multiomics-Analytics-Group/vuegen
60+
[vuegen-docs]: https://vuegen.readthedocs.io/
61+
[issues]: https://github.com/Multiomics-Analytics-Group/vuegen/issues
62+
[new-issue]: https://github.com/Multiomics-Analytics-Group/vuegen/issues/new
63+
[github]: https://github.com
64+
[github-join]: https://github.com/join
65+
[contact]: mailto:[email protected]
66+
[git-docs]: https://git-scm.com/doc
67+
[github-docs]: https://guides.github.com/
68+
[how-contribute]: https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github
69+
[github-flow]: https://guides.github.com/introduction/flow/
70+
[soft-cp-guides]: https://software-carpentry.org/lessons/
71+
[ccby]: https://creativecommons.org/licenses/by/4.0/

0 commit comments

Comments
 (0)