Skip to content

Commit 0d61010

Browse files
committed
init
0 parents  commit 0d61010

22 files changed

Lines changed: 1120 additions & 0 deletions

.copier-answers.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Changes here will be overwritten by Copier
2+
_commit: 9b3c202
3+
_src_path: https://github.com/python-project-templates/base.git
4+
add_docs: false
5+
add_extension: python
6+
add_wiki: false
7+
email: dev@dau.dev
8+
github: dau-dev
9+
project_description: Python wrapping for openfpgaloader
10+
project_name: openfpgaloader
11+
python_version_primary: '3.11'
12+
team: the openfpgaloader-python authors

.gitattributes

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
examples/* linguist-documentation
2+
docs/* linguist-documentation
3+
*.ipynb linguist-documentation
4+
Makefile linguist-documentation
5+
6+
*.md text=auto eol=lf
7+
*.py text=auto eol=lf
8+
*.toml text=auto eol=lf
9+
*.yaml text=auto eol=lf

.github/CODE_OF_CONDUCT.md

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 dev@dau.dev. 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: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug to help us improve
4+
title: '[BUG] '
5+
labels: 'type: bug'
6+
assignees: ''
7+
---
8+
9+
**Description**
10+
A clear and concise description of the bug.
11+
12+
**Steps to Reproduce**
13+
1.
14+
2.
15+
3.
16+
17+
**Expected Behavior**
18+
What you expected to happen.
19+
20+
**Actual Behavior**
21+
What actually happened. Include full error messages or tracebacks if available.
22+
23+
**Environment**
24+
- OS: [e.g. Ubuntu 22.04, macOS 14.0, Windows 11]
25+
- Python version: [e.g. 3.11.5] (`python --version`)
26+
- Package version: (`pip show openfpgaloader | grep Version`)
27+
28+
**Additional Context**
29+
Add any other relevant context, logs, or screenshots.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: Feature Request
3+
about: Suggest a new feature or improvement
4+
title: '[FEATURE] '
5+
labels: 'type: enhancement'
6+
assignees: ''
7+
---
8+
9+
**Problem Statement**
10+
A clear description of the problem this feature would solve. Ex. "I'm always frustrated when [...]"
11+
12+
**Proposed Solution**
13+
A clear description of the desired behavior or feature.
14+
15+
**Alternatives Considered**
16+
Any alternative solutions or workarounds you've considered.
17+
18+
**Additional Context**
19+
Add any other context, mockups, or examples.

.github/ISSUE_TEMPLATE/question.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
name: Question
3+
about: Ask a question about usage or behavior
4+
title: '[QUESTION] '
5+
labels: 'tag: question'
6+
assignees: ''
7+
---
8+
9+
**Question**
10+
A clear and concise description of your question.
11+
12+
**Context**
13+
What are you trying to accomplish? Include relevant code snippets, configuration, or links to documentation you've already consulted.
14+
15+
**Environment**
16+
If relevant, include your environment details (OS, language versions, package version).

.github/dependabot.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "monthly"
7+
labels:
8+
- "part: github_actions"
9+
10+
- package-ecosystem: "pip"
11+
directory: "/"
12+
schedule:
13+
interval: "monthly"
14+
cooldown:
15+
default-days: 7
16+
labels:
17+
- "lang: python"
18+
- "part: dependencies"

.github/pull_request_template.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Description
2+
3+
Brief description of the changes in this PR.
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] Documentation update
10+
- [ ] Refactor / code cleanup
11+
- [ ] CI / build configuration
12+
- [ ] Other (describe below)
13+
14+
## Checklist
15+
16+
- [ ] Linting passes (`make lint`)
17+
- [ ] Tests pass (`make test`)
18+
- [ ] New tests added for new functionality
19+
- [ ] Documentation updated (if applicable)
20+
- [ ] Changelog / version bump (if applicable)

.github/workflows/build.yaml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: Build Status
2+
3+
on:
4+
push:
5+
branches: [main]
6+
tags: [v*]
7+
pull_request:
8+
branches: [main]
9+
workflow_dispatch:
10+
11+
concurrency:
12+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
13+
cancel-in-progress: true
14+
15+
permissions:
16+
contents: read
17+
checks: write
18+
pull-requests: write
19+
20+
jobs:
21+
build:
22+
runs-on: ${{ matrix.os }}
23+
strategy:
24+
matrix:
25+
os:
26+
- ubuntu-24.04
27+
- macos-14
28+
- windows-2022
29+
python-version:
30+
- "3.11"
31+
cibuildwheel:
32+
- "cp311"
33+
steps:
34+
- uses: actions/checkout@v4
35+
with:
36+
submodules: 'true'
37+
38+
- name: Setup cache (mac/linux)
39+
uses: actions/cache@v4
40+
with:
41+
path: "/home/runner/work/openfpgaloader-python/openfpgaloader-python/.ccache"
42+
key: cache-${{ runner.os }}-
43+
restore-keys: cache-${{ runner.os }}-
44+
if: ${{ runner.os != 'Windows' }}
45+
46+
- name: Setup cache (windows)
47+
uses: actions/cache@v4
48+
with:
49+
path: "C:/ProgramData/chocolatey/"
50+
key: cache-${{ runner.os }}-
51+
restore-keys: cache-${{ runner.os }}-
52+
if: ${{ runner.os == 'Windows' }}
53+
54+
- name: Set up Python ${{ matrix.python-version }}
55+
uses: actions/setup-python@v5
56+
with:
57+
python-version: ${{ matrix.python-version }}
58+
cache: 'pip'
59+
cache-dependency-path: 'pyproject.toml'
60+
61+
- name: Install dependencies
62+
run: pip install cibuildwheel
63+
64+
- name: Python Wheel Steps (linux)
65+
run: python -m cibuildwheel --output-dir dist
66+
env:
67+
CIBW_BUILD: "${{ matrix.cibuildwheel }}-manylinux*"
68+
CIBW_ENVIRONMENT_LINUX: CCACHE_DIR="/host/home/runner/work/openfpgaloader-python/openfpgaloader-python/.ccache"
69+
CIBW_BUILD_VERBOSITY: 3
70+
if: ${{ runner.os == 'Linux' }}
71+
72+
- name: Python Build Steps (mac)
73+
run: python -m cibuildwheel --output-dir dist
74+
env:
75+
CIBW_BUILD: "${{ matrix.cibuildwheel }}-macos*"
76+
CIBW_ENVIRONMENT_MACOS: CCACHE_DIR="/Users/runner/work/openfpgaloader-python/openfpgaloader-python/.ccache" MACOSX_DEPLOYMENT_TARGET=11.0
77+
CIBW_BUILD_VERBOSITY: 3
78+
if: ${{ matrix.os == 'macos-14' }}
79+
80+
- name: Python Build Steps (windows)
81+
run: python -m cibuildwheel --output-dir dist
82+
env:
83+
CIBW_BUILD: "${{ matrix.cibuildwheel }}-win_amd64"
84+
if: ${{ matrix.os == 'windows-2022' }}
85+
86+
- name: Upload Wheel
87+
uses: actions/upload-artifact@v4
88+
with:
89+
name: dist-${{ runner.os }}-${{ runner.arch }}-${{ matrix.python-version }}
90+
path: dist/*.whl
91+
92+
- name: Install wheel (mac/linux)
93+
run: python -m pip install dist/*.whl
94+
if: ${{ runner.os != 'Windows' }}
95+
96+
- name: Install wheel (windows)
97+
run: python -m pip install -U (Get-ChildItem .\dist\*.whl | Select-Object -Expand FullName)
98+
if: ${{ runner.os == 'Windows' }}
99+
100+
- name: Install test dependencies
101+
run: python -m pip install pytest rich typer
102+
103+
- name: Test Wheel
104+
run: python -m pytest -vvv openfpgaloader/tests

.github/workflows/copier.yaml

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)