Table Of Contents

Previous topic

Welcome to oyProjectManager’s documentation!

Next topic

oyProjectManager

This Page

Version History

0.2.1

  • Fixed a bug when a Project doesn’t have any Sequence, create() will raise OSErrors about not being able to create the resultant directory which is an empty string.
  • Because at time of this release it was hard to reach PySide on every platform, the system has been moved back to PyQt4 for now. PySide will definitely be used in the future, when all the main programs (Maya, Houdini and Nuke) are supporting it (for now it is just Nuke which is delivered with PySide).
  • Fixed Conf it now saves the last_user_id properly
  • Fixed version_creator UI, it now saves and retrieves the last user choice properly.
  • Fixed version_creator UI, it now only displays Versions with type available to the current environment if there is any environment passed to it.
  • Now in MayaEnv and NukeEnv the output file also includes the Project code and if it is a Shot Version then it also includes the Sequence code in the output file names (ex. rendered images).

0.2.0

  • Updated the license to BSD 2.
  • Updated the license text on module headers.

0.2.0.b1

  • The fullpath and the path attributes of the Project will not be stored in the database anymore. But instead they will be generated from the path and code attributes.
  • The concept of paths are enhanced. Now all the paths stored in the database is relative to the repository root. So the path attribute of Version class is an relative path to the server_path attribute of Repository class. And the templates in the VersionType should be designed in that way.
  • Fixed a bug where all the Versions for the same Shot or Asset with the same take_name considered in the same version queue. Thus Version.is_latest_version() and Version.max_version were not working properly.
  • Removed the description field from the version_creator UI to make the interface more compact and also this kind of information will be available in the web ui.
  • Added get_version_from_fullpath, get_versions_from_path, and trim_server_path, methods to EnvironmentBase class.
  • Added dependency_update_list() property to the Version class. Which returns a list of Version instances which are referenced by this Version or are referenced by the references of this Version and those have newer versions in the database, resulting a deeper update information.
  • Fixed a little bug, it is now possible to create VersionableBase instances ( Asset and Shot instances particularly) with the same code value if their project_id is not the same.
  • To be able to make the name attribute in the Asset unique, the column moved to the VersionableBases table which also has the project_id column.
  • Moved the description attribute to the
