Package: houdini_package_manager
Houdini Package ManagerA comprehensive GUI package manager for Houdini. Manage all your plugins and create new packages with ease.Download the application:https://houpm.comGithub repository:https://github.com/ariffjeff/houdini-package-managerPyPI repository:https://pypi.org/project/houdini-package-managerHow it WorksHPM is a Python application that basically grabs your plugins' package config files and converts them into a nice UI with a bunch of useful functionality.1. On a high level, HPM does this for all installed versions of Houdini it finds upon startup:Gets Houdini's environment variable key value pairs.Gets the raw json package config data (some values might contain variables), typically found in/packages.Uses the Houdini environment variables to resolve the package config variables. The data as a whole is also simplified.Creates arbitrary objects from this resolved package config/plugin data.Converts this package/plugin data into a Pyside6 UI with accompanying functionality.This is all then built into an executable withPyinstaller.2. Creating package configs for new plugins:You can create new package configs for plugins you have downloaded to quickly get them into Houdini hassle free.HPM takes the plugin folder path, HDA, or script you provide it and simply creates a new package config from a template, and puts it in/packages.InstallDownload the latest version fromhttps://houpm.comUnzip and store the folder anywhere you want.Create a shortcut of the Houdini_Package_Manager-x.y.z.exe file from the folder.Now you can run HPM from the shortcut, that's all there is to it!Building the project yourselfNote: This project was primarily tested with Python 3.9.10.Install thePoetry dependency manager.CloneHPMOpen a terminal, andcdto it.Dopoetry installMake your code changes and commit themIf you're adding other files/images/vectors/etc., put them somewhere appropriate inhoudini_package_manager/resources/Version bump (optional)Automatic version bump:Dopoetry version minor. Usemajororpatchin place ofminorif appropriate. These will automatically be updated:pyproject.toml__version__in__init__.py. (if the Poetrypoetry-bumpversionplugin is installed)The relevant HTML inhoupm.com. (auto updated later bymake prepare)The final executable and .zip file/folder names. (auto updated later bymake prepare)Manual version bump:Dopoetry version 1.2.3Commit the version bump later along with a new build (keep reading next steps).Domake prepareThis does all the final build management automatically by running a bunch of other commands.Review these make commands only if you need to use them individually...make testruns the project pytests. Skip them withmake prepare TEST=0make build-exebuilds the project. It will appear indist/resources/is copied to the build folder automatically so you don't have to worry about it.The build folder and .exe name is determined by the version number set by the result ofpoetry version ...(referenced in the Makefile)make zipzips the build indist/make dist-movecreates a copy of the dist build in the HouPM website dist_hpm folder.make update-houpmupdates HPM version html in houpm website.Run/test the build (sanity check)Run the buildDifferent methods:Go todist/, find the .exe and run it.Or domake run-exe.Be aware this doesn't run it directly in the folder its in, which can lead to the issue of relative file paths not being able to find the files they're targetting if the paths have been set improperly... i.e. images failing to load. Make sure you set file paths withutils.epath()which automatically handles relative paths correctly for both the dev and build environment.If you get unexpected behavior or a crash:Check the app folder for a .log crash file.Crash log files currently are timestamped/created immediately upon exe run. If HPM is closed (not from a crash and not via the debug console) then the log file will be deleted.Domake build-exe-logto make an exe that displays a debug console on run which you can inspect. If any errors occur you'll be able to see them there.CommitCommit both the version bump (mentioned before) and the new build .zip together.The commit message should just be the version number (e.g.1.3.2) for convention.Try not to commit anything else with these for simplicity.Tag the commitThe tag name should be the version number (e.g.1.3.2) for convention.You can do this by right clicking the commit if you're using a GUI likeGitHub Desktop.Push and pull requestName the pull request the version number (e.g.1.3.2).Merge to the relevant branch.Hopefully you haven't pushed directly to main.Create a new releaseOn GitHub, go to Releases.Select the tag version number (e.g.1.3.2) from the dropdown.Name the title the same version number.ClickGenerate release notes.Add any extra descriptive changes for this release.Click publish.PyPI will automatically be updated with the new HPM version via a GitHub action.