Plugin Update Tracker

by Steven Swartz
5
4
3
2
1
Score: 72/100

Description

The Plugin Update Tracker plugin helps users manage updates for their installed Obsidian plugins by providing notifications and detailed update information. It offers a status bar indicator for available updates and allows users to view release notes before updating. The plugin helps users assess the stability of new versions by displaying download statistics and offering an option to delay update notifications. Users can also view code changes between versions and selectively ignore specific updates.

Reviews

No reviews yet.

Stats

171
stars
157,279
downloads
8
forks
1,290
days
345
days
345
days
86
total PRs
0
open PRs
2
closed PRs
84
merged PRs
80
total issues
41
open issues
39
closed issues
29
commits

Latest Version

a year ago

Changelog

  • New setting "Show Notification on New Update" to show a small pop-up in the corner of the screen when there are updates. This is useful on mobile since the plugin icon is less visible (implemented by @ckt1031).
  • Fixes some typos in error messages (fixed by @claremacrae).

README file from

Github

Obsidian Plugin Update Tracker

Installation

Visit this URL: obsidian://show-plugin?id=obsidian-plugin-update-tracker

Features

Know when installed plugins have updates

Desktop:

This small icon is added to the status bar:

image: When 5 plugins have updates

image: When all plugins are up-to-date

Mobile/Tablet:

This ribbon action is shown when there's at least one update available:

image

View a list of updates

When updates are available, click the plugin icon to see the list:

Read the release notes to see what's changed

Release notes are safely rendered as markdown

image

image

Install Plugin Updates

Screen_Recording_2022-10-29_at_3_43_48_PM_AdobeExpress (1)

Evaluate the riskiness of upgrading

Statistics on new versions

Older versions with more downloads are likely more stable and secure image

Wait a few days before showing updates

image

View code changes between versions of a plugin

Clicking Code Changes will bring you to a page like https://github.com/blacksmithgu/obsidian-dataview/compare/0.5.43...0.5.46#files_bucket.

⚠️ The code in the git diff may be different than what's installed. Obsidian downloads a separate main.js file from the github release, which the author could add any code to.

Ignore specific plugin updates

Hide new plugin versions that you don't want to install from the plugin icon count and update list:

https://user-images.githubusercontent.com/17691679/200182586-c0a237ff-3cf4-4693-b1c5-9051b599e1ae.mov

View and install new beta plugin versions

By default, new beta versions of plugins are hidden, but can be shown by changing this setting:

image

A warning will be shown for beta version updates:

image

Customizing plugin appearance

Built-in

The following built-in settings exist:

image

Custom CSS Snippets

Appearance can also be customized using obsidian CSS snippets (Go to Settings > Appearance > CSS Snippets)

The following CSS selectors exist:

  • .status-bar-item.plugin-obsidian-plugin-update-tracker: The container of the status bar plugin icon

  • .status-bar-item .plugin-update-tracker-icon--loading: Plugin icon container in the loading state (⌛)

  • .status-bar-item .plugin-update-tracker-icon--no-updates-available: Plugin icon container when no updates are available (✓)

  • .status-bar-item .plugin-update-tracker-icon--updates-available: Plugin icon container when updates are available

  • .status-bar-item .plugin-update-tracker-icon--error: Plugin icon container when there's an error checking for updates (image)

  • .plugin-update-tracker-icon-plug-icon: The plug icon ( )

  • .plugin-update-tracker-icon-chip: The status icon to the right of the plug icon

Examples

Position the icon at the end of the status bar:

.status-bar-item.plugin-obsidian-plugin-update-tracker {
 order: 101;
}

Position the icon at the beginning of the status bar:

.status-bar-item.plugin-obsidian-plugin-update-tracker {
 order: -1;
}

Using the public API to check for plugin updates

The API used to get plugin version info is free for anyone to use. This could be helpful for alerting your plugin's users about updates in a custom way.

Cacheing + AWS Lambda is used to keep costs low, avoid hitting github rate limits, and scale automatically. Currently, cached values are used for up to Math.ceil(number of requested plugins / 50) * 30 minutes and up to 400 plugins are processed. However, a large number of cache misses can still cause high latency.

Example Request:

POST https://jc5gpa3gs7o2uge6iq5mgjd53q0daomi.lambda-url.us-east-1.on.aws

