Compare commits
52 Commits
0.0.50
...
debian_package
| Author | SHA1 | Date | |
|---|---|---|---|
| 69de9f19e6 | |||
| dfc3ae5765 | |||
| 628615b3a9 | |||
| 5990fdddce | |||
| 9559d406f5 | |||
| fb1993ab04 | |||
| d7c20a56a2 | |||
| 1f7ad8a73e | |||
| 2faca28631 | |||
| d99eed2ed0 | |||
| a5a481e322 | |||
| 21daea7028 | |||
| 51e80c2f52 | |||
| 567ef9637e | |||
| e8818c9d23 | |||
| 2710813c51 | |||
| fb69e6d50a | |||
| 135d9f63a1 | |||
| 695cd7eb4d | |||
| 61ca025afd | |||
| 2bd1630621 | |||
| 34517d01b7 | |||
| 0a4d66e13a | |||
| fe0a3af05f | |||
| 4508b8548f | |||
| 2ea90a0893 | |||
| 9fccc990be | |||
| 6d99eacdf8 | |||
| dbd731585a | |||
| 9d480bd287 | |||
| 709f416e52 | |||
| bcdac9a80e | |||
| 4772e68828 | |||
| 24741c7d2b | |||
| b756421528 | |||
| 3d96bcdc14 | |||
| 6e6b6bcde6 | |||
| 1df06eed72 | |||
| 60a56b6976 | |||
| 1e3605feb3 | |||
| 48ddcefea1 | |||
| 2f6f38cc33 | |||
| c73ae7e97c | |||
| 0475193870 | |||
| 8d9b3b2880 | |||
| 0dbe3dc448 | |||
| c41fd5e940 | |||
| b70736a876 | |||
| 69b3b890d2 | |||
| 8b30a9766d | |||
| 982349a450 | |||
| 4d161c9ec4 |
@@ -0,0 +1,15 @@
|
|||||||
|
# Please see the documentation for all configuration options:
|
||||||
|
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||||
|
|
||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: "github-actions" # See documentation for possible values
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
- package-ecosystem: "pip" # See documentation for possible values
|
||||||
|
directory: "/" # Location of package manifests
|
||||||
|
schedule:
|
||||||
|
interval: "daily"
|
||||||
|
reviewers:
|
||||||
|
- "qmk/collaborators"
|
||||||
@@ -17,27 +17,15 @@ jobs:
|
|||||||
python-version: [3.7, 3.8, 3.9]
|
python-version: [3.7, 3.8, 3.9]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2.3.4
|
||||||
|
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v2.2.2
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
|
|
||||||
- name: Install Python dependencies
|
- name: Run ci_tests
|
||||||
run: |
|
run: ./ci_tests -a
|
||||||
python3 -m pip install wheel
|
|
||||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
- name: Install QMK CLI from source
|
|
||||||
run: |
|
|
||||||
python3 -m pip install -r requirements.txt
|
|
||||||
python3 setup.py sdist bdist_wheel
|
|
||||||
cd ..
|
|
||||||
python3 -m pip install --force-reinstall --no-index --no-deps --prefix=~/.local --find-links qmk_cli/dist qmk
|
|
||||||
|
|
||||||
- name: Run qmk setup -y
|
|
||||||
run: qmk setup -y
|
|
||||||
|
|
||||||
test_cli_win:
|
test_cli_win:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
@@ -45,7 +33,7 @@ jobs:
|
|||||||
QMK_HOME: $HOME/qmk_firmware
|
QMK_HOME: $HOME/qmk_firmware
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v2.3.4
|
||||||
|
|
||||||
- name: (MSYS2) Setup and install dependencies
|
- name: (MSYS2) Setup and install dependencies
|
||||||
uses: msys2/setup-msys2@v2
|
uses: msys2/setup-msys2@v2
|
||||||
@@ -57,7 +45,6 @@ jobs:
|
|||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
run: |
|
||||||
python3 -m pip install wheel
|
python3 -m pip install wheel
|
||||||
|
|
||||||
- name: (MSYS2) Install QMK CLI from source
|
- name: (MSYS2) Install QMK CLI from source
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: |
|
run: |
|
||||||
@@ -65,7 +52,6 @@ jobs:
|
|||||||
python3 setup.py sdist bdist_wheel
|
python3 setup.py sdist bdist_wheel
|
||||||
cd ..
|
cd ..
|
||||||
python3 -m pip install --force-reinstall --no-index --no-deps --find-links qmk_cli/dist qmk
|
python3 -m pip install --force-reinstall --no-index --no-deps --find-links qmk_cli/dist qmk
|
||||||
|
|
||||||
- name: (MSYS2) Run qmk setup -y
|
- name: (MSYS2) Run qmk setup -y
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
run: qmk setup -y
|
run: qmk setup -y
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
# For most projects, this workflow file will not need changing; you simply need
|
||||||
|
# to commit it to your repository.
|
||||||
|
#
|
||||||
|
# You may wish to alter this file to override the set of languages analyzed,
|
||||||
|
# or to provide custom queries or build logic.
|
||||||
|
#
|
||||||
|
# ******** NOTE ********
|
||||||
|
# We have attempted to detect the languages in your repository. Please check
|
||||||
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
|
# supported CodeQL languages.
|
||||||
|
#
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ master ]
|
||||||
|
schedule:
|
||||||
|
- cron: '22 18 * * 0'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'python' ]
|
||||||
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||||
|
# Learn more:
|
||||||
|
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2.3.4
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
|
# By default, queries listed here will override any specified in a config file.
|
||||||
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v1
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 https://git.io/JvXDl
|
||||||
|
|
||||||
|
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||||
|
# and modify them (or add more) to build your code if your project
|
||||||
|
# uses a compiled language
|
||||||
|
|
||||||
|
#- run: |
|
||||||
|
# make bootstrap
|
||||||
|
# make release
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
@@ -13,35 +13,112 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2.3.4
|
||||||
|
|
||||||
|
# Environment Setup
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v2
|
uses: actions/setup-python@v2.2.2
|
||||||
with:
|
with:
|
||||||
python-version: '3.7'
|
python-version: '3.7'
|
||||||
- name: Install dependencies
|
|
||||||
|
- name: Run ci_tests
|
||||||
|
run: ./ci_tests
|
||||||
|
|
||||||
|
- name: Install system dependencies
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install devscripts equivs sphinx-common sphinx-rtd-theme-common # dh-virtualenv deps
|
||||||
|
apt-get install debhelper dh-python python3-all # stdeb deps
|
||||||
|
apt-get install dpkg-sig # signing deps
|
||||||
|
|
||||||
|
- name: Install dh-virtualenv
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/spotify/dh-virtualenv.git
|
||||||
|
cd dh-virtualenv
|
||||||
|
mk-build-deps -ri
|
||||||
|
dpkg-buildpackage -us -uc -b
|
||||||
|
cd ..
|
||||||
|
dpkg -i dh-virtualenv_*.deb
|
||||||
|
|
||||||
|
- name: Install GPG secret key
|
||||||
|
run: |
|
||||||
|
echo -e "${{ secrets.QMK_GPG_SECRET_KEY }}" | gpg --batch --import
|
||||||
|
gpg --list-secret-keys --keyid-format LONG
|
||||||
|
|
||||||
|
- name: Install python dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install setuptools wheel
|
pip install setuptools wheel
|
||||||
pip install -r requirements-dev.txt
|
pip install -r requirements-dev.txt
|
||||||
|
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: docker/login-action@v1.10.0
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||||
|
|
||||||
|
# Build and upload new Python package
|
||||||
- name: Bump version
|
- name: Bump version
|
||||||
run: |
|
run: |
|
||||||
git config --local user.email "hello@qmk.fm"
|
git config --local user.email "hello@qmk.fm"
|
||||||
git config --local user.name "QMK Bot"
|
git config --local user.name "QMK Bot"
|
||||||
bumpversion ${{ github.event.inputs.version_part }}
|
bumpversion ${{ github.event.inputs.version_part }}
|
||||||
|
|
||||||
- name: Push changes
|
- name: Push changes
|
||||||
uses: ad-m/github-push-action@master
|
uses: ad-m/github-push-action@master
|
||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
branch: master
|
branch: master
|
||||||
tags: true
|
tags: true
|
||||||
|
|
||||||
- name: Build and publish
|
- name: Build and publish
|
||||||
env:
|
env:
|
||||||
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
|
TWINE_USERNAME: qmk
|
||||||
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
|
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
|
||||||
run: |
|
run: |
|
||||||
python setup.py sdist bdist_wheel
|
python setup.py sdist bdist_wheel
|
||||||
twine upload dist/*
|
twine upload dist/*
|
||||||
|
|
||||||
|
# Build and upload new Docker container
|
||||||
|
- name: Build and Push to Docker Hub
|
||||||
|
uses: docker/build-push-action@v2.6.1
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: true
|
||||||
|
tags: qmkfm/qmk_cli:latest
|
||||||
|
|
||||||
|
# Build Debian package
|
||||||
|
- name: Build debian package
|
||||||
|
run: |
|
||||||
|
python3 setup.py bdist_deb
|
||||||
|
dpkg-sig -s builder -k F464DFD46C4DA3FD4D06234691B06358D2CAE8AE deb_dist/*.deb
|
||||||
|
|
||||||
|
# Create Debian repo
|
||||||
|
- name: Build debian package repository
|
||||||
|
run: |
|
||||||
|
mkdir -p deb_repo/deb deb_repo/dsc
|
||||||
|
cp gpg_pubkey.txt deb_repo
|
||||||
|
cp deb_dist/*.deb deb_repo/deb
|
||||||
|
cp deb_dist/*.dsc deb_dist/*.orig.tar.gz deb_dist/*.debian.tar.xz deb_repo/dsc
|
||||||
|
cd deb_repo
|
||||||
|
apt-ftparchive packages deb > Packages
|
||||||
|
apt-ftparchive sources dsc > Sources
|
||||||
|
gzip -k {Packages,Sources}
|
||||||
|
apt-ftparchive release . > Release
|
||||||
|
gpg --default-key F464DFD46C4DA3FD4D06234691B06358D2CAE8AE -abs -o Release.gpg Release
|
||||||
|
gpg --default-key F464DFD46C4DA3FD4D06234691B06358D2CAE8AE --clearsign -o InRelease Release
|
||||||
|
|
||||||
|
# Upload the Debian repo to S3
|
||||||
|
- name: Upload Debian Repo
|
||||||
|
uses: jakejarvis/s3-sync-action@0.5.1
|
||||||
|
with:
|
||||||
|
args: --acl public-read --follow-symlinks --delete
|
||||||
|
env:
|
||||||
|
AWS_S3_BUCKET: qmk-debian
|
||||||
|
AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY }}
|
||||||
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_KEY }}
|
||||||
|
AWS_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
|
||||||
|
SOURCE_DIR: 'deb_repo'
|
||||||
|
|||||||
@@ -106,3 +106,8 @@ venv.bak/
|
|||||||
|
|
||||||
# QMK
|
# QMK
|
||||||
qmk_firmware
|
qmk_firmware
|
||||||
|
|
||||||
|
# Debian packages
|
||||||
|
deb_dist
|
||||||
|
deb_repo
|
||||||
|
qmk-*.tar.gz
|
||||||
|
|||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"python.formatting.provider": "yapf"
|
||||||
|
}
|
||||||
+13
@@ -0,0 +1,13 @@
|
|||||||
|
FROM qmkfm/base_container
|
||||||
|
|
||||||
|
# Copy package in
|
||||||
|
ADD dist /tmp/dist
|
||||||
|
|
||||||
|
# Install python packages
|
||||||
|
RUN python3 -m pip uninstall -y qmk || true
|
||||||
|
RUN python3 -m pip install --upgrade pip setuptools wheel nose2 && \
|
||||||
|
python3 -m pip install /tmp/dist/qmk-*.whl && \
|
||||||
|
rm -rf /tmp/dist
|
||||||
|
|
||||||
|
# Set the default location for qmk_firmware
|
||||||
|
ENV QMK_HOME /qmk_firmware
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
Use this section to tell people about which versions of your project are
|
||||||
|
currently being supported with security updates.
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| ------- | ------------------ |
|
||||||
|
| 0.0.x | :white_check_mark: |
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
* [Open an Issue](https://github.com/qmk/qmk_cli/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBug%5D+)
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
ADVANCED=false
|
||||||
|
TMPDIR=$(mktemp -d)
|
||||||
|
QMK_HOME="$TMPDIR/qmk_firmware"
|
||||||
|
export QMK_HOME
|
||||||
|
|
||||||
|
for arg in $@; do
|
||||||
|
if [ "$arg" = "-a" ]; then
|
||||||
|
ADVANCED=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ $ADVANCED = true ]; then
|
||||||
|
echo "*** Running in advanced mode with tmp files in $TMPDIR"
|
||||||
|
else
|
||||||
|
echo "*** Running in basic mode with tmp files in $TMPDIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setup our virtualenv
|
||||||
|
if [ -e .ci_venv ]; then
|
||||||
|
rm -rf .ci_venv
|
||||||
|
fi
|
||||||
|
|
||||||
|
python3 -m venv .ci_venv
|
||||||
|
source .ci_venv/bin/activate
|
||||||
|
|
||||||
|
# Install dependencies
|
||||||
|
python3 -m pip install -U pip wheel
|
||||||
|
python3 -m pip install .
|
||||||
|
python3 -m pip install -r requirements-dev.txt
|
||||||
|
|
||||||
|
# Ensure that qmk works
|
||||||
|
echo "*** Testing 'qmk clone -h'"
|
||||||
|
qmk clone -h
|
||||||
|
echo "*** Testing 'qmk config -a'"
|
||||||
|
qmk config -a
|
||||||
|
echo "*** Testing 'qmk setup -n'"
|
||||||
|
qmk setup -n
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "*** Basic tests completed successfully!"
|
||||||
|
|
||||||
|
# Run advanced test if requested
|
||||||
|
if [ $ADVANCED = true ]; then
|
||||||
|
echo
|
||||||
|
echo "*** Testing 'qmk setup -y'"
|
||||||
|
qmk setup -y
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "*** Advanced tests completed successfully!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
deactivate
|
||||||
|
rm -rf .ci_venv $TMPDIR
|
||||||
Vendored
+65
@@ -0,0 +1,65 @@
|
|||||||
|
# Atmel DFU
|
||||||
|
### ATmega16U2
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
|
||||||
|
### ATmega32U2
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
|
||||||
|
### ATmega16U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
|
||||||
|
### ATmega32U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
|
||||||
|
### AT90USB64
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
|
||||||
|
### AT90USB162
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
|
||||||
|
### AT90USB128
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
|
||||||
|
|
||||||
|
# Input Club
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
|
||||||
|
|
||||||
|
# STM32duino
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
|
||||||
|
# STM32 DFU
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||||
|
|
||||||
|
# BootloadHID
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
|
||||||
|
|
||||||
|
# USBAspLoader
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
|
||||||
|
|
||||||
|
# ModemManager should ignore the following devices
|
||||||
|
# Atmel SAM-BA (Massdrop)
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
|
||||||
|
# Caterina (Pro Micro)
|
||||||
|
## Spark Fun Electronics
|
||||||
|
### Pro Micro 3V3/8MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### Pro Micro 5V/16MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### LilyPad 3V3/8MHz (and some Pro Micro clones)
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## Pololu Electronics
|
||||||
|
### A-Star 32U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## Arduino SA
|
||||||
|
### Leonardo
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### Micro
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## Adafruit Industries LLC
|
||||||
|
### Feather 32U4
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### ItsyBitsy 32U4 3V3/8MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### ItsyBitsy 32U4 5V/16MHz
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
## dog hunter AG
|
||||||
|
### Leonardo
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
### Micro
|
||||||
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||||
|
|
||||||
|
# hid_listen
|
||||||
|
KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
|
||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
Files: *
|
||||||
|
Copyright: 2019-2021 Zach White, et al
|
||||||
|
License: expat
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
=t1lg
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
"""A program to help you work with qmk_firmware."""
|
"""A program to help you work with qmk_firmware."""
|
||||||
|
|
||||||
__version__ = '0.0.50'
|
__version__ = '0.2.2'
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@ def is_qmk_firmware(qmk_firmware):
|
|||||||
qmk_firmware / 'quantum',
|
qmk_firmware / 'quantum',
|
||||||
qmk_firmware / 'requirements.txt',
|
qmk_firmware / 'requirements.txt',
|
||||||
qmk_firmware / 'requirements-dev.txt',
|
qmk_firmware / 'requirements-dev.txt',
|
||||||
qmk_firmware / 'lib/python/qmk/cli/doctor.py'
|
qmk_firmware / 'lib/python/qmk/cli/__init__.py'
|
||||||
]
|
]
|
||||||
|
|
||||||
for path in paths:
|
for path in paths:
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ from platform import platform
|
|||||||
from traceback import print_exc
|
from traceback import print_exc
|
||||||
|
|
||||||
import milc
|
import milc
|
||||||
import milc.subcommand.config # noqa
|
|
||||||
from milc.questions import yesno
|
|
||||||
|
|
||||||
from . import __version__
|
from . import __version__
|
||||||
from .helpers import find_qmk_firmware, is_qmk_firmware
|
from .helpers import find_qmk_firmware, is_qmk_firmware
|
||||||
@@ -20,6 +18,10 @@ from .helpers import find_qmk_firmware, is_qmk_firmware
|
|||||||
milc.set_metadata(version=__version__)
|
milc.set_metadata(version=__version__)
|
||||||
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
|
milc.EMOJI_LOGLEVELS['INFO'] = '{fg_blue}Ψ{style_reset_all}'
|
||||||
|
|
||||||
|
# These must happen after the milc.set_metadata() call
|
||||||
|
import milc.subcommand.config # noqa, must come after milc.set_metadata()
|
||||||
|
from milc.questions import yesno
|
||||||
|
|
||||||
|
|
||||||
@milc.cli.entrypoint('CLI wrapper for running QMK commands.')
|
@milc.cli.entrypoint('CLI wrapper for running QMK commands.')
|
||||||
def qmk_main(cli):
|
def qmk_main(cli):
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ def setup(cli):
|
|||||||
git_upstream(cli.args.home)
|
git_upstream(cli.args.home)
|
||||||
else:
|
else:
|
||||||
exit(1)
|
exit(1)
|
||||||
|
else:
|
||||||
|
cli.log.warning('Not cloning qmk_firmware due to user input or --no flag.')
|
||||||
|
|
||||||
# Offer to set `user.qmk_home` for them.
|
# Offer to set `user.qmk_home` for them.
|
||||||
if str(cli.args.home) != os.environ['QMK_HOME'] and yesno(home_prompt):
|
if str(cli.args.home) != os.environ['QMK_HOME'] and yesno(home_prompt):
|
||||||
@@ -91,14 +93,15 @@ def setup(cli):
|
|||||||
cli.write_config_option('user', 'qmk_home')
|
cli.write_config_option('user', 'qmk_home')
|
||||||
|
|
||||||
# Run `qmk doctor` to check the rest of the environment out
|
# Run `qmk doctor` to check the rest of the environment out
|
||||||
color = '--color' if cli.config.general.color else '--no-color'
|
if cli.args.home.exists():
|
||||||
unicode = '--unicode' if cli.config.general.unicode else '--no-unicode'
|
color = '--color' if cli.config.general.color else '--no-color'
|
||||||
doctor_command = [Path(sys.argv[0]).as_posix(), color, unicode, 'doctor']
|
unicode = '--unicode' if cli.config.general.unicode else '--no-unicode'
|
||||||
|
doctor_command = [Path(sys.argv[0]).as_posix(), color, unicode, 'doctor']
|
||||||
|
|
||||||
if cli.args.no:
|
if cli.args.no:
|
||||||
doctor_command.append('--no')
|
doctor_command.append('-n')
|
||||||
|
|
||||||
if cli.args.yes:
|
if cli.args.yes:
|
||||||
doctor_command.append('--yes')
|
doctor_command.append('-y')
|
||||||
|
|
||||||
cli.run(doctor_command, capture_output=False)
|
cli.run(doctor_command, stdin=None, capture_output=False)
|
||||||
|
|||||||
+30
-2
@@ -1,2 +1,30 @@
|
|||||||
bumpversion
|
bleach==4.0.0
|
||||||
twine
|
bump2version==1.0.1
|
||||||
|
bumpversion==0.6.0
|
||||||
|
certifi==2021.5.30
|
||||||
|
cffi==1.14.6
|
||||||
|
chardet==4.0.0
|
||||||
|
colorama==0.4.4
|
||||||
|
cryptography==3.4.7
|
||||||
|
docutils==0.17.1
|
||||||
|
idna==2.10
|
||||||
|
importlib-metadata==4.6.3
|
||||||
|
jeepney==0.7.1
|
||||||
|
keyring==23.0.1
|
||||||
|
packaging==21.0
|
||||||
|
pkginfo==1.7.1
|
||||||
|
pycparser==2.20
|
||||||
|
Pygments==2.9.0
|
||||||
|
pyparsing==2.4.7
|
||||||
|
readme-renderer==29.0
|
||||||
|
requests==2.26.0
|
||||||
|
requests-toolbelt==0.9.1
|
||||||
|
rfc3986==1.5.0
|
||||||
|
SecretStorage==3.3.1
|
||||||
|
six==1.16.0
|
||||||
|
stdeb==0.10.0
|
||||||
|
tqdm==4.62.0
|
||||||
|
twine==3.4.2
|
||||||
|
urllib3==1.26.6
|
||||||
|
webencodings==0.5.1
|
||||||
|
zipp==3.5.0
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
|
[global]
|
||||||
|
command-packages: stdeb.command
|
||||||
|
|
||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.0.50
|
current_version = 0.2.2
|
||||||
commit = True
|
commit = True
|
||||||
tag = True
|
tag = True
|
||||||
tag_name = {new_version}
|
tag_name = {new_version}
|
||||||
@@ -12,6 +15,9 @@ message = New release: {current_version} → {new_version}
|
|||||||
[bdist_wheel]
|
[bdist_wheel]
|
||||||
universal = 1
|
universal = 1
|
||||||
|
|
||||||
|
[entry_points]
|
||||||
|
qmk = qmk_cli.script_qmk:main
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
ignore = E501,E226
|
ignore = E501,E226
|
||||||
|
|
||||||
@@ -22,11 +28,24 @@ description-file = README.md
|
|||||||
dist-name = qmk
|
dist-name = qmk
|
||||||
license_file = LICENSE
|
license_file = LICENSE
|
||||||
module = qmk_cli
|
module = qmk_cli
|
||||||
home-page = https://github.com/qmk/qmk_cli
|
home-page = https://qmk.fm/
|
||||||
requires-python = >=3.7
|
requires-python = >=3.7
|
||||||
|
|
||||||
[entry_points]
|
[sdist_dsc]
|
||||||
qmk = qmk_cli.script_qmk:main
|
# Configuration for the Debian package
|
||||||
|
with-python2: False
|
||||||
|
with-python3: True
|
||||||
|
with-dh-virtualenv: True
|
||||||
|
sign-results: True
|
||||||
|
compat: 10
|
||||||
|
suite3: stable
|
||||||
|
package3: qmk
|
||||||
|
maintainer: QMK Firmware (Official QMK GPG Signing Key) <hello@qmk.fm>
|
||||||
|
section: devel
|
||||||
|
depends3: build-essential, clang-format, diffutils, gcc, git, unzip, wget, zip, python3-pip, binutils-avr, gcc-avr, avr-libc, binutils-arm-none-eabi, gcc-arm-none-eabi, libnewlib-arm-none-eabi, avrdude, dfu-programmer, dfu-util, teensy-loader-cli, libhidapi-hidraw0, libusb-dev
|
||||||
|
depends: build-essential, clang-format, diffutils, gcc, git, unzip, wget, zip, python3-pip, binutils-avr, gcc-avr, avr-libc, binutils-arm-none-eabi, gcc-arm-none-eabi, libnewlib-arm-none-eabi, avrdude, dfu-programmer, dfu-util, teensy-loader-cli, libhidapi-hidraw0, libusb-dev
|
||||||
|
x-python3-version: >= 3.7
|
||||||
|
udev-rules: debian/50-qmk.rules
|
||||||
|
|
||||||
[yapf]
|
[yapf]
|
||||||
align_closing_bracket_with_visual_indent = True
|
align_closing_bracket_with_visual_indent = True
|
||||||
|
|||||||
@@ -40,15 +40,30 @@ if __name__ == "__main__":
|
|||||||
],
|
],
|
||||||
python_requires=metadata['requires-python'],
|
python_requires=metadata['requires-python'],
|
||||||
install_requires=[
|
install_requires=[
|
||||||
"dotty-dict",
|
"appdirs==1.4.4",
|
||||||
"flake8",
|
"argcomplete==1.12.3",
|
||||||
"hid",
|
"attrs==21.2.0",
|
||||||
"hjson",
|
"colorama==0.4.4",
|
||||||
"jsonschema>=3",
|
"coverage==5.5",
|
||||||
"milc>=1.4.0",
|
"qmk-dotty-dict==1.3.0.post1",
|
||||||
"nose2",
|
"flake8==3.9.2",
|
||||||
"pygments",
|
"halo==0.0.31",
|
||||||
"pyusb",
|
"hid==1.0.4",
|
||||||
"yapf"
|
"hjson==3.0.2",
|
||||||
|
"jsonschema==3.2.0",
|
||||||
|
"log-symbols==0.0.14",
|
||||||
|
"mccabe==0.6.1",
|
||||||
|
"milc==1.4.2",
|
||||||
|
"nose2==0.10.0",
|
||||||
|
"pycodestyle==2.7.0",
|
||||||
|
"pyflakes==2.3.1",
|
||||||
|
"Pygments==2.9.0",
|
||||||
|
"pyrsistent==0.18.0",
|
||||||
|
"pyusb==1.2.1",
|
||||||
|
"setuptools>=45",
|
||||||
|
"six==1.16.0",
|
||||||
|
"spinners==0.0.24",
|
||||||
|
"termcolor==1.1.0",
|
||||||
|
"yapf==0.31.0"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user