Releases: markosamuli/macos-machine
Releases · markosamuli/macos-machine
v3.0.0
This is a release with a number of previous unreleased improvements, fixes and support for macOS Catalina.
Breaking changes
- Require Python 3 or newer for local development and running any of the Python scripts
- The setup script and Ansible playbooks will require Ansible 2.8
- Remove Python 2.7 support
- Running
make setup
will only install dependencies - Running
make install
will run the playbooks - Drop support for High Sierra
Added
- Install Terminus
- Added recommended extensions for the project VScode workspace
Commmand line tools
Useful command line tools:
less
(less-551) with PCREncdu
disk usage analyserfd
alternative tofind
fzf
fuzzy search- ripgrep (
rg
) alternative togrep
Thanks Sebastian Witowski for the tools I haven't used before.
Changed
Ansible
- Install Ansible 2.8 as the default version
Golang
- Install Go version 1.15
- Upgrade
markosamuli.golang
from v1.2.1 to v2.0.2
Python
- Install Python 3.7.8 and 3.8.5 as the default versions
- Upgrade
markosamuli.pyenv
v2.1.1 to v4.0.2
Node.js
- Install Node.js v12 as default version with NVM
- Upgrade
markosamuli.nvm
from v1.4.1 to v1.4.2
Development
These development tools are not required for setting up a system with my playbooks, but are required if making changes to the codebase to ensure consistent coding style.
- Changes to Makefile. Run
make help
to see the available commands. - Install shfmt and shellcheck as a dependency in the Makefile
- Use
pre-commit
v2.7.0 - Use
flake8
v3.8.3 to lint Python code - Use
pylint
v2.6.0 to lint Python code - Use
ansible-lint
v4.3.3 to lint Ansible playbooks and roles - Use shfmt v3 for formatting bash scripts
- Use Prettier for formatting JSON, Markdown and YAML files
- Format Python code with
black
Removed
- Removed
travis-lint
pre-commit hook as it's not installing on macOS Catalina
v2.1.1
Fixed
- Add check that VS Code isn't already installed by @ilyatulvio
Changed
- Format YAML, JSON and Markdown files with Prettier in the pre-commit hooks.
v2.1.0
Added
Rust
- Install Rust programming language with markosamuli.rust
Fixed
- Use
bash
executable instead ofsh
with Ansible on WSL environments to
get around Windows directory white spaces on the PATH. Fixes issues with
zzet.rbenv
role no longer using bash for executing shell commands. - Fix
update-roles.py
script not working if using master as version in
requirements.yml
file.
Changed
Ansible
- Require minimum Ansible version 2.7
- Install Ansible 2.8 as the default version
- Check that we're not using broken Ansible v2.8.6
Setup script
- Rework on the setup script for improved Ansible installation when using
pyenv
orvirtualenv
or calling Ansible with any non-system paths. - Support for installing Ansible in a local virtualenv from PyPI.
- Allow setting the default Ansible version with
MACHINE_ANSIBLE_VERSION
environment variable. - Added support for uninstalling existing Ansible installations.
- Added new long command line options in the setup script.
Makefile
- Self-documented Makefile and
make help
command. - Added
setup
command for runningsetup
script with the default options. - Added
install-ansible
Makefile command that doesn't enable or disable PyPI
and doesn't reinstall existing Ansible installations. - Renamed
roles
Makefile command toinstall-roles
and removed-f
argument. - Renamed
update
Makefile command toupdate-roles
. - Added
clean-roles
Makefile command for runningclean_roles.py
script. - Added
latest-roles
Makefile command to update, clean and install required
Ansible roles to their latest versions.
Google Cloud SDK
- Upgraded markosamuli.gcloud from v2.1.1 to v2.1.2
- Cloud SDK release 271.0.0
- Option for preferring
python3
overpython2
during install
AWS tools
- Upgraded markosamuli.aws_tools from v1.0.1 to v2.1.0
Python scripts
- Moved Python business logic and shared functionality from the Python scripts
into a localmachine
Python package.
Development and coding style improvements
- Minimum
pre-commit
version 1.20 - Removed
autopep8
in favour of usingyapf
for formatting Python code - Added
pylint
pre-commit hooks for linting Python code - Move development requirements into
requirements.dev.txt
file - Use more strict
yamllint
rules and format files according
Travis
- Do not run builds with Xcode 10.2.1 on macOS 10.14.
v2.0.0
Release with macOS Mojave support.
Added
- Fix permissions in user home directory
- Install doctl from Homebrew
- Install JetBrains Toolbox
- Install p7zip
- Install htop
- Install asciinema
- Install Lua programming language and custom
luarocks
Ansible module - Install Vim or MacVim
- Install zsh with Homebrew
- Install asdf version manager with markosamuli.asdf v1.1.0
- Install GNU sed
- Install GNU tar
- Install Hammerspoon automation tool with
ReloadConfiguration.spoon
- Install Hazel automation tool
- Install rbenv and Ruby with zzet.rbenv role
- Install shellcheck
- Install shfmt
Removed
- Atom editor is no longer installed
Changed
Default installation options
The following tools are no longer installed automatically but require to be
manually enabled:
- Slack desktop application
- Google Drive File Stream
nmap
certbot
- Vagrant and VirtualBox
- Packer
Tools
- Use shared setup script with the linux-machine repository
- Added
machine.yaml
configuration file for local playbook overrides
and customizations - Check Ansible version in the
setup
script and in the Ansible playbook setup
phase - Makefile with tasks for common playbooks
- Ansible Galaxy support in
update-roles
script - Check for outdated Homebrew packages when running
setup
Terraform
- Install Terraform with tfenv
- Remove conflicting Terraform installations including asdf plugin and any
installed versions - Removed markosamuli.terraform role and previously installed binaries
Golang
- Upgraded markosamuli.golang from v1.0.0 to v1.2.0
- Optional shell script initialization
- Install common Go packages with the markosamuli.golang role
- Changed default GOPATH from
~/Projects/golang
to~/go
- Add
GO111MODULES
environment variable into shell configuration
Google Cloud SDK
- Upgraded markosamuli.gcloud from v1.1.0 to v2.1.1
- Cloud SDK release 271.0.0
- Changed default installation path from
~/opt/google-cloud-sdk
to
~/google-cloud-sdk
Node.js
- Upgraded markosamuli.nvm from v1.1.0 to v1.4.1
- Install NVM v0.35.1
- Install Node.js LTS as the default version
- Load bash completion in shell scripts
Python
- Upgraded markosamuli.pyenv from v1.2.0 to v2.1.1
- Building Python versions now working on macOS Mojave
- Load shell completions from Homebrew directory
- Update to pyenv 1.2.15
- Update to Python 2.7.17
- Update to Python 3.7.5
Development improvements
- Travis: Run tests with Xcode 11.0
- Travis: Do not test with Xcode 9.4
- Travis: Builds fail faster
- Travis: Run builds on pull requests and main branches only
- GitHub Actions: Added new pre-commit workflow
- Added markdownlint pre-commit hook
- Validate shell scripts with shellcheck and improve coding style
- Format shell scripts with shfmt
- Setup virtualenv with pyenv for local development
v1.0.0
Initial release for macOS High Sierra.