[RELEASE] Hubitat Package Manager (HPM) -- HubitatCommunity

Hi there,

I'm seeing a timeout on Package Manager when with the following error and log entry when attempting to search for a new app.


There also appears to be an odd version mismatch as per the below - the app itself displays v1.9, but the app code shows v1.8.12


Not sure if it could be related, but I recently did a C8 upgrade migration and seeing another unusual error with another app.

Any remediation suggestions please? Would it be safe to just delete the app and install the latest version?

I just saw the fuzzy logic post, fast search works perfectly.

1 Like

Simply do a Repair on HPM. The cosmetic typo has no effect, so you're welcome to just ignore it.

It's a result of how I manage the source I'm working on. When I publish a release, I predict-the-future and get the source ready for the next release. The prior release was 1.8.11 and I predicted that 1.8.12 would be the next.. then the bigger issue was found and I felt it needed a bigger increment. 1.9.0 I caught it in 2 of the 3 places :smiley: If you looked at my source today, it would show 1.9.1 because that's the size of change I'm predicting :slight_smile: We will have to see how well I did...

Haha - got it, thank you!

1 Like

Just FYI - I just ran the repair and it worked - I'm see a dup in the inventory list though.


Have you given this a read?


Sorted - thanks again!

1 Like

new problem.. for some reason It wont let me search anymore. any ideas? how do i wipe it and start over, perhaps that is a fix?

Have you read this Topic yet?


I have some parent child apps, often I will only be updating a Child App. Is the release notes section only supported at the package level, or is it possible to have release notes for each of the modules within a package?

Also, do you have any advice on versioning of package\parent\child\driver apps.
Let's say I do an initial release and everything is at V1.0.
Now I find a bug in a child app and I rev that child app to V1.0.1.
Should I always rev the package version with any change to the contents? Or do I only rev the package when I add or delete something from the package?

Thanks, great app and thanks for supporting it. Makes things a lot easier.

HPM simply displays the Release Notes. It doesn't use them. And I think the hint is that it's a "Package" manager :smiley: If 10 items are a Package, then there's one Package Manifest and within, one Release Notes, and so on.

I understand 100% how "we developers" organize and revision our code, but HPM isn't focused in that direction. It's Package oriented not component oriented. HPM does not look into the code itself, it strictly uses the Package Manifest to identify a package that needs updating.

You need only update Package Manifest (whatever you actually name it) to cause an Update. As an extreme example, you could revision your components as v1.0.6 + 1.2.4 + 0.1.2 and so on, for each component.. then in the Package Manifest, revision it as v1000.4.a -- where the relationship is entirely obscure to me... you'd understand it, and the package users wouldn't care. I understand in this example it's MORE difficult to organize, but I'm hoping to clarify the 'no relationship' that actually exists between the code version within the code and the version in the Manifest.

Personally, I update Parent/Child apps independently and when I have a child only code update, the entire package is updated, because a "Package" is the smallest granularity of HPM. (Ignoring Modify, which focuses on components.)


So HPM is only looking at the versions on github and local hub and doing a string compare? If the strings are different then it's an update? The actual version strings are just for us humans.

If the package version changed but none of the Apps or Drivers versions changed would HPM still indicate there was an update available? I'm thinking maybe I'll just go with a perpetually increasing integer for the package version to break any appearance of connection with the app versions.


For Update, HPM loops through the installed Packages, reading in the PackageManifest.json for each, comparing against the internally stored data. (state.manifests)


But it's just a string compare right? As long as the "manifest" version string is different from the "installed" version string it will prompt that there is an update? I could go from 1.4.2 to a.b.c and it wouldn't care?

It's groovy and strings are, as you know, easy by default :slight_smile:

versionStr == installedVersionStr
versionStr is from the Package Manifest.json file, either beta version or version.
installedVersionStr is from hub memory of beta version or version.


How do I structure my releaseNotes: tag to allow me to have multiple well formatted lines as shown in the example below.

Don't see any reference to this in the docs but I may have missed it.


I use this site so I can see what I have going on and then the "escaped" output below you copy and paste into the JSON: JSON Escape / Unescape Online - AppDevTools


It's a free format field so.. just count.

"releaseNotes": "v1.9.0 Install 'location:' can't be empty.\n add color to download icon \n take advantage of endpoint for app code list in v2.3.6 \nv1.8.11 merge of: Add support for hub SSL (HTTPS) from kevdliu PR \nv1.8.10 correct File where contents are HTML [installFile() & uninstallFile()]\n fix for default installBundle() (tomw)\n",

For me formatting the HPM note, I count: >v1.9.0 < 9 columns/characters. The next line, to indent properly needs 9 spaces after the \n before the first word. Others may use a different count or method.


IMPO, any indent >= 1 provides sufficient readability as long as it's consistent. An indent of 0, or random/inconstant N, really messes up readability.


hello, HPM gives me this error whenever I open it or do anything:

[app:169] 2023-11-02 06:50:23.949 PM [error] Unable to get the app ID of the package manager

however, HPM works correctly, i can click on that error, it takes me to HPM. HPM will check for updates (will gen error), everything works fine, it just kicks out this error if i do anything in HPM. how can i fix this?