Compare commits

..

12 Commits

Author SHA1 Message Date
QMK Bot 7be310f364 New release: 1.1.7 → 1.1.8 2025-05-28 13:14:51 +00:00
Nick Brassel 2316a34ce9 Hope this works. (#209) 2025-05-28 23:13:37 +10:00
dependabot[bot] 36c23e3de6 Bump docker/build-push-action from 6.15.0 to 6.16.0 (#204)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.15.0 to 6.16.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.15.0...v6.16.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 6.16.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-27 00:33:51 +01:00
QMK Bot b6bc144e9e New release: 1.1.6 → 1.1.7 2025-04-21 23:39:00 +00:00
Agathe 93e629608e setup.cfg: drop setuptools dependency (#187)
The setuptools dependency is not needed in this file because setuptools
will be installed from the pyproject.toml file. Since the project does
not use anything from the setuptools package, remove it as a dependency.

This fixes the following bug in Debian:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1083736
2025-04-21 19:18:46 +01:00
Nick Brassel cacd0fabbc Merge pull request #203 from qmk/windows-uv-compat 2025-04-22 00:14:36 +10:00
Nick Brassel d9f9b5a27d Path characters. 2025-04-11 22:03:14 +10:00
Nick Brassel 4d4892f58a Windows uv compat. 2025-03-31 14:18:39 +11:00
dependabot[bot] ffe20fb63e Bump docker/build-push-action from 6.13.0 to 6.15.0 (#200) 2025-03-02 17:38:01 +11:00
dependabot[bot] b384f871e8 Bump docker/build-push-action from 6.9.0 to 6.13.0 (#196)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.13.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 13:28:19 +00:00
Joel Challis f2b8522c89 Fix test_cli_win test matrix (#197) 2025-02-01 13:12:55 +00:00
Joel Challis 75dcb0e475 Correct use of lru_cache for helpers (#189) 2024-11-15 06:51:59 +00:00
10 changed files with 27 additions and 87 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 1.1.6
current_version = 1.1.8
commit = True
tag = True
tag_name = {new_version}
+1 -1
View File
@@ -68,7 +68,7 @@ jobs:
- name: (MSYS2) Install Python dependencies
shell: msys2 {0}
run: |
python3 -m pip install --upgrade pip
python3 -m pip install --break-system-packages --force-reinstall --upgrade pip
- name: (MSYS2) Install QMK CLI from source
shell: msys2 {0}
+1 -1
View File
@@ -46,7 +46,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v6.9.0
uses: docker/build-push-action@v6.16.0
with:
context: .
push: true
+1 -1
View File
@@ -74,7 +74,7 @@ jobs:
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v6.9.0
uses: docker/build-push-action@v6.16.0
with:
context: .
push: true
+1 -1
View File
@@ -1,3 +1,3 @@
"""A program to help you work with qmk_firmware."""
__version__ = '1.1.6'
__version__ = '1.1.8'
+4 -7
View File
@@ -2,7 +2,6 @@
"""
import os
import json
from platformdirs import user_data_dir
from functools import lru_cache
from pathlib import Path
@@ -27,7 +26,7 @@ def is_qmk_firmware(qmk_firmware):
return True
@lru_cache(maxsize=2)
@lru_cache(maxsize=1)
def find_qmk_firmware():
"""Look for qmk_firmware in the usual places.
@@ -45,13 +44,10 @@ def find_qmk_firmware():
return path.resolve()
return path
hidden_home = Path(user_data_dir('qmk_cli', 'QMK')) / 'qmk_firmware'
if hidden_home.exists():
return hidden_home
return Path.home() / 'qmk_firmware'
@lru_cache(maxsize=1)
def in_qmk_firmware():
"""Returns the path to the qmk_firmware we are currently in, or None if we are not inside qmk_firmware.
"""
@@ -78,7 +74,7 @@ def is_qmk_userspace(qmk_userspace):
return False
@lru_cache(maxsize=2)
@lru_cache(maxsize=1)
def find_qmk_userspace():
"""Look for qmk_userspace in the usual places.
"""
@@ -97,6 +93,7 @@ def find_qmk_userspace():
return Path.home() / 'qmk_userspace'
@lru_cache(maxsize=1)
def in_qmk_userspace():
"""Returns the path to the qmk_userspace we are currently in, or None if we are not inside qmk_userspace.
"""
+17 -2
View File
@@ -52,7 +52,19 @@ def main():
if 'windows' in platform().lower():
msystem = os.environ.get('MSYSTEM', '')
if 'mingw64' not in sys.executable or 'MINGW64' not in msystem:
# Assume the environment isn't workable by default
env_ok = False
# Check if we're using the mingw64/msys2 environment
if 'mingw64' in sys.executable and 'MINGW64' in msystem:
env_ok = True
# Check if we're using a `uv`-based environment
if '\\uv\\' in sys.executable or '/uv/' in sys.executable:
env_ok = True
# If none of the options above were true, then we're in an unsupported environment. Bomb out.
if not env_ok:
print('ERROR: It seems you are not using the MINGW64 terminal.')
print('Please close this terminal and open a new MSYS2 MinGW 64-bit terminal.')
print('Python: %s, MSYSTEM: %s' % (sys.executable, msystem))
@@ -61,7 +73,10 @@ def main():
# Environment setup
qmk_userspace = find_qmk_userspace()
qmk_firmware = find_qmk_firmware()
os.environ['QMK_USERSPACE'] = str(qmk_userspace)
if is_qmk_userspace(qmk_userspace):
os.environ['QMK_USERSPACE'] = str(qmk_userspace)
elif 'QMK_USERSPACE' in os.environ: # Failed to find valid userspace, including what was in the environment if specified -- wipe any environment variable if present as it's clearly invalid.
os.environ.pop('QMK_USERSPACE')
os.environ['QMK_HOME'] = str(qmk_firmware)
os.environ['ORIG_CWD'] = os.getcwd()
-1
View File
@@ -6,4 +6,3 @@ from . import clone # noqa
from . import console # noqa
from . import env # noqa
from . import setup # noqa
from . import userspace # noqa
-70
View File
@@ -1,70 +0,0 @@
"""Setup qmk_userspace on your computer.
"""
import os
import sys
from pathlib import Path
from platformdirs import user_data_dir
from milc import cli
from milc.questions import yesno
from qmk_cli.git import git_clone
from qmk_cli.helpers import find_qmk_firmware, is_qmk_firmware, is_qmk_userspace
default_base = 'https://github.com'
default_fork = 'qmk/qmk_userspace'
default_branch = 'main'
@cli.argument('-n', '--no', arg_only=True, action='store_true', help='Answer no to all questions')
@cli.argument('-y', '--yes', arg_only=True, action='store_true', help='Answer yes to all questions')
@cli.argument('--baseurl', arg_only=True, default=default_base, help='The URL all git operations start from. Default: %s' % default_base)
@cli.argument('-b', '--branch', arg_only=True, default=default_branch, help='The branch to clone. Default: %s' % default_branch)
@cli.argument('-H', '--home', arg_only=True, default=Path(os.environ['QMK_USERSPACE']), type=Path, help='The location for qmk_userspace. Default: %s' % os.environ['QMK_HOME'])
@cli.argument('fork', arg_only=True, default=default_fork, nargs='?', help='The qmk_userspace fork to clone. Default: %s' % default_fork)
@cli.subcommand('Setup your computer for qmk_userspace.')
def userspace_setup(cli):
"""Guide the user through setting up their QMK environment.
"""
# Sanity checks
if cli.args.yes and cli.args.no:
cli.log.error("Can't use both --yes and --no at the same time.")
exit(1)
if is_qmk_userspace(cli.args.home):
cli.log.info(f'Found qmk_userspace at {cli.args.home}.')
else:
cli.log.error('Could not find qmk_userspace!')
if yesno('Would you like to clone qmk_userspace?'):
git_url = f'{cli.args.baseurl}/{cli.args.fork}'
if not git_clone(git_url, cli.args.home, cli.args.branch):
exit(1)
else:
cli.log.warning('Not cloning qmk_userspace due to user input or --no flag.')
qmk_firmware = find_qmk_firmware()
if is_qmk_firmware(qmk_firmware):
cli.log.info(f'Found qmk_firmware at {qmk_firmware}.')
else:
cli.log.error('Could not find qmk_firmware!')
if yesno('Would you like to clone qmk_firmware?'):
git_url = f'{cli.args.baseurl}/qmk/qmk_firmware'
hidden_home = Path(user_data_dir('qmk_cli', 'QMK')) / 'qmk_firmware'
if not git_clone(git_url, hidden_home, 'master'):
exit(1)
else:
cli.log.warning('Not cloning qmk_firmware due to user input or --no flag.')
# Run `qmk doctor` to check the rest of the environment out
if cli.args.home.exists():
color = '--color' if cli.config.general.color else '--no-color'
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:
doctor_command.append('-n')
if cli.args.yes:
doctor_command.append('-y')
cli.run(doctor_command, stdin=None, capture_output=False, cwd=cli.args.home)
+1 -2
View File
@@ -9,7 +9,7 @@ ignore = E501,E226
[metadata]
name = qmk
version = 1.1.6
version = 1.1.8
author = skullydazed
author_email = skullydazed@gmail.com
description = A program to help users work with QMK Firmware.
@@ -39,7 +39,6 @@ install_requires =
hid
milc>=1.9.0
pyusb
setuptools>=45
# qmk_firmware packages
dotty-dict
hjson