All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
This release fixes compatibility with Python 10.12 by removing the dependencies on distutils.versions
. (Thanks to @arubdesu for #42.)
- Removed Python 2 support. If you're still deploying docklib to macOS versions prior to Monterey 12.3, be sure you're deploying a Python runtime like MacAdmins Python rather than relying on the built-in
/usr/bin/python
. - Removed macOS version detection. This may cause unexpected behavior when referencing the
AllowDockFixupOverride
,show-recents
,recent-apps
,dblclickbehavior
,show-recents-immutable
, andwindowtabbing
keys on macOS versions prior to Big Sur 11.0.
makeDockAppSpacer()
parameter name has changed fromtype
totile_type
. Please update your scripts if you use this function.- Updated unit tests with new
is-beta
preference key present in macOS Sonoma Dock tiles.
1.3.0 - 2021-05-31
The focus of this release is to make docklib functions less focused on dock item labels, since labels can change depending on the user's selected language. (See #32 for details.)
-
A new
findExistingEntry
function that can find dock items based on several attributes.The default behavior of
findExistingEntry
is to match the provided string on (in order of preference):- label
- path
- filename with extension
- filename without extension
The
match_on
parameter can be specified to select only one of those attributes to match, if desired. See thefindExistingEntry
function docstring for available parameters and values.
-
The
findExistingLabel
function is now simply a pointer to the newfindExistingEntry
function.findExistingLabel
will be maintained for backward-compatibility. -
The
removeDockEntry
function has a newmatch_on
parameter that mirrors the same parameter infindExistingEntry
. Default behavior is to match on the same attributes listed above, in the same order of preference. (This is a change in behavior from previous versions of docklib. If you prefer to continue removing items solely based on label, you should specifymatch_on="label"
in your function call.) -
The
replaceDockEntry
function has two new parameters:match_str
, which allows specifying the item intended to be replaced in the dock (replaces the now deprecatedlabel
parameter).match_on
, which mirrors the same parameter infindExistingEntry
. Default behavior is to match on the same attributes listed above, in the same order of preference.
-
The
label
parameter ofreplaceDockEntry
is deprecated, and it's encouraged to usematch_str
instead. This allows existing items to be replaced based on multiple attributes rather than just label. As stated above, this makes dock customization scripts more reliable in multilingual environments.A warning has been added that alerts administrators to this deprecation.
-
This is the last release of docklib that will support Python 2. Future releases will only be tested in Python 3.
If you haven't started bundling a Python 3 runtime for your management tools, this blog article from @scriptingosx is a good read. Also: a reminder that docklib is already included in the "recommended" flavor of the macadmins/python packages.
1.2.1 - 2021-03-01
- Signed GitHub release package
- Fixed issue preventing
findExistingLabel
from finding URLs' labels
1.2.0 - 2020-10-15
(Includes changes from briefly-published versions 1.1.0 and 1.1.1.)
- Published docklib to PyPI so that administrators can manage it with
pip
and more easily bundle it in custom Python frameworks. Adjusted repo file structure to match Python packaging standards. - Created build_pkg.sh script for creation of macOS package installer.
- Added
findExistingURL
andremoveDockURLEntry
functions for handling URL items. - Created a few basic unit tests.
- Updated pre-commit configuration.
1.0.5 - 2020-01-29
- Specified UTF-8 encoding on docklib.py file.
1.0.4 - 2019-10-08
- Changed
.append()
to.extend()
for Python 3 compatibility.
1.0.3 - 2019-09-07
- Added more mutable keys (thanks @WardsParadox)
- Added Apache 2.0 license
- Fixed issues with attribute names that contain hyphens (e.g.
mod-count
) - Fixed issue that caused False values to be skipped
1.0.2 - 2019-04-02
- Only use "show-recents" key in 10.14 or higher
1.0.1 - 2019-03-24
- Added the ability to specify a label for Apps
- Added "show-recents" key
- Added pre-commit config for contributors
- Standardized Python using Black formatter
- Adopted MunkiPkg project structure
- Corrected examples in read me
- Fixed assignment of return value
- Initial release