Skip to content

Commit

Permalink
SG-34298 Merge pull request #50 from shotgunsoftware/develop
Browse files Browse the repository at this point in the history
SG-34298 Flow rebranding
  • Loading branch information
julien-lang authored Mar 20, 2024
2 parents f864840 + 4d4e526 commit 954f545
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 43 deletions.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

Toolkit framework for integration with Autodesk Alias.

The main use of this framework is by the [Alias Engine](https://github.com/shotgunsoftware/tk-alias). The framework allows the engine to run alongside Alias, providing access to the ShotGrid Toolkit Apps that can interact wtih the data in Alias.
The main use of this framework is by the [Alias Engine](https://github.com/shotgunsoftware/tk-alias). The framework allows the engine to run alongside Alias, providing access to the Flow Production Tracking Toolkit Apps that can interact with the data in Alias.

### <a name="support"></a>Support

Expand All @@ -20,19 +20,19 @@ The main use of this framework is by the [Alias Engine](https://github.com/shotg

### <a name="alias_plugin"></a>Alias Plugin ###

This plugin is loaded by Alias and is the main entry point to integrating a Python client (e.g. ShotGrid) with Alias. This is maintained by the ShotGrid Automotive Team.
This plugin is loaded by Alias and is the main entry point to integrating a Python client (e.g. Flow Production Tracking) with Alias. This is maintained by the Flow Production Tracking Automotive Team.

File location: `dist/Alias/{python_version/{alias_version}/{plugin_name}.plugin`

### Alias Python API ###

The Python module that provides bindings to the C++ Alias API. This allows the Python client (e.g. ShotGrid) to interact with the Alias data. This is maintained by the ShotGrid Automotive Team.
The Python module that provides bindings to the C++ Alias API. This allows the Python client (e.g. Flow Production Tracking) to interact with the Alias data. This is maintained by the Flow Production Tracking Automotive Team.

File location: `dist/Alias/{python_version/{alias_version}/alias_api.pyd`

### <a name="toolkit_plugin"></a>Toolkit Plugin for Alias ###

The Toolkit Plugin is used by [plugin_bootstrap.py](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/plugin_bootstrap.py) to bootstrap the ShotGrid Alias Engine, which can be initiated by the Alias Plugin. This allows ShotGrid to be started up by Alias. See [dev](https://github.com/shotgunsoftware/tk-framework-alias/tree/main/dev#readme) for more details on how the Toolkit Plugin is built.
The Toolkit Plugin is used by [plugin_bootstrap.py](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/plugin_bootstrap.py) to bootstrap the Flow Production Tracking Alias Engine, which can be initiated by the Alias Plugin. This allows Flow Production Tracking to be started up by Alias. See [dev](https://github.com/shotgunsoftware/tk-framework-alias/tree/main/dev#readme) for more details on how the Toolkit Plugin is built.

File location: `dist/Toolkit/plugin/com.sg.basic.alias`

Expand All @@ -59,9 +59,9 @@ The framework can be used for any version of Alias (within the [support](#suppor
```
"C:\Program Files\Autodesk\AliasAutoStudio2024.0\bin\Alias.exe" -a as -P "C:\path\to\alias_plugins.lst"
```
3. Alias loads the plugin which will embed Python to access the Python modules to initialize ShotGrid and establish communication with Alias.
3. Alias loads the plugin which will embed Python to access the Python modules to initialize Flow Production Tracking and establish communication with Alias.

The [startup utils](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/startup.py) do all the necessary set up to ensure that Alias can load the plugin to initialize ShotGrid. See the main start up function [ensure_plugin_ready](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/startup.py#L536) for more details.
The [startup utils](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/startup.py) do all the necessary set up to ensure that Alias can load the plugin to initialize Flow Production Tracking. See the main start up function [ensure_plugin_ready](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/startup.py#L536) for more details.

Due to major changes to Alias starting in 2024.0, the framework essentially operates in two different modes. For Alias versions prior to 2024.0:

Expand Down
8 changes: 4 additions & 4 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@

At Autodesk, we know that the security of your data is critical to your studio’s
operation.
As the industry shifts to the cloud, ShotGrid knows that security and service
As the industry shifts to the cloud, Flow Production Tracking knows that security and service
models are more important than ever.

The confidentiality, integrity, and availability of your content is at the top
of our priority list.
Not only do we have a team of ShotGrid engineers dedicated to platform security
Not only do we have a team of Flow Production Tracking engineers dedicated to platform security
and performance, we are also backed by Autodesk’s security team, also invests
heavily in the security for broad range of industries and customers.
We constantly reassess, develop, and improve our risk management program because
we know that the landscape of security is ever-changing.

If you believe you have found a security vulnerability in any ShotGrid-owned
If you believe you have found a security vulnerability in any Flow Production Tracking-owned
repository, please report it to us as described below.


Expand All @@ -32,4 +32,4 @@ configurations, reproduction steps, exploit code, impact, etc.

## Additional Information

Please check out the [ShotGrid Security White Paper](https://help.autodesk.com/view/SGSUB/ENU/?guid=SG_Administrator_ar_general_security_ar_security_white_paper_html).
Please check out the [Flow Production Tracking Security White Paper](https://help.autodesk.com/view/SGSUB/ENU/?guid=SG_Administrator_ar_general_security_ar_security_white_paper_html).
2 changes: 1 addition & 1 deletion dev/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The `get-pip.py` script is not included to set up the embeddable Python packages

## Required Python Packages

The framework requires additional Python packages to the standard package that ShotGrid Toolkit ships with. To make these packages available to the framework, they must be included in the distribution directory `dist/Python/Python<MAJOR_VERSION><MINOR_VERSION>/packages`.
The framework requires additional Python packages to the standard package that Flow Production Tracking Toolkit ships with. To make these packages available to the framework, they must be included in the distribution directory `dist/Python/Python<MAJOR_VERSION><MINOR_VERSION>/packages`.

### What's included?

Expand Down
4 changes: 2 additions & 2 deletions dist/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ The framework includes distributed files:
- Python310
- [Required python packages](#required-python-packages) running the framework with 3.10

The Alias distributed files are maintained by the ShotGrid Automotive Team.
The Alias distributed files are maintained by the Flow Production Tracking Automotive Team.

## Toolkit Plugin

Expand Down Expand Up @@ -74,7 +74,7 @@ If the embeddable package needs to be updated, for example, to add more site-pac

## Required Python Packages

Additional Python packages are required to run the framework that ShotGrid Toolkit does not ship with. These packages are added to the Python system path at run time [here](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias/__init__.py#L11-L20). By including the packages in the path, these modules must be made available by either:
Additional Python packages are required to run the framework that Flow Production Tracking Toolkit does not ship with. These packages are added to the Python system path at run time [here](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias/__init__.py#L11-L20). By including the packages in the path, these modules must be made available by either:

1. Dynamically install packages from a requirements file to the user's AppData folder using pip install.
2. Pre-install packages to the framework.
Expand Down
14 changes: 7 additions & 7 deletions python/tk_framework_alias/server/alias_bridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ def alias_events_client_sio(self):

def start_server(self, host=None, port=None, max_retries=None):
"""
Start the server to communicate between Alias and ShotGrid.
Start the server to communicate between Alias and Flow Production Tracking.
This will create a new thread to serve the WSGI server application to listen for
client connections to the socketio server.
Expand Down Expand Up @@ -314,23 +314,23 @@ def bootstrap_client(self, client, client_info=None):
# Warning that the framework attempts to encrypt and decrypt the executable path
# for security, however it does not have a secure place to store the key, so for
# this reason it is currently turned off. Ideally we can store an encryption key
# in the ShotGrid database or a key vault. For ShotGrid clients, this is not an
# issue because the toolkit manager should be used to start the ShotGrid engine.
# in the Flow Production Tracking database or a key vault. For Flow Production Tracking clients, this is not an
# issue because the toolkit manager should be used to start the Flow Production Tracking engine.
#
# client_info = client_info or {}
# client_exec_path = os.environ.get("ALIAS_PLUGIN_CLIENT_EXECPATH")
# if client_exec_path:
# client_info["exec_path"] = client_exec_path

# Check for ShotGrid specific client info. ShotGrid clients do not provide a
# Check for Flow Production Tracking specific client info. Flow Production Tracking clients do not provide a
# bootstrap executable path, instead the plugin_bootstrap.py script is used
# from within the framework.
pipeline_config_id = os.environ.get(
"ALIAS_PLUGIN_CLIENT_SHOTGRID_PIPELINE_CONFIG_ID"
)
entity_type = os.environ.get("ALIAS_PLUGIN_CLIENT_SHOTGRID_ENTITY_TYPE")
entity_id = os.environ.get("ALIAS_PLUGIN_CLIENT_SHOTGRID_ENTITY_ID")
# A client is considered a ShotGrid client if it provides an entity type and id.
# A client is considered a Flow Production Tracking client if it provides an entity type and id.
# The pipeline configuration is optional, since an unmanaged pipeline could be in
# use. In that case, the default will be the latet basic config in the app store.
if entity_type is not None and entity_id is not None:
Expand Down Expand Up @@ -359,7 +359,7 @@ def bootstrap_client(self, client, client_info=None):
# Get the client executable and args
shotgrid_info = client["info"].get("shotgrid")
if shotgrid_info:
# Bootstrap using ShotGrid toolkit manager
# Bootstrap using Flow Production Tracking manager
pipeline_config_id = shotgrid_info["pipeline_config_id"] or ""
entity_type = shotgrid_info["entity_type"]
entity_id = shotgrid_info["entity_id"]
Expand Down Expand Up @@ -400,7 +400,7 @@ def bootstrap_client(self, client, client_info=None):
# ]
raise ClientBootstrapMethodNotSupported(
"""
Bootstrapping Alias client via executable path is currently not supported. Only ShotGrid clients supported.
Bootstrapping Alias client via executable path is currently not supported. Only Flow Production Tracking clients supported.
Client info: {client_info}
""".format(
client_info=pprint.pformat(client_info)
Expand Down
12 changes: 6 additions & 6 deletions python/tk_framework_alias_utils/plugin_bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def toolkit_plugin_bootstrap(
from sgtk.platform.engine_logging import ToolkitEngineHandler

# Create the Qt app
app_name = "ShotGrid for Alias"
app_name = "Flow Production Tracking for Alias"
app = QtGui.QApplication([app_name])
app.setApplicationName(app_name)
app.setQuitOnLastWindowClosed(False)
Expand All @@ -106,14 +106,14 @@ def toolkit_plugin_bootstrap(
# the event loop starts.
engine.post_qt_init()

# Log message to Alias prompt indicating that ShotGrid is ready
engine.alias_py.log_to_prompt("ShotGrid initialized")
# Log message to Alias prompt indicating that Flow Production Tracking is ready
engine.alias_py.log_to_prompt("Flow Production Tracking initialized")

# This will block and not return until ShotGrid app exits.
# This will block and not return until Flow Production Tracking app exits.
ret = app.exec_()
logger.info("ShotGrid QApplication exited with return code: %s" % ret)

# Clean up ShotGrid components
# Clean up Flow Production Tracking components
root_logger = sgtk.LogManager().root_logger
handlers = list(root_logger.handlers)
while handlers:
Expand All @@ -133,7 +133,7 @@ def toolkit_plugin_bootstrap(

if __name__ == "__main__":
"""
Bootstrap the ShotGrid Alias Engine application.
Bootstrap the Flow Production Tracking Alias Engine application.
This script calls the `bootstrap_engine` method with the script args to do the work.
Expand Down
34 changes: 17 additions & 17 deletions python/tk_framework_alias_utils/startup.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ def get_plugin_environment(
version of Python will be used when creating a new process to execute the client.
ALIAS_PLUGIN_CLIENT_NEW_PROCESS - "1" if the client should execute in a separate
process than Alias, else "0"
ALIAS_PLUGIN_CLIENT_SHOTGRID_PIPELINE_CONFIG_ID - For ShotGrid clients, the id of the
ALIAS_PLUGIN_CLIENT_SHOTGRID_PIPELINE_CONFIG_ID - For Flow Production Tracking clients, the id of the
pipeline configuration can be set for the Toolkit Manager to bootstrap the engine
ALIAS_PLUGIN_CLIENT_SHOTGRID_ENTITY_TYPE - For ShotGrid clients, the entity type can be
ALIAS_PLUGIN_CLIENT_SHOTGRID_ENTITY_TYPE - For Flow Production Tracking clients, the entity type can be
set for the Toolkit Manager to bootstrap the engine
ALIAS_PLUGIN_CLIENT_SHOTGRID_ENTITY_ID - For ShotGrid clients, the entity id can be set
ALIAS_PLUGIN_CLIENT_SHOTGRID_ENTITY_ID - For Flow Production Tracking clients, the entity id can be set
for the Toolkit Manager to bootstrap the engine
ALIAS_PLUGIN_CLIENT_SIO_HOSTNAME - the host for the socketio server to connect to
ALIAS_PLUGIN_CLIENT_SIO_PORT - the port number for the socketio server to connect to
Expand Down Expand Up @@ -669,30 +669,30 @@ def ensure_plugin_ready(
"""
Do the necessary work to ensure the Alias plugin can be loaded with Alias at launch.
Starting in Alias 2024.0, Qt is now used for Alias UI. This conflicts with ShotGrid Qt
because Alias is a QtQuick/QML application, while ShotGrid is a QWidget application.
QWidgets cannot be created within an application using QtQuick/QML, so ShotGrid must
Starting in Alias 2024.0, Qt is now used for Alias UI. This conflicts with Flow Production Tracking Qt
because Alias is a QtQuick/QML application, while Flow Production Tracking is a QWidget application.
QWidgets cannot be created within an application using QtQuick/QML, so Flow Production Tracking must
run in a separate process than Alias. Thus, the Alias plugin for Alias 2024 and later
differs quite a bit from Alias before 2024.0:
For Alias < 2024.0:
- ShotGrid will run in the same process as Alias, which means the Qt application is
shared between Alias and ShotGrid. Alias does not use Qt, so effectively ShotGrid
- Flow Production Tracking will run in the same process as Alias, which means the Qt application is
shared between Alias and Flow Production Tracking. Alias does not use Qt, so effectively Flow Production Tracking
owns it
- Alias will be launched with the -P param to specify the Alias Plugin to load at
start up with Alias
- The Alias Plugin will embed Python and call the tk-alias `start_engine` method to
start up ShotGrid
start up Flow Production Tracking
For Alias >= 2024.0:
- ShotGrid will run in a separate process than Alias; Alias will have its own Qt
application (in QtQuick/QML) and ShotGrid will have its own Qt application (in
- Flow Production Tracking will run in a separate process than Alias; Alias will have its own Qt
application (in QtQuick/QML) and Flow Production Tracking will have its own Qt application (in
QWidgets)
- Alias will be launched with the -P param to specify the Alias Plugin to load at
startup with Alias
- The Alias Plugin will embed Python to start a socketio server to handle communication
between Alias and ShotGrid, as well as use the Toolkit Manager to bootstrap the
ShotGrid Alias Engine
between Alias and Flow Production Tracking, as well as use the Toolkit Manager to bootstrap the
Flow Production Tracking Alias Engine
- The Python version used when embedding in the Alias process must be have installed
a PySide2 version that matches the Qt version that Alias is using (5.15.0). For this
reason, the framework may need to install a specific Python version in order to have
Expand All @@ -704,14 +704,14 @@ def ensure_plugin_ready(
:type alias_exec_path: str
:param client_name: A name of the application that is launching Alias with the plugin.
:type client_name: str
:param pipeline_configuration_id: If the client is running within ShotGrid, set the id of
:param pipeline_configuration_id: If the client is running within Flow Production Tracking, set the id of
the pipeline configuration used by the Toolkit Manager to bootstrap the engine from the
plugin.
:type pipeline_config_id: int
:param entity_type: If the client is running within ShotGrid, set the entity type used by
:param entity_type: If the client is running within Flow Production Tracking, set the entity type used by
the Toolkit Manager to bootstrap the engine from the plugin.
:type entity_type: str
:param entity_id: If the client is running within ShotGrid, set the entity id used by
:param entity_id: If the client is running within Flow Production Tracking, set the entity id used by
the Toolkit Manager to bootstrap the engine from the plugin.
:type entity_id: int
:param debug: Set to True to turn on debugging for the plugin, else False.
Expand All @@ -732,7 +732,7 @@ def ensure_plugin_ready(
new_process = True

# Check the basic.alias Toolkit plugin is installed and up to date. This is used by
# the Alias Plugin to bootstrap the ShotGrid Alias Engine.
# the Alias Plugin to bootstrap the Flow Production Tracking Alias Engine.
ensure_toolkit_plugin_up_to_date(logger)

# Alias 2024.0 is running with Qt 5.15.0, which means the PySide2 version used by the
Expand Down

0 comments on commit 954f545

Please sign in to comment.