xbar Plugin

A copy of the latest stable version of the xbar plugin for mpm is always available on xbar website and plugin repository.

xbar plugin with default layout. xbar plugin with submenu layout.

Development constraints

xbar plugins are self-contained scripts. As such, the meta_package_manager.7h.py needs to be able to run without any extra dependency, on the pre-installed Python distribution that ships with macOS.

xbar itself requires macOS Catalina or newer (>= 10.15).

With Python 2.x being deprecated as of macOS Catalina, this plugin targets Python 3.7.3 or newer, which is the version available under the python3 CLI:

$ python

WARNING: Python 2.7 is not recommended.
This version is included in macOS for compatibility with legacy software.
Future versions of macOS will not include Python 2.7.
Instead, it is recommended that you transition to using 'python3' from within Terminal.

Python 2.7.16 (default, Aug 24 2019, 18:37:03)
[GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s on darwin
Type "help", "copyright", "credits" or "license" for more information.
$ xcrun python3
Python 3.7.3 (default, Sep  5 2019, 17:14:41)
[Clang 11.0.0 (clang-1100.0.33.8)] on darwin

Development workflow

Active development of the plugin is happening here, as a side-project of mpm itself.

Releases of the plugin is synchronized with the package. Both share the exact same version to simplify management. This explain why the plugin could appears jumpimg ahead of a couple of major/minor version while providing tiny or no changes at all.

A release is ready when both the package and the plugin reach a stable state.

If the plugin has been changed between releases, a copy of the plugin is pushed to the official xbar plugin repository.

Release process

  1. Fork the official xbar plugin repository.

  2. Fetch a local copy of the fork:

    $ git clone https://github.com/kdeldycke/xbar-plugins
    $ cd xbar-plugins
  3. Create a new branch and switch to it:

    $ git branch meta-package-manager-v230
    $ git checkout meta-package-manager-v230
  4. Replace existing copy of the plugin with the latest tagged version:

    $ wget https://raw.githubusercontent.com/kdeldycke/meta-package-manager/v2.3.0/meta_package_manager/xbar/meta_package_manager.7h.py
    $ mv ./meta_package_manager.7h.py ./Dev/
    $ chmod 755 ./Dev/meta_package_manager.7h.py
  5. Commit the new plugin:

    $ git add ./Dev/meta_package_manager.7h.py
    $ git commit -m 'Upgrade to Meta Package Manager plugin v2.3.0.'
  6. Push new branch:

    $ git push --set-upstream origin meta-package-manager-v230
  7. Create a pull-request in the original repository.