All notable changes to this project will be documented in this file, from 2016-03-24 going forward. This project adheres to Semantic Versioning.
Changes here will be in the next release. You can use them now by checking out the HEAD of the main
branch, or specifying the --HEAD
option with brew install bork
.
- Pinning a Homebrew tap is deprecated and has been removed from Homebrew. The
--pin
option has been removed from thebrew-tap
type accordingly. (#41) - The
mas account
check no longer works on recent macOS, so we skip this on Darwin >= 21. (#43, #49, thanks @lucymhdavies)
- Bork now supports before hooks. You can define functions named
bork_will_change
,bork_will_install
,bork_will_upgrade
orbork_will_remove
, and Bork will run them just before making any changes. (#16) - You can now use the
no
command in place ofok
to check for the absence, rather than the presence, of an assertion. This will delete files, uninstall packages, etc. when satisfying to ensure an assertion is absent from the system. (#9)- A new
did_remove
function has been added, which you can use after an assertion to determine whether Bork has removed something.
- A new
- New
dnf
type for the successor toyum
. (#35, thanks @jbrubake) - Tab completions are now available for bash and zsh. (#19)
- The
user
andgroup
types now work on macOS. (#44) - You can now pass the
--real-name
argument to theuser
type to set a user's real name. (#44)
This was originally pre-released as 0.13.0-rc.1 on 2021-07-29.
The second release under Bork's new maintainership! Thank you in particular to @lucymhdavies for your work on many of the changes below.
- Homebrew is now installed with a shell script instead of the Ruby installer. (#7)
- the
mas
type will now check that the user is signed into the App Store before continuing. - The
mas
type will now only update the specified apps instead of all installed apps. (#18) - The
download
type will now follow redirects. (#21)
- Bork now has a man page in
docs/
. This will be installed by the next version of the Homebrew formula, but can be installed manually as well by linking or copying into/usr/share/man/man1
(or wherever you keep your man pages). bork types
now supports a single type as an argument to get documentation for that specific type only.bork inspect
will generate a Bork-compatible config file based on the current status of the system. This is currently available on a per-type basis only, and will only be implemented for some types. (#14)- Bork will now report its version by running
bork --version
(orbork version
). - The
git
type can now show untracked files, using the--untracked-files
option. It responds to the same values as the--untracked-files
option on git:no
(default, ignore them),normal
orall
. (#28) - The
brew
type now accepts a--HEAD
option, which will install the latest available git commit as though you had specified the option on thebrew install
command itself. (#31) - Bork will now display its output in colour if the
BORK_COLOR
environment variable is set. (#24)
Hello! I've forked bork in 2021 to fix some bugs and carry on the project. I'm indebted to @mattly for his work on it up to this point.
- the
cask
type will now work with updated versions of Homebrew, wherebrew cask install
has been replaced withbrew install --cask
. - all tests should now pass on BSD and GPL environments (tested on macOS and Ubuntu, please raise an issue if you run into failures on other platforms).
- CI changed to GitHub Actions and running in a matrix on both macOS and Ubuntu runners.
- new
pip3
type for Python 3.x - new
shells
type for registering a shell in/etc/shells
apk
type support has now been merged and the tests fixed. Thanks @mattly & @jitakirin for your work in 2018!- there is now Markdown documentation in
docs/
, which is also the source of the GitHub Pages site.
- The
--size
option in thedownload
type is going away. It will be replaced with some sort of hash checking option.
- the
ok
statement now single-quotes arguments to the type handler. This is the first step in a more consistent and correct behavior for quoting things in Bork. @martinwalsh - The github type once again works correctly in compiled scripts. @mattly
- There is no longer a
bin/bork_compile
script for someone to try to run when they shouldn't. @mattly - Homebrew doesn't treat tap names as case-sensitive, and now neither does bork. @mattly
- Clarified some documentation around the update behavior for the brew-tap type @mattly
Hey folks, sorry it's been a while! I started a new job not long after 0.10.0 was relased and then had my first child not long after that. I'm finally feeling a bit like I have some spare time. -- @mattly
- new
--owner
,--group
, and--mode
flags for thedirectory
type that do what you think they do. Thanks @jitakirin zypper
type for working with the SUSE package manager. Thanks @jitakirinpipsi
type for installing python packages to virtualenvs. Thanks @jitakirin- Reference to
#bork
freenode IRC channel in Readme. go-get
type for asserting the presence of a go package. Thanks @edrex- Use
apm-beta
overapm
if it is available. Thanks @frdmn
- Let homebrew itself tell us whether it is outdated. Thanks @frdmn
- Use
npm install
to update npm packages, becausenpm upgrade
could install things "newer" than the latest, causing an "outdated" status from bork. By @mattly - Don't check a user's shell if not requested. Thanks @jitakirin
- Fix for removing an item from a bag value. Thanks @ngkz
- Add version flag to
brew cask
check to bypass warning. Thanks @rmhsilva - Readme typo fix. Thanks @indigo423
- force legacy listing format for PIP for conformative parsing. Thanks @frdmn
- fix apt-status for outdated packages. Thanks @dylanvaughn
- bypass homebrew not to auto-update itself when performing checks. Thanks @frdmn
- the
desired_type
variable on thedefaults
type is now escaped when checking. Thanks @bcomnes - the
--size
flag check on thedownload
type. Thanks @bcomnes - Some typos in the readme. Thanks @rgieseke
-
bag
helper: addedprint
command to echo each item as a line -
git
type: added an option to explicitly set the destination. These are equivalent:cd ~/code; ok git git@somewhere.com:/me/someproject.git ok git ~/code/someproject git@somewhere.com:/me/someproject.git
I am inclined to deprecate the original implicit version, and welcome feedback about this.
-
github
type: made to work with explicit destination option forgit
above. -
github
type: added-ssh
option to specifygit@github.com:
style urls. -
new
apm
type for managing packages for the Atom text editor. Thanks @frdmn -
npm
type: Tests! -
npm
type: Added outdated/upgrade support. -
Readme.md
: Added installation instructions, moved some sections around. Thanks @frdmn -
Changelog.md
: moved fromHistory.md
, improved organization.
destination
declaration is now a proxy for unixcd
, and will emit to STDERR a message stating it will be removed in the future.
ok
declaration no longer runs commands from the setdestination
; it will run them from the current directory.
dict
type: fix handling fordict
entries.dict
type: aliasint
type tointeger
.symlink
type: properly quote target in status checks.npm
type: Some versions of thenpm
executable have a bug preventing--depth 0
and--parseable
from working together. We work around this by using only--depth 0
and parsing that output manually.file
type: duringcompile
operation, if file is missing, will halt the compile and emit an error to STDERR.
- Fix a regression introduced in fd49cab that assumed the bork script path (passed on the command line) was relative. Thanks @frdmn
Initial tagged release, prompted by getting bork into homebrew. Conversely, about three years after I started working on this project.