Ticket #25711 - Added command to copy the raw apps settings from one engine to another.  Closes issue #89.
Improved error message when updating core and a subdirectory is missing.
For #25697 - deprecated `engine_init()` from the base Engine class.
This method has now been replaced with `pre_app_init()` which should be used instead.  `engine_init()` will still be called for backwards compatibility but will be fully removed in the future.
For #25697 - Fixed Tk dialog so that UI's aren't oversized in 3ds Max
Previously the layout of the widgets in the configuration panel would cause the minimum size of a Toolkit dialog to be too large!
Closes #88.
for #25443 update embedded Shotgun API to v3.0.17
This adds support for authenticating as a HumanUser as well as being able to sudo as a user. Both are instrumental in future development of Toolkit as we allow expand how users are authenticated via Toolkit.
Includes a fix for a bug in the mimetypes library in Python 2.7. There are certain installers on Windows that will (incorrectly) add non-Latin characters to the registry. This usually only happens if you are located in an area where unicode characters are more widely required. The mimetypes library in Python 2.7 ​chokes on these non-Latin characters causing a UnicodeDecodeError. To work around this error, we have bundled a patched version of the mimetypes library and fall back on that if we encounter this issue during runtime. Full release notes are on the Python API project page https://github.com/shotgunsoftware/python-api/tree/v3.0.17
For #25952 - Fixed PyQt compatibility issue
Some old versions of PyQt don't have the Q*Animation classes that were introduced in Qt 4.6
Closes #91
#25983 Added null-check in environment to better support empty engines.
This fixes an issue where it was previously not possible to install apps
into some empty engine config setups.
Merge branch 'master' of ssh://github.com/shotgunsoftware/tk-core
[minor] Made the tank copy_apps command API access only for now.
It's an expert level command and we don't anticipate a high usage
frequency so making it API only in order to not make the command line
cognitive load greater than it already is. We should probably consider
moving a couple of the other commands into some sort of "lesser used"
section too to make it easy to spot the commonly accessed commands.
#25815 improve error for missing yml files when using $ syntax
Especially when moving your schema around, it's easy to misplace a yml file that is defining dynamic content. This will raise a `TankError` which has useful detail but is quite cryptic. This improves the error a bit while retaining all of the details and offers a possible solution that the specific yml file is that defines this dynamic content may be missing.
#25757 Added tank commands to "unlocalize" core.

This adds two new commands which allows for a localized configuration to
be repointed to an external core:

share_core
----------
When new projects are created, these are often created in a state where
each project maintains its own independent copy of the core API. This
command allows you to take the core for such a project and move it out
into a separate location on disk. This makes it possible to create a
shared core, where several projects share a single copy of the Core API.
Note: if you already have a shared Core API that you would like this
configuration to use, instead use the attach_to_core command.

attach_to_core
--------------
When new projects are created, these are often created in a state where
each project maintains its own independent copy of the core API. This
command allows you to attach the configuration to an existing core API
installation rather than having it maintain its own embedded version of
the Core API. Note: If you don't have a shared core API yet, instead use
the share_core command.

closes #94
#25760 #25759 Project setup refactor, auto-path and storageless setups

This change contains several larger functionality tweaks:

- A new mode called 'auto_path' has been added to setup_project. This
mode is available via the API only and allows a project to be set up in
such a way that no pipeline configuration path entries are associated
with the project. This means that the project is not accessible from a
studio level tank command nor from within shotgun. The only way to
access it is via its built-in tank command. This is an intermediate mode
which we are putting in with the expectation of a coming change which
will allow entire configurations to be zipped up, uploaded and managed
from within shotgun itself, a so called cloud based config.

- Toolkit now supports the notion of a project without any storages.
Previously, a project needed to at least have a primary storage. A
storage less project does not have an associated project data location
and therefore no path cache. Some toolkit functionality is also not
relevant, for example folder creation, and will raise error messages if
you try to execute it on a project which doesn't have storages defined.

- The project setup structure has been extensively refactored and
reshuffled in order to create a new accessor in the form of a wizard
interface, which will be used by our upcoming shotgun desktop workflows.
The functionality of all existing commands and APIs remain the same
(apart from some tweaks in the output these commands generate).

Closes #90.
[minor] Tweaks and adjustments following code review.
[minor] Logic tweaks to how the Core API is picked up in setup wizard.
#26094 Improved move_configuration command.
The command now supports moving some platforms rather than all. It also
supports adding and modifying platforms other than the current OS. In
line with the logic and instructions added to the core unlocalize
command suite, the restriction for localized configs have been lifted
and instead been replaced with a warning message.
[minor] Improved error message for deleted auto path confgurations.
Closes #95.
For #25951 - Added UDIM support to the Sequence key
- This is to support UDIM texture sequences as exported from Mari
- Updated template key tests to include UDIM format strings
Closes #96
#25973 Parse Localize

This adjusts the localize command to be a little less blunt.

Previously, it would copy all versions of apps, engines etc. across from
the core api source location to the pipeline configuration. Now it
instead iterates over all descriptors currently used by the environments
and only copies those across. For large studio locations where there has
been a buildup of versions, this will improve performance of the
localize process.

Closes #97
For #26168 - Fix to allow a template that specifies the storage root
For example, the template 'project_root: /' would now correctly validate
against the project storage root that the template is defined for.
Previously this would fail!
Merge branch 'master' of ssh://git@github.com/shotgunsoftware/tk-core.git