{
    "currentPluginVersions": [
        {
            "obsidianPluginId": "dataview",
            "version": "0.5.44"
        },
        {
            "obsidianPluginId": "obsidian-excalidraw-plugin",
            "version": "1.7.25"
        }
    ]
}

Example Response, which contains info on the 10 latest versions of the plugin that are greater than the version requested:

[
    {
        "obsidianPluginId": "dataview",
        "pluginName": "Dataview",
        "pluginRepositoryUrl": "https://github.com/blacksmithgu/obsidian-dataview",
        "pluginRepoPath": "blacksmithgu/obsidian-dataview",
        "newVersions": [
            {
                "releaseId": 79493021,
                "versionName": "0.5.47",
                "versionNumber": "0.5.47",
                "minObsidianAppVersion": "0.13.11",
                "notes": "# 0.5.47\n\nImproves `date + duration` behavior when either the date or duration are null.\n",
                "areNotesTruncated": false,
                "downloads": 45232,
                "fileAssetIds": {
                    "manifestJson": 80616557,
                    "mainJs": 80616558
                },
                "publishedAt": "2022-10-11T06:24:26Z",
                "updatedAt": "2022-10-11T06:24:26Z"
            },
            {
                "releaseId": 76774596,
                "versionName": "0.5.46",
                "versionNumber": "0.5.46",
                "minObsidianAppVersion": "0.13.11",
                "notes": "# 0.5.46\n\n- Fix #1412: Fix bad `file.cday` and `file.ctime` comparisons due to wrong timezone being set. Ugh.\n",
                "areNotesTruncated": false,
                "downloads": 43628,
                "fileAssetIds": {
                    "manifestJson": 77407853,
                    "mainJs": 77407852
                },
                "publishedAt": "2022-09-10T00:17:38Z",
                "updatedAt": "2022-09-10T00:17:38Z"
            },
            {
                "releaseId": 76553504,
                "versionName": "0.5.45",
                "versionNumber": "0.5.45",
                "minObsidianAppVersion": "0.13.11",
                "notes": "# 0.5.45\n\n- #1400: Properly use the group by field for the group name.\n- Fix bad table highlighting in some themes.\n",
                "areNotesTruncated": false,
                "downloads": 4199,
                "fileAssetIds": {
                    "manifestJson": 77205985,
                    "mainJs": 77205984
                },
                "publishedAt": "2022-09-08T05:24:23Z",
                "updatedAt": "2022-09-08T05:24:23Z"
            }
        ]
    },
    {
        "obsidianPluginId": "obsidian-excalidraw-plugin",
        "pluginName": "Excalidraw",
        "pluginRepositoryUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin",
        "pluginRepoPath": "zsviczian/obsidian-excalidraw-plugin",
        "newVersions": [
            {
                "releaseId": 80829877,
                "versionName": "Excalidraw 1.7.26",
                "versionNumber": "1.7.26",
                "minObsidianAppVersion": "0.15.6",
                "notes": "## Fixed\r\n- Transcluded block with a parent bullet does not embed sub-bullet [#853](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/853)\r\n- Transcluded text will now exclude ^block-references at end of lines\r\n- Phantom duplicates of the drawing appear when \"zoom to fit\" results in a zoom value below 10% and there are many objects on the canvas [#850](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/850)\r\n- CTRL+Wheel will increase/decrease zoom in steps of 5% matching the behavior of the \"+\" & \"-\" zoom buttons.\r\n- Latest updates from Excalidarw.com\r\n  - Freedraw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)\r\n  - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)\r\n\r\n## New - power user features\r\n- Force the embedded image to always scale to 100%. Note: this is a very niche feature with a very particular behavior that I built primarily for myself (even more so than other features in Excalidraw Obsidian - also built primarily for myself 😉)... This will reset your embedded image to 100% size every time you open the Excalidraw drawing, or in case you have embedded an Excalidraw drawing on your canvas inserted using this function, every time you update the embedded drawing, it will be scaled back to 100% size. This means that even if you resize the image on the drawing, it will reset to 100% the next time you open the file or you modify the original embedded object. This feature is useful when you decompose a drawing into separate Excalidraw files, but when combined onto a single canvas you want the individual pieces to maintain their actual sizes. I use this feature to construct Book-on-a-Page summaries from atomic drawings.\r\n- I added an action to the command palette to temporarily disable/enable Excalidraw autosave. When autosave is disabled, Excalidraw will still save your drawing when changing to another Obsidian window, but it will not save every 10 seconds. On a mobile device (but also on a desktop) this can lead to data loss if you terminate Obsidian abruptly (i.e. swipe the application away, or close Obsidian without first closing the drawing). Use this feature if you find Excalidraw laggy.",
                "areNotesTruncated": false,
                "downloads": 877,
                "fileAssetIds": {
                    "manifestJson": 82708877,
                    "mainJs": 82708880
                },
                "publishedAt": "2022-10-29T12:36:26Z",
                "updatedAt": "2022-10-29T12:36:10Z"
            }
        ]
    }
]

