Skip to content

Commit c5ef74b

Browse files
authored
Merge pull request #77 from python-project-templates/tkp/rustjswasm
wip reimplementing rustjswasm template
2 parents 651522e + 5fbf477 commit c5ef74b

Some content is hidden

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

48 files changed

+1897
-2
lines changed

.github/workflows/build.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ jobs:
2828
- js
2929
- jupyter
3030
- rust
31+
# - rustjswasm
3132
os:
3233
- ubuntu-latest
3334
- macos-latest

Makefile

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ SED = sed -i '' -e
1818
endif
1919

2020

21-
.PHONY: gen-python gen-cpp gen-js gen-jupyter gen-rust
21+
.PHONY: gen-python gen-cpp gen-js gen-jupyter gen-rust gen-rustjswasm
2222
gen-python: ## regenerate the python template from scratch
2323
mkdir -p ../python-template && cd ../python-template && rm -rf ./* && rm -rf .copier-answers.yaml .gitignore .github .gitattributes
2424
copier copy -w . ../python-template --data-file examples/python.yaml
@@ -44,7 +44,12 @@ gen-rust: ## regenerate the rust template from scratch
4444
copier copy -w . ../python-template-rust --data-file examples/rust.yaml
4545
cd ../python-template-rust && $(SED) 's#_src_path: .#_src_path: https://github.com/python-project-templates/base.git#g' ./.copier-answers.yaml
4646

47-
.PHONY: test-python test-cpp test-js test-jupyter test-rust
47+
gen-rustjswasm: ## regenerate the rustjswasm template from scratch
48+
mkdir -p ../python-template-rustjswasm && cd ../python-template-rustjswasm && rm -rf ./* && rm -rf .copier-answers.yaml .gitignore .github .gitattributes
49+
copier copy -w . ../python-template-rustjswasm --data-file examples/rustjswasm.yaml
50+
cd ../python-template-rustjswasm && $(SED) 's#_src_path: .#_src_path: https://github.com/python-project-templates/base.git#g' ./.copier-answers.yaml
51+
52+
.PHONY: test-python test-cpp test-js test-jupyter test-rust test-rustjswasm
4853
test-python:
4954
cd ../python-template && git config --global user.name "github-actions" && git config --global user.email "41898282+github-actions[bot]@users.noreply.github.c@example.com" && git init && git add . && git commit -m "initial commit"
5055
cd ../python-template && make develop
@@ -82,3 +87,12 @@ test-rust:
8287
cd ../python-template-rust && make checks
8388
cd ../python-template-rust && make test
8489

90+
test-rustjswasm:
91+
cd ../python-template-rust && git config --global user.name "github-actions" && git config --global user.email "41898282+github-actions[bot]@users.noreply.github.c@example.com" && git init && git add . && git commit -m "initial commit"
92+
cd ../python-template-rust && make develop
93+
cd ../python-template-rust && git add Cargo.lock && git commit -m "lockfile"
94+
cd ../python-template-rust && make lint
95+
cd ../python-template-rust && make checks
96+
cd ../python-template-rust && make test
97+
98+

examples/rustjswasm.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
add_docs: true
3+
add_wiki: true
4+
add_extension: rustjswasm
5+
email: 3105306+timkpaine@users.noreply.github.com
6+
github: python-project-templates
7+
project_description: A Rust-Python project template
8+
project_name: python template rust
9+
python_version_primary: '3.9'
10+
team: Python Project Template Authors

rustjswasm/.gitattributes

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
examples/* linguist-documentation
2+
docs/* linguist-documentation
3+
*.ipynb linguist-documentation
4+
Makefile linguist-documentation
5+
6+
*.css text=auto eol=lf
7+
*.html text=auto eol=lf
8+
*.js text=auto eol=lf
9+
*.json text=auto eol=lf
10+
*.less text=auto eol=lf
11+
*.md text=auto eol=lf
12+
*.py text=auto eol=lf
13+
*.rs text=auto eol=lf
14+
*.toml text=auto eol=lf
15+
*.ts text=auto eol=lf
16+
*.yaml text=auto eol=lf
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to making participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, sex characteristics, gender identity and expression,
9+
level of experience, education, socio-economic status, nationality, personal
10+
appearance, race, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at {{email}}. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72+
73+
[homepage]: https://www.contributor-covenant.org
74+
75+
For answers to common questions about this code of conduct, see
76+
https://www.contributor-covenant.org/faq
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Desktop (please complete the following information):**
27+
- OS: [e.g. iOS]
28+
- Browser [e.g. chrome, safari]
29+
- Version [e.g. 22]
30+
31+
**Smartphone (please complete the following information):**
32+
- Device: [e.g. iPhone6]
33+
- OS: [e.g. iOS8.1]
34+
- Browser [e.g. stock browser, safari]
35+
- Version [e.g. 22]
36+
37+
**Additional context**
38+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

rustjswasm/.github/dependabot.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
labels:
8+
- "part: github_actions"
9+
10+
- package-ecosystem: "pip"
11+
directory: "/"
12+
schedule:
13+
interval: "monthly"
14+
labels:
15+
- "lang: python"
16+
- "part: dependencies"
17+
18+
- package-ecosystem: "npm"
19+
directory: "/js"
20+
schedule:
21+
interval: "monthly"
22+
labels:
23+
- "lang: javascript"
24+
- "part: dependencies"
25+
26+
- package-ecosystem: "cargo"
27+
directory: "/"
28+
schedule:
29+
interval: "monthly"
30+
labels:
31+
- "lang: rust"
32+
- "part: dependencies"
33+
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: Build Status
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
tags:
8+
- v*
9+
paths-ignore:
10+
- LICENSE
11+
- README.md
12+
pull_request:
13+
branches:
14+
- main
15+
workflow_dispatch:
16+
17+
concurrency:
18+
group: {% raw %}${{ github.workflow }}-${{ github.head_ref || github.run_id }}{% endraw %}
19+
cancel-in-progress: true
20+
21+
permissions:
22+
contents: read
23+
checks: write
24+
pull-requests: write
25+
26+
jobs:
27+
build:
28+
runs-on: {% raw %}${{ matrix.os }}{% endraw %}
29+
30+
strategy:
31+
matrix:
32+
os: [ubuntu-latest, macos-latest, windows-latest]
33+
python-version: ["{{python_version_primary}}"]
34+
node-version: [20.x]
35+
36+
steps:
37+
- uses: actions/checkout@v4
38+
39+
- uses: actions-ext/python/setup@main
40+
with:
41+
version: {% raw %}${{ matrix.python-version }}{% endraw %}
42+
43+
- uses: actions-ext/rust/setup@main
44+
45+
- uses: actions-ext/node/setup@main
46+
with:
47+
version: 20.x
48+
49+
- name: Install dependencies
50+
run: make develop
51+
52+
- name: Lint
53+
run: make lint
54+
55+
- name: Checks
56+
run: make checks
57+
if: matrix.os == 'ubuntu-latest'
58+
59+
- name: Build
60+
run: make build
61+
62+
- name: Test
63+
run: make coverage
64+
65+
- name: Upload test results (Python)
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: {% raw %}test-results-${{ matrix.os }}-${{ matrix.python-version }}{% endraw %}
69+
path: '**/junit.xml'
70+
if: {% raw %}${{ always() }}{% endraw %}
71+
72+
- name: Publish Unit Test Results
73+
uses: EnricoMi/publish-unit-test-result-action@v2
74+
with:
75+
files: '**/junit.xml'
76+
if: matrix.os == 'ubuntu-latest'
77+
78+
- name: Upload coverage
79+
uses: codecov/codecov-action@v5
80+
with:
81+
token: {% raw %}${{ secrets.CODECOV_TOKEN }}{% endraw %}
82+
83+
- name: Set up QEMU
84+
uses: docker/setup-qemu-action@v3
85+
with:
86+
platforms: all
87+
if: runner.os == 'Linux' && runner.arch == 'X64'
88+
89+
- name: Make dist
90+
run: |
91+
make dist-rs
92+
make dist-py-sdist
93+
make dist-py-wheel
94+
make dist-check
95+
if: matrix.os == 'ubuntu-latest'
96+
97+
- name: Make dist
98+
run: |
99+
make dist-py-wheel
100+
make dist-check
101+
env:
102+
CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0
103+
if: matrix.os != 'ubuntu-latest'
104+
105+
- uses: actions/upload-artifact@v4
106+
with:
107+
name: {% raw %}dist-${{matrix.os}}{% endraw %}
108+
path: dist
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Copier Updates
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: "0 5 * * 0"
7+
8+
jobs:
9+
update:
10+
permissions:
11+
contents: write
12+
pull-requests: write
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions-ext/copier-update@main
16+
with:
17+
token: ${{ secrets.WORKFLOW_TOKEN }}

0 commit comments

Comments
 (0)