Skip to content

pluginRelease


PluginRelease UI Class.

=== Author: Assaf Ben Zur ===

This admin util is used to procedurally release the mnsPlugins library and version control it.

The UI will find c++ projects based on a directory (which can be changed), and will allow the user (admin) to add it to the next build.

On top of that, the UI will find the latest released version and extract the existing library within it, and update the release colums accordingly.

In case a plugin build exists in the latest version, but it's build project isn't available, the plugin will add to the release option with a flag "[version]"-

This means that the plugin can only be copied from the version selected to the next release- it cannot bild.

Of course this behaviour means that the internal version of the plugin will not change (expected behaviour) to inform the user of the ACTUAL plugin version.

This Tool is meant to BUILD the project on each release as opposed to getting a copy of n .mll file.

This means that the VS project will have to be maintained (expected) in order to be released- hence keeping up to date with maya's releases.

The tool contains a version release choice between patch/minor/major and none.

All mnsReleases, including this tool will mark a version with a suffix of the path version . a dateTime stamp.

This tool also includes a maya version choice for release which will access a different build configuration within the VS project.

The tool accesses the version parameter using a custom macro inserted into the VS project- which will be written with the user version choice- in order for the user to see the correct version when using the plugin-manager "info".



Classes


MnsPluginBuild [Class]

MnsPluginBuild Class. A conviniency class.

This class will contain eixsting plugin builds.

Should contain a plugin name, directory, buildAvailable (bool), and a prevVerDirectory if a build is not available"

Used to access information in a clean manner.


Constructor: MnsPluginBuild(name(str) ; [default: ""],direct(str) ; [default: ""],buildAvailable(bool) ; [default: False],prevVerDirectory(str) ; [default: ""])
Inherits from: object
Class Members:
    • pluginName
    • pluginDirectory
    • buildAvailable
    • prevVerDirectory


MnsPluginRelease [Class]

pluginRelease UI class


Constructor: MnsPluginRelease(parent(str) ; [default: mnsUIUtils.get_maya_window()])
Inherits from: form_class, base_class
Class Members:
    • pluginBuilds
    • existingPluginNames
    • existingVersionsFoundNames
    • latestVersionPath
Methods:

MnsPluginRelease methods


buildPlugin [MnsPluginRelease class method]

Constructor: buildPlugin(self, MnsPluginBuild = None, cMakeDir = None, newVersionRootDir = None, plat = "win", versionString = None)
Return: None
Arguments:
  • self
  • MnsPluginBuild(str) ; [default: None]
  • cMakeDir(str) ; [default: None]
  • newVersionRootDir(str) ; [default: None]
  • plat(str) ; [default: "win"]
  • versionString(str) ; [default: None]
Optional Arguments:

connectSignals [MnsPluginRelease class method]


Connect all the UI signals

Constructor: connectSignals(self)
Return: None
Arguments:
  • self
Optional Arguments:

dirChanged [MnsPluginRelease class method]


User directory changed trigger action

Constructor: dirChanged(self)
Return: None
Arguments:
  • self
Optional Arguments:

getCMakeBaseDir [MnsPluginRelease class method]

Constructor: getCMakeBaseDir(self)
Return: None
Arguments:
  • self
Optional Arguments:

getLastestReleaseVer [MnsPluginRelease class method]


Get the latest version for the build directory

Constructor: getLastestReleaseVer(self)
Return: None
Arguments:
  • self
Optional Arguments:

getNewVerString [MnsPluginRelease class method]


Get a new vesrtion string based on user version element upgrade. Return as a string.

Constructor: getNewVerString(self)
Return: string (new version id as string)
Arguments:
  • self
Optional Arguments:

getVersionsForBuild [MnsPluginRelease class method]


Get all valid maya versions for the plugin build directory passed.

Constructor: getVersionsForBuild(self, buildDir)
Return: list (compatibleVersions)
Arguments:
  • self
  • buildDir
Optional Arguments:

initExistingDirs [MnsPluginRelease class method]


Initialize existing directory.

Find all available builds for the selected directory.

Constructor: initExistingDirs(self)
Return: None
Arguments:
  • self
Optional Arguments:

linux_mnsLicDigest_2024_addExtraCMakeLines [MnsPluginRelease class method]

Constructor: linux_mnsLicDigest_2024_addExtraCMakeLines(self, cmakeListsFile = None)
Return: None
Arguments:
  • self
  • cmakeListsFile(str) ; [default: None]
Optional Arguments:

linux_mnsLicDigest_addExtraCMakeLines [MnsPluginRelease class method]

Constructor: linux_mnsLicDigest_addExtraCMakeLines(self, cmakeListsFile = None)
Return: None
Arguments:
  • self
  • cmakeListsFile(str) ; [default: None]
Optional Arguments:

loadWindow [MnsPluginRelease class method]


Main window load

Constructor: loadWindow(self)
Return: None
Arguments:
  • self
Optional Arguments:

releasePluginVer [MnsPluginRelease class method]


Main version release button trigger.

Compiles all needed information based on user UI slections, and triggers a new version build.

Constructor: releasePluginVer(self)
Return: None
Arguments:
  • self
Optional Arguments:

releasePluginVer_legacy [MnsPluginRelease class method]


Main version release button trigger.

Compiles all needed information based on user UI slections, and triggers a new version build.

Constructor: releasePluginVer_legacy(self)
Return: None
Arguments:
  • self
Optional Arguments:

selectDevDir [MnsPluginRelease class method]


Change dev directory trigger action.

Prompts a directory-select dialog for the user to change the dev directory.

A directory change will trigger a 'text-changed' signal emit.

Constructor: selectDevDir(self)
Return: None
Arguments:
  • self
Optional Arguments:

selectRelDir [MnsPluginRelease class method]


Change release directory trigger action.

Prompts a directory-select dialog for the user to change the release directory.

A directory change will trigger a 'text-changed' signal emit.

Constructor: selectRelDir(self)
Return: None
Arguments:
  • self
Optional Arguments:

sortLists [MnsPluginRelease class method]


Simple function to re-sort both culomn items.

Used Throughout to simply update the display

Constructor: sortLists(self)
Return: None
Arguments:
  • self
Optional Arguments:

splitVerStringToList [MnsPluginRelease class method]


split version string to a path/minor/major/timestamp elements

Constructor: splitVerStringToList(self, versionString)
Return: list (versionString)
Arguments:
  • self
  • versionString
Optional Arguments:


Defenitions


loadPluginRelease

Load the plugin Release UI from globals, avoid UI duplication.


Constructor: loadPluginRelease()
Return: None
Arguments:
Keyword Arguments: