From e2da170b97bd3b0e64f3972ff037b4f8c94e4fff Mon Sep 17 00:00:00 2001 From: Gemma Hentsch Date: Tue, 21 Feb 2023 04:49:04 +0000 Subject: [PATCH 01/38] Change exported python path to 3.9 (#174) Ventura is using Python 3.9 by default. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1ed69794..45171e104 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This playbook installs and configures most of the software I use on my Mac for w 1. Ensure Apple's command line tools are installed (`xcode-select --install` to launch the installer). 2. [Install Ansible](https://docs.ansible.com/ansible/latest/installation_guide/index.html): - 1. Run the following command to add Python 3 to your $PATH: `export PATH="$HOME/Library/Python/3.8/bin:/opt/homebrew/bin:$PATH"` + 1. Run the following command to add Python 3 to your $PATH: `export PATH="$HOME/Library/Python/3.9/bin:/opt/homebrew/bin:$PATH"` 2. Upgrade Pip: `sudo pip3 install --upgrade pip` 3. Install Ansible: `pip3 install ansible` From 9fab0a2cf9e66eca68f2662474a5a283e4cd3418 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Mon, 20 Feb 2023 22:55:24 -0600 Subject: [PATCH 02/38] Some lint fixes. --- .ansible-lint | 7 ++++++- main.yml | 10 ++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.ansible-lint b/.ansible-lint index e6a02bd0f..9bbcef82b 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,4 +1,9 @@ --- skip_list: + - schema[meta] + - role-name - experimental - - fqcn-builtins + - fqcn + - name[missing] + - no-changed-when + - risky-file-permissions diff --git a/main.yml b/main.yml index ac7a6f8bd..500c91766 100644 --- a/main.yml +++ b/main.yml @@ -1,5 +1,6 @@ --- -- hosts: all +- name: Configure host. + hosts: all vars_files: - default.config.yml @@ -45,10 +46,11 @@ when: configure_sublime tags: ['sublime-text'] - - block: + - name: Run post-provision task files in a block. + tags: ['post'] + block: - name: Run configured post-provision ansible task files. include_tasks: "{{ outer_item }}" loop_control: loop_var: outer_item - with_fileglob: "{{ post_provision_tasks|default(omit) }}" - tags: ['post'] + with_fileglob: "{{ post_provision_tasks | default(omit) }}" From 634dddd12cfafc0f5b19edd5ec609be0ecf2d738 Mon Sep 17 00:00:00 2001 From: skye Date: Sat, 8 Apr 2023 00:03:41 +0930 Subject: [PATCH 03/38] Add Apple formatting/erasure guide (#179) --- full-mac-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/full-mac-setup.md b/full-mac-setup.md index 4e9f2d6e0..7408da911 100644 --- a/full-mac-setup.md +++ b/full-mac-setup.md @@ -109,4 +109,4 @@ git clone git://github.com/scrooloose/nerdtree.git - Motion Plugins from ~/Movies/Motion - Final Cut Pro Text Styles in ~/Library/Application Support/Motion/Library/Text Styles - Sequel Ace shortcuts from ~/Library/Containers/com.sequel-ace.sequel-ace/Data/Library/Application\ Support/Sequel\ Ace/Data/Favorites.plist - - Follow Apple's guide (TODO) + - Follow Apple's guide [here](https://support.apple.com/en-au/HT212749) From f41e9235130b119a0e8dda8678a079a99f142e20 Mon Sep 17 00:00:00 2001 From: Konstantin Auffinger <62616071+kauffinger@users.noreply.github.com> Date: Sun, 9 Apr 2023 22:56:53 +0200 Subject: [PATCH 04/38] Delete Firefox binary in CI (#180) Brew finds a firefox binary in `/usr/local/bin/firefox` and thus fails to install. --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e893a3ed7..d8abd2893 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,6 +50,7 @@ jobs: run: | sudo rm -rf /Applications/Firefox.app sudo rm -rf /Applications/Google\ Chrome.app + sudo rm -rf /usr/local/bin/firefox - name: Install test dependencies. run: | From 57798abef118154520562a13b04a4c25505e9c09 Mon Sep 17 00:00:00 2001 From: Daniel McFarland Date: Sun, 9 Apr 2023 21:57:38 +0100 Subject: [PATCH 05/38] Update README.md (#170) When running the command to add Python 3 to your $PATH it would appear macOS 12 and higher use python 3.9 opposed to 3.8 From 9dd51416cf926052d9ba3fcec27c2c574667e4e1 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Mon, 10 Jul 2023 18:05:14 -0500 Subject: [PATCH 06/38] Update stale workflow. --- .github/stale.yml | 56 ------------------------------------- .github/workflows/stale.yml | 34 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 56 deletions(-) delete mode 100644 .github/stale.yml create mode 100644 .github/workflows/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index c7ff12754..000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,56 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 90 - -# Number of days of inactivity before an Issue or Pull Request with the stale label is closed. -# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. -daysUntilClose: 30 - -# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled) -onlyLabels: [] - -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: - - pinned - - security - - planned - -# Set to true to ignore issues in a project (defaults to false) -exemptProjects: false - -# Set to true to ignore issues in a milestone (defaults to false) -exemptMilestones: false - -# Set to true to ignore issues with an assignee (defaults to false) -exemptAssignees: false - -# Label to use when marking as stale -staleLabel: stale - -# Limit the number of actions per hour, from 1-30. Default is 30 -limitPerRun: 30 - -pulls: - markComment: |- - This pull request has been marked 'stale' due to lack of recent activity. If there is no further activity, the PR will be closed in another 30 days. Thank you for your contribution! - - Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark pull requests as stale. - - unmarkComment: >- - This pull request is no longer marked for closure. - - closeComment: >- - This pull request has been closed due to inactivity. If you feel this is in error, please reopen the pull request or file a new PR with the relevant details. - -issues: - markComment: |- - This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution! - - Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale. - - unmarkComment: >- - This issue is no longer marked for closure. - - closeComment: >- - This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details. diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..5a6647f2b --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,34 @@ +--- +name: Close inactive issues +'on': + schedule: + - cron: "55 18 * * 4" # semi-random time + +jobs: + close-issues: + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + steps: + - uses: actions/stale@v8 + with: + days-before-stale: 120 + days-before-close: 60 + exempt-issue-labels: bug,pinned,security,planned + exempt-pr-labels: bug,pinned,security,planned + stale-issue-label: "stale" + stale-pr-label: "stale" + stale-issue-message: | + This issue has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution! + + Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale. + close-issue-message: | + This issue has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details. + stale-pr-message: | + This pr has been marked 'stale' due to lack of recent activity. If there is no further activity, the issue will be closed in another 30 days. Thank you for your contribution! + + Please read [this blog post](https://www.jeffgeerling.com/blog/2020/enabling-stale-issue-bot-on-my-github-repositories) to see the reasons why I mark issues as stale. + close-pr-message: | + This pr has been closed due to inactivity. If you feel this is in error, please reopen the issue or file a new issue with the relevant details. + repo-token: ${{ secrets.GITHUB_TOKEN }} From e3d0cb7718ba1194de07d27b59fa351c25df59a5 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Mon, 10 Jul 2023 18:06:48 -0500 Subject: [PATCH 07/38] Fix linting. --- .yamllint | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.yamllint b/.yamllint index 84ecaec77..71f676422 100644 --- a/.yamllint +++ b/.yamllint @@ -7,4 +7,4 @@ rules: level: warning ignore: | - .github/stale.yml + .github/workflows/stale.yml From f885708e1f5fcde038ace0ca0b38d984a3c09071 Mon Sep 17 00:00:00 2001 From: Peter Ramsing Date: Fri, 29 Sep 2023 18:42:06 -0700 Subject: [PATCH 08/38] Changes to new gh package (#187) Resolves this error: failed: [localhost] (item=github/gh/gh) => {"ansible_loop_var": "item", "changed": false, "item": "github/gh/gh", "msg": "==> Tapping github/gh\nCloning into '/opt/homebrew/Library/Taps/github/homebrew-gh'...\nTapped (14 files, 55.3KB).\nWarning: Formula github/gh/gh was renamed to gh.\nWarning: No available formula or cask with the name \"github/gh/gh\".\nWarning: Formula github/gh/gh was renamed to gh."} --- README.md | 2 +- default.config.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 45171e104..a11b92ce4 100644 --- a/README.md +++ b/README.md @@ -117,7 +117,7 @@ Packages (installed with Homebrew): - gettext - gifsicle - git - - github/gh/gh + - gh - go - gpg - httpie diff --git a/default.config.yml b/default.config.yml index 8ba392b34..95de6829b 100644 --- a/default.config.yml +++ b/default.config.yml @@ -42,7 +42,7 @@ homebrew_installed_packages: - gettext - gifsicle - git - - github/gh/gh + - gh - go - gpg - httpie From c99ff5da76d7a077494ecb86a58bd5db44df6e70 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Thu, 4 Jan 2024 19:30:30 -0600 Subject: [PATCH 09/38] Fixes #190: Don't tap homebrew cask or core anymore. --- default.config.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/default.config.yml b/default.config.yml index 95de6829b..2ee3f10b8 100644 --- a/default.config.yml +++ b/default.config.yml @@ -63,9 +63,7 @@ homebrew_installed_packages: - wrk - zsh-history-substring-search -homebrew_taps: - - homebrew/core - - homebrew/cask +homebrew_taps: [] homebrew_cask_appdir: /Applications homebrew_cask_apps: From c5c92c1b8ccf4c431f5c5697091cff0d3dafb7dc Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Sat, 3 Feb 2024 22:09:15 -0600 Subject: [PATCH 10/38] Fixes #195: Remove disabled mcrypt package. --- README.md | 1 - default.config.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/README.md b/README.md index a11b92ce4..7e70bb051 100644 --- a/README.md +++ b/README.md @@ -124,7 +124,6 @@ Packages (installed with Homebrew): - iperf - libevent - sqlite - - mcrypt - nmap - node - nvm diff --git a/default.config.yml b/default.config.yml index 2ee3f10b8..cfd9cf8fb 100644 --- a/default.config.yml +++ b/default.config.yml @@ -49,7 +49,6 @@ homebrew_installed_packages: - iperf - libevent - sqlite - - mcrypt - nmap - node - nvm From 358f6631d03d5671ee018d9f3eccbc7c76ce4664 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=C3=BChlbach?= Date: Wed, 26 Jun 2024 22:10:17 +0200 Subject: [PATCH 11/38] chore(config): Remove obsolete downloads config (#203) Relates to: https://github.com/geerlingguy/mac-dev-playbook/discussions/202 --- default.config.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/default.config.yml b/default.config.yml index cfd9cf8fb..7f9bc3073 100644 --- a/default.config.yml +++ b/default.config.yml @@ -1,6 +1,4 @@ --- -downloads: ~/.ansible-downloads/ - configure_dotfiles: true configure_terminal: true configure_osx: true From b660bf1c2b444d05572cf06cdc9f61eb86ffb8da Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Mon, 11 Nov 2024 21:47:08 -0600 Subject: [PATCH 12/38] Add a few notes from new Sonoma install. --- full-mac-setup.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/full-mac-setup.md b/full-mac-setup.md index 7408da911..162213d9d 100644 --- a/full-mac-setup.md +++ b/full-mac-setup.md @@ -18,9 +18,9 @@ Before starting, I completed Apple's mandatory macOS setup wizard (creating a lo - Open Photos and make sure iCloud sync options are correct - Open Music, make sure computer is authorized, and set Library sync options - Open Dropbox, sign in, and set up sync - - Install old-fashioned apps: - - Install [Creative Cloud](https://creativecloud.adobe.com/apps/download/creative-cloud) - - Install Photoshop/Illustrator manually + - Install or complete setup for old-fashioned apps: + - Open Creative Cloud, sign in, and install needed apps + - Open iStat Menus and configure CPU/Net/Temp Combined view - (If required:) - Install [Elgato Stream Deck](https://www.elgato.com/en/downloads) - Open Livestream profile inside `~/Dropbox/Apps/Config/Stream Deck` @@ -28,7 +28,6 @@ Before starting, I completed Apple's mandatory macOS setup wizard (creating a lo - Install [Autodesk Fusion 360](https://www.autodesk.com) - Install Microsoft Office Home & Student 2019 (https://account.microsoft.com/services/) - Install [Fritzing](https://fritzing.org/download/) - - Install Meshmixer (but it looks like it's gone now!) - Configure FastMail account: - Log into Fastmail - Go to settings, go to the setup page for macOS Mail @@ -39,13 +38,14 @@ Before starting, I completed Apple's mandatory macOS setup wizard (creating a lo - Manual settings to automate someday: - System Preferences: - Accessibility > Display > Reduce transparency - - Keyboard > Modifier Keys... > Caps Lock to Esc + - Keyboard > Keyboard Shortcuts... > Modifier Keys... > Caps Lock to Esc - Safari: - View > Show Status Bar - Preferences > Advanced > "Show full website address" - - Preferences > Advanced > "Show Develop menu in menu bar" + - Preferences > Advanced > "Show features for web developers" + - Install the 'Return YouTube Dislike' Userscript in Userscripts - Dock: - - Add jgeerling, Downloads, Applications, and Video Projects folders + - Add jgeerling, Downloads, and Applications folders - Terminal: - Preferences > Profiles > Set JJG-Term as the default theme - _After Dropbox Sync completes_: Run the playbook with `--tags post` to complete setup. From 3e46828d301e5a161a1bde2e5f40c0ee5fd9c7e1 Mon Sep 17 00:00:00 2001 From: Florian Weber Date: Tue, 12 Nov 2024 06:22:01 +0100 Subject: [PATCH 13/38] Run tests on Mac OS 14 and 15 (#209) * Run tests on Mac OS 14 and 15 * Update uninstall-homebrew.sh * Don't die on bad terminal defaults request. --------- Co-authored-by: Jeff Geerling --- .github/workflows/ci.yml | 4 ++-- tasks/terminal.yml | 1 + tests/uninstall-homebrew.sh | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8abd2893..a31961853 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,8 +36,8 @@ jobs: strategy: matrix: os: - - macos-12 - - macos-11 + - macos-15 + - macos-14 steps: - name: Check out the codebase. diff --git a/tasks/terminal.yml b/tasks/terminal.yml index f4a26789a..b1a6d6e8c 100644 --- a/tasks/terminal.yml +++ b/tasks/terminal.yml @@ -4,6 +4,7 @@ command: defaults read com.apple.terminal 'Default Window Settings' register: terminal_theme changed_when: false + failed_when: false check_mode: false - name: Ensure custom Terminal profile is added. diff --git a/tests/uninstall-homebrew.sh b/tests/uninstall-homebrew.sh index d6d4c966c..40e1bf183 100755 --- a/tests/uninstall-homebrew.sh +++ b/tests/uninstall-homebrew.sh @@ -11,3 +11,4 @@ sudo ./uninstall.sh --force sudo rm -rf /usr/local/Homebrew sudo rm -rf /usr/local/Caskroom sudo rm -rf /usr/local/bin/brew +sudo rm -rf /opt/homebrew From bf5662cb2450414926af699d0aae7a51e21f7fa3 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Mon, 11 Nov 2024 23:41:11 -0600 Subject: [PATCH 14/38] A few more tweaks for my ultimate setup guide. --- full-mac-setup.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/full-mac-setup.md b/full-mac-setup.md index 162213d9d..171fd900c 100644 --- a/full-mac-setup.md +++ b/full-mac-setup.md @@ -33,7 +33,9 @@ Before starting, I completed Apple's mandatory macOS setup wizard (creating a lo - Go to settings, go to the setup page for macOS Mail - Download the profile and double click to install - Head to the 'Profiles' System Preference pane and click install - - Open Calendar and enable personal Google CalDAV account (you have to manually sign in). + - Open Calendar and sign into Google Accounts (have to manually sign in): + - Personal + - Work - Manually copy `~/Development` folder from another Mac (to save time). - Manual settings to automate someday: - System Preferences: @@ -51,7 +53,7 @@ Before starting, I completed Apple's mandatory macOS setup wizard (creating a lo - _After Dropbox Sync completes_: Run the playbook with `--tags post` to complete setup. - Symlink the synchronized `config.yml` into the playbook dir: `ln -s /Users/jgeerling/Dropbox/Apps/Config/mac-dev-playbook/config.yml /Users/jgeerling/Development/mac-dev-playbook/config.yml` - These things might be automatable, but I do them manually right now: - - Configure Time Machine backup drive and [Time Machine Editor](https://tclementdev.com/timemachineeditor/) (if needed) + - Configure Time Machine backup drive and set Time Machine backups to daily instead of hourly - Install Wireguard from App Store and add configuration (if needed) ## To Wrap in Post-provision automation From 347ea7ac92f3f997bade5773a43273dc18ce6892 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Sat, 16 Nov 2024 11:28:34 -0600 Subject: [PATCH 15/38] Add pngpaste to default set of packages. --- default.config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/default.config.yml b/default.config.yml index 7f9bc3073..3ddb672b5 100644 --- a/default.config.yml +++ b/default.config.yml @@ -51,6 +51,7 @@ homebrew_installed_packages: - node - nvm - php + - pngpaste - ssh-copy-id - cowsay - readline From 6e028c040bef8f084c17ed9befa0495174d16e80 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Wed, 27 Nov 2024 23:41:55 -0600 Subject: [PATCH 16/38] Remove cowsay, since it's sadly not available in homebrew now. --- README.md | 2 -- default.config.yml | 1 - tests/config.yml | 1 - 3 files changed, 4 deletions(-) diff --git a/README.md b/README.md index 7e70bb051..2605cd403 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,6 @@ You can override any of the defaults configured in `default.config.yml` by creat ```yaml homebrew_installed_packages: - - cowsay - git - go @@ -129,7 +128,6 @@ Packages (installed with Homebrew): - nvm - php - ssh-copy-id - - cowsay - readline - openssl - pv diff --git a/default.config.yml b/default.config.yml index 3ddb672b5..93e123bdf 100644 --- a/default.config.yml +++ b/default.config.yml @@ -53,7 +53,6 @@ homebrew_installed_packages: - php - pngpaste - ssh-copy-id - - cowsay - readline - openssl - pv diff --git a/tests/config.yml b/tests/config.yml index e95fb9294..9631a151e 100644 --- a/tests/config.yml +++ b/tests/config.yml @@ -5,7 +5,6 @@ homebrew_installed_packages: - gettext - sqlite - ssh-copy-id - - cowsay - readline - pv - wget From 4fe7e8bbd19d7cf891161ed112b8110e2660728c Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Sun, 26 Jan 2025 09:30:55 -0600 Subject: [PATCH 17/38] Update link to GitHub Actions CI. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2605cd403..6fd53878a 100644 --- a/README.md +++ b/README.md @@ -162,5 +162,5 @@ Check out [Ansible for DevOps](https://www.ansiblefordevops.com/), which teaches This project was created by [Jeff Geerling](https://www.jeffgeerling.com/) (originally inspired by [MWGriffin/ansible-playbooks](https://github.com/MWGriffin/ansible-playbooks)). -[badge-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/workflows/CI/badge.svg?event=push -[link-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/actions?query=workflow%3ACI +[badge-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/actions/workflows/ci.yml/badge.svg +[link-gh-actions]: https://github.com/geerlingguy/mac-dev-playbook/actions/workflows/ci.yml From ea8c71e6ff67d1c267afdc7d8dc87039adac7574 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Thu, 30 Jan 2025 21:46:29 -0600 Subject: [PATCH 18/38] Skip ansible-lint yamllint since we already yamllint. --- .ansible-lint | 1 + 1 file changed, 1 insertion(+) diff --git a/.ansible-lint b/.ansible-lint index 9bbcef82b..2c59ff822 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -7,3 +7,4 @@ skip_list: - name[missing] - no-changed-when - risky-file-permissions + - yaml From 58f46d98db97c7009c9a9696c5be6a33d08f4790 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Thu, 30 Jan 2025 22:51:27 -0600 Subject: [PATCH 19/38] Fix linting errors. --- .ansible-lint | 3 +++ .gitignore | 1 + 2 files changed, 4 insertions(+) diff --git a/.ansible-lint b/.ansible-lint index 2c59ff822..de25ce32a 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -1,4 +1,7 @@ --- +exclude_paths: + - roles/elliotweiser.osx-command-line-tools + skip_list: - schema[meta] - role-name diff --git a/.gitignore b/.gitignore index a97f7a52f..795c74ded 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.vagrant .DS_Store +.ansible *.retry roles* config.yml From caa4b9904d09c9f9718bf3880cb6b61d8b08a5e1 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Wed, 12 Mar 2025 15:32:48 -0500 Subject: [PATCH 20/38] Issue #210: Fix up my own mac setup guide. --- full-mac-setup.md | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/full-mac-setup.md b/full-mac-setup.md index 171fd900c..ce63dd412 100644 --- a/full-mac-setup.md +++ b/full-mac-setup.md @@ -9,10 +9,10 @@ This document covers that, at least in terms of setting up a brand new Mac out o Before starting, I completed Apple's mandatory macOS setup wizard (creating a local user account, and optionally signing into my iCloud account). Once on the macOS desktop, I do the following (in order): - Install Ansible (following the guide in [README.md](README.md)) - - **Sign in in App Store** (since `mas` can't sign in automatically) + - **Sign in to App Store** (since `mas` can't sign in automatically) - Clone mac-dev-playbook to the Mac: `git clone git@github.com:geerlingguy/mac-dev-playbook.git` - Drop `config.yml` from `~/Dropbox/Apps/Config` to the playbook (copy over the network or using a USB flash drive). - - Run the playbook with `--skip-tags post`. + - Run the playbook. - If there are errors, you may need to finish up other tasks like installing 'old-fashioned' apps first (since I try to place Photoshop in the Dock and it can't be installed automatically). Then, run the playbook again ;) - Start Synchronization tasks: - Open Photos and make sure iCloud sync options are correct @@ -30,31 +30,32 @@ Before starting, I completed Apple's mandatory macOS setup wizard (creating a lo - Install [Fritzing](https://fritzing.org/download/) - Configure FastMail account: - Log into Fastmail - - Go to settings, go to the setup page for macOS Mail - - Download the profile and double click to install - - Head to the 'Profiles' System Preference pane and click install - - Open Calendar and sign into Google Accounts (have to manually sign in): - - Personal - - Work + - Go to settings, then Privacy & Security + - Create a new app password, and on that page, download the configuration file + - Open the downloaded profile, then go to System Preferences, and Device Management + - Double-click on the Fastmail profile + - Click 'Install...' and install it + - Configure which accounts are enabled in the 'Internet Accounts' System Preferences pane + - Open Calendar and enable personal Google CalDAV account (you have to manually sign in). - Manually copy `~/Development` folder from another Mac (to save time). - Manual settings to automate someday: + - Finder: + - Disable click-to-show Desktop: `defaults write com.apple.WindowManager EnableStandardClickToShowDesktop -bool false` - System Preferences: - Accessibility > Display > Reduce transparency - Keyboard > Keyboard Shortcuts... > Modifier Keys... > Caps Lock to Esc + - Keyboard > Key repeat rate to 'Fast', Delay until repeat to 'Short' + - Privacy & Security > Full Disk Access > enable "Terminal" - Safari: - View > Show Status Bar - Preferences > Advanced > "Show full website address" - Preferences > Advanced > "Show features for web developers" - Install the 'Return YouTube Dislike' Userscript in Userscripts - Dock: - - Add jgeerling, Downloads, and Applications folders - - Terminal: - - Preferences > Profiles > Set JJG-Term as the default theme - - _After Dropbox Sync completes_: Run the playbook with `--tags post` to complete setup. - - Symlink the synchronized `config.yml` into the playbook dir: `ln -s /Users/jgeerling/Dropbox/Apps/Config/mac-dev-playbook/config.yml /Users/jgeerling/Development/mac-dev-playbook/config.yml` + - Add jgeerling, Downloads, Applications, and shared "mercury" folders - These things might be automatable, but I do them manually right now: - - Configure Time Machine backup drive and set Time Machine backups to daily instead of hourly - - Install Wireguard from App Store and add configuration (if needed) + - Configure Time Machine backup drive + - Install Wireguard VPN configurations (if needed) ## To Wrap in Post-provision automation From ae64a2fb39f2e8d0a0edd62c3f7d6520164e803d Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Wed, 12 Mar 2025 15:39:36 -0500 Subject: [PATCH 21/38] Issue #210: A couple more tweaks for my full mac setup. --- full-mac-setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/full-mac-setup.md b/full-mac-setup.md index ce63dd412..087ebc057 100644 --- a/full-mac-setup.md +++ b/full-mac-setup.md @@ -65,7 +65,7 @@ The following tasks have to wait for the initial Dropbox sync to complete before # ZSH Aliases. ln -s /Users/jgeerling/Dropbox/Apps/Config/.aliases /Users/jgeerling/.aliases -# Electrum BTC Wallet. +# Electrum BTC Wallet (open Electrum first). ln -s /Users/jgeerling/Dropbox/Apps/Electrum/default_wallet /Users/jgeerling/.electrum/wallets/default_wallet # SSH setup. @@ -99,7 +99,7 @@ mkdir -p ~/.vim/bundle cd ~/.vim/autoload curl https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim > pathogen.vim cd ~/.vim/bundle -git clone git://github.com/scrooloose/nerdtree.git +git clone https://github.com/preservim/nerdtree.git ``` ## When formatting old Mac From 51bea27a1801caf3713dd3d1f2c61f78496ae0db Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Fri, 14 Mar 2025 10:32:17 -0500 Subject: [PATCH 22/38] Add in FCPX actions. --- full-mac-setup.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/full-mac-setup.md b/full-mac-setup.md index 087ebc057..ce3e31d1b 100644 --- a/full-mac-setup.md +++ b/full-mac-setup.md @@ -53,6 +53,9 @@ Before starting, I completed Apple's mandatory macOS setup wizard (creating a lo - Install the 'Return YouTube Dislike' Userscript in Userscripts - Dock: - Add jgeerling, Downloads, Applications, and shared "mercury" folders + - Final Cut Pro + - Install FxFactory and sign in: https://fxfactory.com + - Copy contents of `~/Development/youtube/fcpx` into respective directories - These things might be automatable, but I do them manually right now: - Configure Time Machine backup drive - Install Wireguard VPN configurations (if needed) From 8a63cb5010a0d094df316e0213e9d12785de7b24 Mon Sep 17 00:00:00 2001 From: Sebastien Kempf <56154464+skmpf@users.noreply.github.com> Date: Sat, 22 Mar 2025 17:42:37 +0100 Subject: [PATCH 23/38] docs: typo and improve default config (#217) --- default.config.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/default.config.yml b/default.config.yml index 93e123bdf..0a0026038 100644 --- a/default.config.yml +++ b/default.config.yml @@ -16,7 +16,7 @@ dockitems_persist: [] # pos: 5 configure_sudoers: false -sudoers_custom_config: '' +sudoers_custom_config: "" # Example: # sudoers_custom_config: | # # Allow users in admin group to use sudo with no password. @@ -25,6 +25,7 @@ sudoers_custom_config: '' dotfiles_repo: https://github.com/geerlingguy/dotfiles.git dotfiles_repo_accept_hostkey: true dotfiles_repo_local_destination: ~/Development/GitHub/dotfiles +dotfiles_repo_version: master # Replace with your default branch dotfiles_files: - .zshrc - .gitignore @@ -76,7 +77,7 @@ homebrew_cask_apps: - sublime-text - transmit -# See `geerlingguy.mas` role documentation for usage instructions. +# See `geerlingguy.mac.mas` role documentation for usage instructions. mas_installed_apps: [] mas_email: "" mas_password: "" @@ -105,7 +106,7 @@ pip_packages: [] # Set to 'true' to configure Sublime Text. configure_sublime: false -sublime_base_path: '~/Library/Application Support/Sublime Text' +sublime_base_path: "~/Library/Application Support/Sublime Text" sublime_config_path: "Packages/User" sublime_package_control: - "DocBlockr" From 372da21ce42e6e86c6709513abf4573df965c6ad Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Sun, 23 Mar 2025 22:34:13 -0500 Subject: [PATCH 24/38] Update to use Cobalt2 Color Scheme for Sublime Text. --- default.config.yml | 1 + files/sublime/Cobalt (SL).tmTheme | 589 --------------------- files/sublime/Preferences.sublime-settings | 12 +- tasks/sublime-text.yml | 1 - 4 files changed, 11 insertions(+), 592 deletions(-) delete mode 100644 files/sublime/Cobalt (SL).tmTheme diff --git a/default.config.yml b/default.config.yml index 0a0026038..64c6d92a3 100644 --- a/default.config.yml +++ b/default.config.yml @@ -119,6 +119,7 @@ sublime_package_control: - "Pretty JSON" - "SublimeLinter" - "SublimeLinter-contrib-yamllint" + - "Theme - Cobalt2" - "TrailingSpaces" - "WordCount" diff --git a/files/sublime/Cobalt (SL).tmTheme b/files/sublime/Cobalt (SL).tmTheme deleted file mode 100644 index a9f192432..000000000 --- a/files/sublime/Cobalt (SL).tmTheme +++ /dev/null @@ -1,589 +0,0 @@ - - - - - comment - Created by Jacob Rus. Based on ‘Slate’ by Wilson Miner - author - Jacob Rus - name - Cobalt - settings - - - settings - - background - #002240 - caret - #FFFFFF - foreground - #FFFFFF - invisibles - #FFFFFF26 - lineHighlight - #00000059 - selection - #B36539BF - - - - name - Punctuation - scope - punctuation - (punctuation.definition.string || punctuation.definition.comment) - settings - - fontStyle - - foreground - #E1EFFF - - - - name - Constant - scope - constant - settings - - fontStyle - - foreground - #FF628C - - - - name - Entity - scope - entity - settings - - fontStyle - - foreground - #FFDD00 - - - - name - Keyword - scope - keyword - settings - - fontStyle - - foreground - #FF9D00 - - - - name - Storage - scope - storage - settings - - fontStyle - - foreground - #FFEE80 - - - - name - String - scope - string -string.unquoted.old-plist -string.unquoted.heredoc, string.unquoted.heredoc string - settings - - fontStyle - - foreground - #3AD900 - - - - name - Comment - scope - comment - settings - - fontStyle - italic - foreground - #0088FF - - - - name - Support - scope - support - settings - - fontStyle - - foreground - #80FFBB - - - - name - Variable - scope - variable - settings - - fontStyle - - foreground - #CCCCCC - - - - name - Lang Variable - scope - variable.language - settings - - fontStyle - - foreground - #FF80E1 - - - - name - Function Call - scope - meta.function-call - settings - - foreground - #FFEE80 - - - - name - Invalid - scope - invalid - settings - - background - #800F00 - foreground - #F8F8F8 - - - - name - Embedded Source - scope - text source, string.unquoted.heredoc, source source - settings - - background - #223545 - fontStyle - - foreground - #FFFFFF - - - - name - Entity inherited-class - scope - entity.other.inherited-class - settings - - fontStyle - italic - foreground - #80FCFF - - - - name - String embedded-source - scope - string.quoted source - settings - - fontStyle - - foreground - #9EFF80 - - - - name - String constant - scope - string constant - settings - - foreground - #80FF82 - - - - name - String.regexp - scope - string.regexp - settings - - foreground - #80FFC2 - - - - name - String variable - scope - string variable - settings - - foreground - #EDEF7D - - - - name - Support.function - scope - support.function - settings - - fontStyle - - foreground - #FFB054 - - - - name - Support.constant - scope - support.constant - settings - - fontStyle - - foreground - #EB939A - - - - name - Exception - scope - support.type.exception - settings - - foreground - #FF1E00 - - - - name - C/C++ Preprocessor Line - scope - meta.preprocessor.c - settings - - foreground - #8996A8 - - - - name - C/C++ Preprocessor Directive - scope - meta.preprocessor.c keyword - settings - - foreground - #AFC4DB - - - - name - Doctype/XML Processing - scope - meta.sgml.html meta.doctype, meta.sgml.html meta.doctype entity, meta.sgml.html meta.doctype string, meta.xml-processing, meta.xml-processing entity, meta.xml-processing string - settings - - foreground - #73817D - - - - name - Meta.tag.A - scope - meta.tag, meta.tag entity - settings - - foreground - #9EFFFF - - - - name - css tag-name - scope - meta.selector.css entity.name.tag - settings - - foreground - #9EFFFF - - - - name - css#id - scope - meta.selector.css entity.other.attribute-name.id - settings - - foreground - #FFB454 - - - - name - css.class - scope - meta.selector.css entity.other.attribute-name.class - settings - - foreground - #5FE461 - - - - name - css property-name: - scope - support.type.property-name.css - settings - - foreground - #9DF39F - - - - name - css property-value; - scope - meta.property-group support.constant.property-value.css, meta.property-value support.constant.property-value.css - settings - - foreground - #F6F080 - - - - name - css @at-rule - scope - meta.preprocessor.at-rule keyword.control.at-rule - settings - - foreground - #F6AA11 - - - - name - css additional-constants - scope - meta.property-value support.constant.named-color.css, meta.property-value constant - settings - - foreground - #EDF080 - - - - name - css constructor.argument - scope - meta.constructor.argument.css - settings - - foreground - #EB939A - - - - name - diff.header - scope - meta.diff, meta.diff.header - settings - - background - #000E1A - fontStyle - - foreground - #F8F8F8 - - - - name - diff.deleted - scope - markup.deleted - settings - - background - #4C0900 - foreground - #F8F8F8 - - - - name - diff.changed - scope - markup.changed - settings - - background - #806F00 - foreground - #F8F8F8 - - - - name - diff.inserted - scope - markup.inserted - settings - - background - #154F00 - foreground - #F8F8F8 - - - - name - Raw Markup - scope - markup.raw - settings - - background - #8FDDF630 - - - - name - Block Quote - scope - markup.quote - settings - - background - #004480 - - - - name - List - scope - markup.list - settings - - background - #130D26 - - - - name - Bold Markup - scope - markup.bold - settings - - fontStyle - bold - foreground - #C1AFFF - - - - name - Italic Markup - scope - markup.italic - settings - - fontStyle - italic - foreground - #B8FFD9 - - - - name - Heading Markup - scope - markup.heading - settings - - background - #001221 - fontStyle - bold - foreground - #C8E4FD - - - - name - SublimeLinter Error - scope - sublimelinter.mark.error - settings - - foreground - #DA2000 - - - name - SublimeLinter Warning - scope - sublimelinter.mark.warning - settings - - foreground - #EDBA00 - - - name - SublimeLinter Gutter Mark - scope - sublimelinter.gutter-mark - settings - - foreground - #FFFFFF - - - uuid - 06CD1FB2-A00A-4F8C-97B2-60E131980454 - - \ No newline at end of file diff --git a/files/sublime/Preferences.sublime-settings b/files/sublime/Preferences.sublime-settings index 46d6e2f96..c169b6114 100644 --- a/files/sublime/Preferences.sublime-settings +++ b/files/sublime/Preferences.sublime-settings @@ -302,7 +302,7 @@ "*.zip" ], "close_windows_when_empty": true, - "color_scheme": "Packages/User/Cobalt (SL).tmTheme", + "color_scheme": "Packages/Theme - Cobalt2/cobalt2.tmTheme", "create_window_at_startup": false, "detect_indentation": true, "draw_minimap_border": false, @@ -388,6 +388,13 @@ "varname", "vg" ], + "indent_guide_options": ["draw_normal", "draw_active"], + "hide_tab_scrolling_buttons": true, + "highlight_modified_tabs": true, + "line_padding_bottom": 1, + "line_padding_top": 1, + "caret_style": "blink", + "bold_folder_labels": false, "line_numbers": true, "margin": 4, "match_brackets": true, @@ -399,8 +406,9 @@ "smart_indent": true, "spell_check": false, "tab_size": 2, - "theme": "auto", + "theme": "Cobalt2.sublime-theme", "translate_tabs_to_spaces": true, "trim_automatic_white_space": false, "trim_trailing_white_space_on_save": false, + "index_files": true, } diff --git a/tasks/sublime-text.yml b/tasks/sublime-text.yml index 349df9ecd..d07f7698a 100644 --- a/tasks/sublime-text.yml +++ b/tasks/sublime-text.yml @@ -22,7 +22,6 @@ src: "files/sublime/{{ item }}" dest: "{{ sublime_base_path }}/{{ sublime_config_path }}/{{ item }}" loop: - - "Cobalt (SL).tmTheme" - "Markdown.sublime-settings" - "Plain text.sublime-settings" - "Preferences.sublime-settings" From 269ce488ee07e43053720bbd10f75d4e22dac86c Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Tue, 25 Mar 2025 22:02:35 -0500 Subject: [PATCH 25/38] Update default config with new Sublime defaults. --- default.config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/default.config.yml b/default.config.yml index 64c6d92a3..35aca2970 100644 --- a/default.config.yml +++ b/default.config.yml @@ -115,13 +115,12 @@ sublime_package_control: - "GitHub Flavored Markdown Preview" - "Jinja2" - "Package Control" - - "PHP-Twig" - "Pretty JSON" - "SublimeLinter" - "SublimeLinter-contrib-yamllint" - "Theme - Cobalt2" - "TrailingSpaces" - - "WordCount" + - "WordingStatus" # Glob pattern to ansible task files to run after all other tasks are finished. post_provision_tasks: [] From 4dc3352b2a852b802fedd6f7c0dfc6e87d77a0dc Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Tue, 25 Mar 2025 23:40:19 -0500 Subject: [PATCH 26/38] Fix path for ansible collections on my computers. --- full-mac-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/full-mac-setup.md b/full-mac-setup.md index ce3e31d1b..cfd9c419f 100644 --- a/full-mac-setup.md +++ b/full-mac-setup.md @@ -84,7 +84,7 @@ sudo ln -s /Users/jgeerling/Dropbox/VMs/roles /etc/ansible/roles mkdir -p /Users/jgeerling/.ansible ln -s /Users/jgeerling/Dropbox/Apps/Config/ansible/galaxy_token /Users/jgeerling/.ansible/galaxy_token ln -s /Users/jgeerling/Dropbox/Apps/Config/ansible/mm-vault-password.txt /Users/jgeerling/.ansible/mm-vault-password.txt -ln -s /Users/jgeerling/Dropbox/VMs/ /Users/jgeerling/.ansible/collections +ln -s /Users/jgeerling/Dropbox/VMs/ansible_collections /Users/jgeerling/.ansible/collections # Final Cut Pro setup. (Open Motion first) cp -r /Users/jgeerling/Dropbox/Apps/Config/Motion/Motion\ Templates.localized/ /Users/jgeerling/Movies/Motion\ Templates.localized/ From 5e6054062b3617c49b131ea74d43b920b6f419fd Mon Sep 17 00:00:00 2001 From: Bharath Sadashivaiah <46544104+bsadashi@users.noreply.github.com> Date: Sat, 19 Apr 2025 16:23:32 -0400 Subject: [PATCH 27/38] add dependabot.yml (#218) --- .github/dependabot.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..386190298 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +--- +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + groups: + updates: + applies-to: version-updates + patterns: + - "*" + security-updates: + applies-to: security-updates + patterns: + - "*" From 79a49c741af8cb4dd34ad7d9b86c042e6022d476 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 19 Apr 2025 15:46:29 -0500 Subject: [PATCH 28/38] Bump the updates group with 3 updates (#219) Bumps the updates group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-python](https://github.com/actions/setup-python) and [actions/stale](https://github.com/actions/stale). Updates `actions/checkout` from 2 to 4 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v4) Updates `actions/setup-python` from 2 to 5 - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v2...v5) Updates `actions/stale` from 8 to 9 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v8...v9) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major dependency-group: updates - dependency-name: actions/setup-python dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: updates - dependency-name: actions/stale dependency-version: '9' dependency-type: direct:production update-type: version-update:semver-major dependency-group: updates ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 6 +++--- .github/workflows/stale.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a31961853..1e3cc0426 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,10 +15,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the codebase. - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Python 3. - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: '3.x' @@ -41,7 +41,7 @@ jobs: steps: - name: Check out the codebase. - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Uninstall GitHub Actions' built-in Homebrew. run: tests/uninstall-homebrew.sh diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 5a6647f2b..22ac0548d 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -11,7 +11,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: days-before-stale: 120 days-before-close: 60 From e2a1168f0eb57b7ca905fefaa14ac4d407ab185d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 00:48:38 -0400 Subject: [PATCH 29/38] Bump actions/checkout from 4 to 5 in the updates group (#225) Bumps the updates group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 4 to 5 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: updates ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e3cc0426..ac4061090 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the codebase. - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up Python 3. uses: actions/setup-python@v5 @@ -41,7 +41,7 @@ jobs: steps: - name: Check out the codebase. - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Uninstall GitHub Actions' built-in Homebrew. run: tests/uninstall-homebrew.sh From 9e5feb9c053f244c581d977434480f4de56888be Mon Sep 17 00:00:00 2001 From: Peter W <1072292+techieshark@users.noreply.github.com> Date: Wed, 3 Sep 2025 07:46:36 +1000 Subject: [PATCH 30/38] Update instructions re: "System Preferences" (#228) Just change "System Preferences" to "System Settings" Why: * Apple changed the name from "System Preferences" (formerly used in Monterey and older) to "System Settings" in Ventura (2022) Ref: https://en.wikipedia.org/wiki/MacOS_Ventura#Changes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6fd53878a..e848816e7 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ This playbook installs and configures most of the software I use on my Mac for w You can use this playbook to manage other Macs as well; the playbook doesn't even need to be run from a Mac at all! If you want to manage a remote Mac, either another Mac on your network, or a hosted Mac like the ones from [MacStadium](https://www.macstadium.com), you just need to make sure you can connect to it with SSH: - 1. (On the Mac you want to connect to:) Go to System Preferences > Sharing. + 1. (On the Mac you want to connect to:) Go to System Settings > Sharing. 2. Enable 'Remote Login'. > You can also enable remote login on the command line: From 2672449b6b25ef72ea70ed218820150b8e5e4b8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 7 Sep 2025 22:08:26 -0500 Subject: [PATCH 31/38] Bump the updates group with 2 updates (#230) Bumps the updates group with 2 updates: [actions/setup-python](https://github.com/actions/setup-python) and [actions/stale](https://github.com/actions/stale). Updates `actions/setup-python` from 5 to 6 - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v5...v6) Updates `actions/stale` from 9 to 10 - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v9...v10) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: updates - dependency-name: actions/stale dependency-version: '10' dependency-type: direct:production update-type: version-update:semver-major dependency-group: updates ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- .github/workflows/stale.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac4061090..6eb69a809 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@v5 - name: Set up Python 3. - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.x' diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 22ac0548d..26d74b865 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -11,7 +11,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v9 + - uses: actions/stale@v10 with: days-before-stale: 120 days-before-close: 60 From 91b09150150825c89089408fc278d9cac87973d4 Mon Sep 17 00:00:00 2001 From: Peter W <1072292+techieshark@users.noreply.github.com> Date: Mon, 8 Sep 2025 13:29:00 +1000 Subject: [PATCH 32/38] do not run github actions if only markdown changes (#229) why: * these docs only changes don't need to be tested * running CI takes over 10 minutes, so this shaves that off --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6eb69a809..44ed52d1b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,11 @@ name: CI 'on': pull_request: + paths-ignore: + - '*.md' # Markdown docs need no linting/testing etc. push: + paths-ignore: + - '*.md' branches: - master schedule: From 2f5dc880690ab6ad57b094caaceaae513615151c Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Tue, 7 Oct 2025 00:02:08 -0500 Subject: [PATCH 33/38] Issue #186: Fix capitalization of become parameter in ansible.cfg. --- ansible.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible.cfg b/ansible.cfg index 532d6335d..cc58e3962 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -2,5 +2,5 @@ nocows = True roles_path = ./roles:/etc/ansible/roles inventory = inventory -become = true +become = True stdout_callback = yaml From 719de3569804fcf4974fc3a14f46f3ebb92989b2 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Tue, 7 Oct 2025 00:09:53 -0500 Subject: [PATCH 34/38] Issue #232: Properly set conditionals for mas when condition. --- main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.yml b/main.yml index 500c91766..a1ec9d64d 100644 --- a/main.yml +++ b/main.yml @@ -20,7 +20,7 @@ when: configure_dotfiles tags: ['dotfiles'] - role: geerlingguy.mac.mas - when: mas_installed_apps or mas_installed_app_ids + when: (mas_installed_apps | bool) or (mas_installed_app_ids | bool) tags: ['mas'] - role: geerlingguy.mac.dock when: configure_dock From 29901ff9bffcb1f5d256635c6b0a9d4f1cbce4d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Nov 2025 18:47:29 -0600 Subject: [PATCH 35/38] Bump actions/checkout from 5 to 6 in the updates group (#235) Bumps the updates group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 5 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: updates ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44ed52d1b..690a394c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the codebase. - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up Python 3. uses: actions/setup-python@v6 @@ -45,7 +45,7 @@ jobs: steps: - name: Check out the codebase. - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Uninstall GitHub Actions' built-in Homebrew. run: tests/uninstall-homebrew.sh From be45b8f180f995c1165cb24541d0f9429f4fefe4 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Thu, 27 Nov 2025 22:36:04 -0600 Subject: [PATCH 36/38] Fixes #236: Use yaml result format instead of callback plugin. --- ansible.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible.cfg b/ansible.cfg index cc58e3962..f914eaeb9 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -3,4 +3,4 @@ nocows = True roles_path = ./roles:/etc/ansible/roles inventory = inventory become = True -stdout_callback = yaml +result_format = yaml From 56a5794cfcaa40ab570dc70771dff81493dfe93b Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Fri, 28 Nov 2025 21:27:52 -0600 Subject: [PATCH 37/38] Fix result format in YAML. --- ansible.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible.cfg b/ansible.cfg index f914eaeb9..b043f1ea3 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -3,4 +3,4 @@ nocows = True roles_path = ./roles:/etc/ansible/roles inventory = inventory become = True -result_format = yaml +callback_result_format = yaml From b775be2d3b34429c0b537362956aa4dbec076f89 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Mon, 2 Feb 2026 23:16:34 -0600 Subject: [PATCH 38/38] Issue #232: Fix install of Mac Apps list emptiness check. --- main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.yml b/main.yml index a1ec9d64d..9c7861edb 100644 --- a/main.yml +++ b/main.yml @@ -20,7 +20,7 @@ when: configure_dotfiles tags: ['dotfiles'] - role: geerlingguy.mac.mas - when: (mas_installed_apps | bool) or (mas_installed_app_ids | bool) + when: (mas_installed_apps | length > 0) or (mas_installed_app_ids | length > 0) tags: ['mas'] - role: geerlingguy.mac.dock when: configure_dock