API Privacy

The goal is sending the API only information needed for the plugin to function. Currently that's your list of installed plugins and their versions. AWS also automatically collects your IP which I have access to, and have no way of disabling.

Any changes in what's collected will be included in release notes, but it's unlikely to change.

Usage with lazy-plugin

When combining the Ignore Updates to Disabled Plugins setting with lazy-plugin, ensure that this plugin is loaded with the longest delay or else it may incorrectly identify another plugin as disabled.

Also, when this plugin detects that lazy-plugin and Ignore Updates to Disabled Plugins are enabled, this plugin will remain in the loading state for an extra 10 seconds before actually checking for updates. This helps avoid the issue of incorrectly considering a plugin disabled.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Heatmap Calendar
4 years ago by Richard Slettevoll
An Obsidian plugin for displaying data in a calendar similar to the github activity calendar
Initiative Tracker
5 years ago by Jeremy Valentine
TTRPG Initiative Tracker for Obsidian.md
Plugin Groups
3 years ago by Mocca101
A plugin that allows you to easily group and manage your other plugins in Obsidian.
Habit Tracker 21
2 years ago by zoreet
Word Sprint
4 years ago by Andrew Lombardi
Obsidian Word Sprint plugin
Keep the Rhythm
a year ago by Ezben
An Obsidian plugin to track your daily word count through a heatmap.
Daily Activity
5 years ago by trydalch
Plugin Manager
3 years ago by ohm-en
Allows better management of Obsidian.md plugins.
Better Plugins Manager
a year ago by zero
Habit Calendar
3 years ago by Hedonihilist
Monthly Habit Calendar for DataviewJS. This plugin helps you render a calendar inside DataviewJS code block, showing your habit status within a month.
Divide & Conquer
4 years ago by pseudometa
An Obsidian plugin that provides commands for bulk enabling/disabling of plugins. Useful for debugging when you have many plugins.
Birthday-Tracker
3 years ago by Marius Wörfel
Obsidian plugin to keep track of all birthdays of your family and friends.
Inbox
3 years ago by Zachatoo
Show in app notification on startup if there is data to process in the "inbox" note/folder.
Old Note Admonitor
3 years ago by tadashi-aikawa
Plugin Reloader
2 years ago by Benature
manual reload plugins
Easy Tracker
4 months ago by Hunter Ji
An Obsidian plugin for ultra-simple goal and habit tracking in any note.
Waka time box
3 years ago by complexzeng
Filtered Opener
2 years ago by Roman Kubiv
Sets of notes defined by filters to open notes.
Track-a-Lot
2 years ago by Iulian Onofrei
This is a tracker plugin for Obsidian
Notification Controller
2 years ago by juan-miii
⏱️ Hide Startup Time Notice: An Obsidian plugin that automatically hides the startup time notice.
Workout Planner
4 months ago by Rares Spatariu
Tiny Habits
8 months ago by Diego Nazoa
Obsidian Plugin for habit tracking with Svelte
IMDb
2 years ago by Andrew Chen
A simple plugin for syncing movies from IMDb to Obsidian
Boardgame Search
a year ago by Marlon May
A plugin to create notes for boardgames based on the BGG API
Plugin Update Locker
a year ago by Lemon695
It can prevent specified plugins in Obsidian from updating, ensuring that these plugins run stably on a specific version and avoiding compatibility issues or feature changes caused by updates.
Idle Monitor
a year ago by alberto98fx
A plugin to improve your productivity
Crackboard
2 years ago by Franklin
Obsidian plugin for crackboard.dev