VersionableBase class, which
was a common attribute for the Asset` and Shot classes.
  • The version_number attribute is now depending on to the version_of attribute instead of the base_name attribute, to prevent the version_number from being started over from 1 again in case of renames in VersionableBase instances attached to a particular Version instance.
  • Updated the project_manager ui.
  • Sequence will not accept strings for the project argument anymore.
  • The name and code attributes of Sequence class is now working as expected.

0.2.0a2

  • Because every project had its own SQLite3 database it was hard to manage the same User in different projects, for that reason the system now uses a central database whose placement (if SQLite3) is defined by the config.py. Also, the system is able to use different databases than SQLite3. This latest improvement added another level of flexibility to the system.
  • The assetManager.py is renamed to version_creator.py to reflect its functionality more clearly. And the interface is redesigned from scratch and programmed with TDD practices.
  • Because there is a bug in the Beaker package, reintroduced the oyProjectManager.utils.cache module.
  • Added extension attribute to the Version class.
  • Version class now has extension and output_path attributes.
  • Renamed the environments back to mayaEnv.py, houdiniEnv.py, nukeEnv.py and photoshopEnv.py
  • Added an attribute called project to the Version class which is a shortcut to the Version.version_of.project
  • Added absolute_path attribute to the Version class which returns the absolute path of the version to the Project root
  • The fullpath attribute in Version now returns an absolute path.
  • The duty of the name attribute of the Project class is now shifted to the code attribute, thus, the name of the Project can now be freely changed, without effecting the file management.
  • Updated the add_shots(), add_alternative_shot() and get_next_alternate_shot_number() methods in Sequence class.
  • Added resolution presets to the config file.
  • Added active attribute to the Project class to track the status of the Project.

0.2.0a1

  • The system now uses SQLAlchemy Declarative in its data models. And a new settings file located in the Project root with the name .metadata.db is governed to hold the related data for that Project. The system doesn’t scan the file system anymore but instead uses this .metadata.db SQLite3 file. There are a lot of interface changes in the classes:

    • The Project.sequenceNames and Project.updateSequenceList methods are no longer needed and they don’t exist anymore.

    • There is no readSettings method in any of the classes anymore. All the settings are read from the database (by retrieving an instance from the db) as the instance is created.

    • All the XML parsing code is removed. So there is no backward compatibility.

    • It was very hard keep the compatibility with the previous versions. So, the version 0.2.0 is not backward compatible. The system will look with blinking eyes if you try to use it with an old Project.

    • The methods:

      • _parseSequenceDataNode
      • _parseStructureNode
      • _parseAssetTypesNode
      • _parseShotListNode
      • _parseShotDataNode
      • create
      • createShots
      • _sortShots
      • getShot
      • shotList
      • structure
      • createStructure
      • convertToShotString
      • convertToRevString
      • convertToVerString
      • convertToShotNumber
      • convertToRevNumber
      • convertToVerNumber
      • shotPadding
      • shotPrefix
      • getAssetTypes
      • getAssetTypeWithName
      • getAssetFolders
      • projectName
      • getAllAssets
      • getAllAssetsForType
      • getAllAssetFileNamesForType
      • getAssetBaseNamesForType
      • getAllAssetsForTypeAndBaseName
      • filterAssets
      • filterAssetNames
      • generateFakeInfoVariables
      • aFilter
      • undoChange
      • path
      • fullpath
      • projectName
      • timeUnit
      • isValid
      • addNewAssetType
      • exists
      • noSubNameField

      of the Sequence are removed. They were preliminarily used for fake database query like behaviour which is greatly handled by SQLAlchemy right now.

  • All the models are now placed under one module called oyProjectManager.core.models. Thus deleted the old oyProjectManager.models.project, oyProjectManager.models.asset, oyProjectManager.models.user modules and the oyProjectManager.models module itself.

  • utils.convertRangeToList is renamed to uncompress_range().

  • Introduced the new Version class which from now on will hold the references to the individual files for every version created for an Asset or Shot in the repository. So contrary to the previous implementation an Asset is not the reference of the individual version files of itself any more.

  • Introduced the VersionableBase class in which the Shot and Asset is derived from. Thus allow them to hold references to Versions.

  • The Repository now uses the REPO environment variable instead of STALKER_REPOSITORY_PATH.

  • All the project settings are now stored in the Project class.

  • The timeUnit concept is replaced with fps. To define the timeUnit (which is very much a specific naming convention for Maya only) set the fps of the Project class.

  • It is now possible to set a project image format by setting the width, height, pixel_aspect attributes of the Project class.

  • The Shot class now initializes with the number attribute and the code attribute of the Shot composed from the number and the shot_prefix and shot_padding attribute of the Project class.

  • There is no Structure class anymore. The function is accomplished by the Project class itself.

  • The system now uses the OYPROJECTMANAGER_PATH to search a file called conf.py and uses this file to configure the system. See config documentation for more details.

  • Renamed the environment modules:

    • houdiniEnv.py –> houdini.py
    • mayaEnv.py –> maya.py
    • nukeEnv.py –> nuke.py
    • photoshopEnv.py –> photoshop.py

    To ease the move of separate environment class concept, which will be introduced in version 0.3.0

  • Updated the Repository, now it is only doing repository related things. The following methods are removed:

    • _init_repository_path_environment_variable (no environment variables to init anymore)

    • _parse_repository_settings (nothing to parse anymore)

    • projects (use Repository.project_names instead)

    • valid_projects (use Repository.project_names all the names are for valid projects -projects with .metadata.db- only)

    • users (it is Projects duty to return a list of users in the project, and a full list of user names and corresponding user name initials can be retrieved from oyProjectManager.config.Config.users)

    • user_names (can be retrieved from oyProjectManager.config.Config.users)

    • user_initials (can be retrieved from oyProjectManager.config.Config.users)

    • _parse_users (nothing to parse anymore)

    • createProject (use:

      from oyProjectManager.core.models import Project
      new_proj = Project("NEW_PROJECT")
      new_proj.create()
      

      no need to introduce a new method)

    • defaultFiles (is handled by the environments, not by the repository)

    • default_settings_file_full_path (no default settings file anymore)

    • home_path (it is os.path.expanduser(“~”) no need to create new method)

    • last_user (use oyProjectManager.config.Config.last_user_initial instead)

    • get_project_and_sequence_name_from_file_path (use oyProjectManager.core.models.Repository.get_project_name() instead, it is not possible to get the Sequence name for now)

    • settings_dir_path (no settings dir)

    • time_units (no time unit concept, use fps instead)