Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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
|
||||||
@@ -17,11 +17,13 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2.3.4
|
||||||
- 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: Run ci_tests
|
||||||
|
run: ./ci_tests
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
@@ -40,8 +42,18 @@ jobs:
|
|||||||
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/*
|
||||||
|
- 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 }}
|
||||||
|
- name: Build and Push to Docker Hub
|
||||||
|
uses: docker/build-push-action@v2.6.1
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
tags: qmkfm/qmk_cli:latest
|
||||||
|
|||||||
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"python.formatting.provider": "yapf"
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
FROM qmkfm/base_container
|
||||||
|
|
||||||
|
# Install python packages
|
||||||
|
RUN python3 -m pip install --upgrade pip setuptools wheel
|
||||||
|
RUN python3 -m pip install --upgrade nose2 qmk
|
||||||
|
|
||||||
|
# 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
|
||||||
+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.0'
|
||||||
|
|||||||
+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)
|
||||||
|
|||||||
+29
-2
@@ -1,2 +1,29 @@
|
|||||||
bumpversion
|
bleach==3.3.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.1
|
||||||
|
jeepney==0.6.0
|
||||||
|
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.25.1
|
||||||
|
requests-toolbelt==0.9.1
|
||||||
|
rfc3986==1.5.0
|
||||||
|
SecretStorage==3.3.1
|
||||||
|
six==1.16.0
|
||||||
|
tqdm==4.61.2
|
||||||
|
twine==3.4.1
|
||||||
|
urllib3==1.26.6
|
||||||
|
webencodings==0.5.1
|
||||||
|
zipp==3.5.0
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.0.50
|
current_version = 0.2.0
|
||||||
commit = True
|
commit = True
|
||||||
tag = True
|
tag = True
|
||||||
tag_name = {new_version}
|
tag_name = {new_version}
|
||||||
|
|||||||
@@ -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