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 setupwill only install dependencies - Running
make installwill 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 PCREncdudisk usage analyserfdalternative tofindfzffuzzy 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.golangfrom v1.2.1 to v2.0.2
Python
- Install Python 3.7.8 and 3.8.5 as the default versions
- Upgrade
markosamuli.pyenvv2.1.1 to v4.0.2
Node.js
- Install Node.js v12 as default version with NVM
- Upgrade
markosamuli.nvmfrom 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 helpto see the available commands. - Install shfmt and shellcheck as a dependency in the Makefile
- Use
pre-commitv2.7.0 - Use
flake8v3.8.3 to lint Python code - Use
pylintv2.6.0 to lint Python code - Use
ansible-lintv4.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-lintpre-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
bashexecutable instead ofshwith Ansible on WSL environments to
get around Windows directory white spaces on the PATH. Fixes issues with
zzet.rbenvrole no longer using bash for executing shell commands. - Fix
update-roles.pyscript not working if using master as version in
requirements.ymlfile.
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
pyenvorvirtualenvor 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 helpcommand. - Added
setupcommand for runningsetupscript with the default options. - Added
install-ansibleMakefile command that doesn't enable or disable PyPI
and doesn't reinstall existing Ansible installations. - Renamed
rolesMakefile command toinstall-rolesand removed-fargument. - Renamed
updateMakefile command toupdate-roles. - Added
clean-rolesMakefile command for runningclean_roles.pyscript. - Added
latest-rolesMakefile 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
python3overpython2during 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 localmachinePython package.
Development and coding style improvements
- Minimum
pre-commitversion 1.20 - Removed
autopep8in favour of usingyapffor formatting Python code - Added
pylintpre-commit hooks for linting Python code - Move development requirements into
requirements.dev.txtfile - Use more strict
yamllintrules 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
luarocksAnsible 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
nmapcertbot- Vagrant and VirtualBox
- Packer
Tools
- Use shared setup script with the linux-machine repository
- Added
machine.yamlconfiguration file for local playbook overrides
and customizations - Check Ansible version in the
setupscript and in the Ansible playbook setup
phase - Makefile with tasks for common playbooks
- Ansible Galaxy support in
update-rolesscript - 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/golangto~/go - Add
GO111MODULESenvironment 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-sdkto
~/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.