Skip to content

Releases: markosamuli/macos-machine

v3.0.0

13 Sep 13:19
Compare
Choose a tag to compare

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

Commmand line tools

Useful command line tools:

  • less (less-551) with PCRE
  • ncdu disk usage analyser
  • fd alternative to find
  • fzf fuzzy search
  • ripgrep (rg) alternative to grep

Thanks Sebastian Witowski for the tools I haven't used before.

Changed

Ansible

  • Install Ansible 2.8 as the default version

Golang

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

13 Jan 16:40
Compare
Choose a tag to compare

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

24 Nov 22:30
Compare
Choose a tag to compare

Added

Rust

Fixed

  • Use bash executable instead of sh 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 or virtualenv 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 running setup 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 to install-roles and removed -f argument.
  • Renamed update Makefile command to update-roles.
  • Added clean-roles Makefile command for running clean_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 over python2 during install

AWS tools

Python scripts

  • Moved Python business logic and shared functionality from the Python scripts
    into a local machine Python package.

Development and coding style improvements

  • Minimum pre-commit version 1.20
  • Removed autopep8 in favour of using yapf 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

20 Nov 22:41
Compare
Choose a tag to compare

Release with macOS Mojave support.

Added

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

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

20 Nov 21:01
Compare
Choose a tag to compare

Initial release for macOS High Sierra.