Skip to content

Commit a79dcc3

Browse files
authored
Merge pull request #24 from shotgunsoftware/develop
Release v1.2.0
2 parents c5a5ece + bbe6afd commit a79dcc3

File tree

86 files changed

+813
-32486
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+813
-32486
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ File location: `dist/Alias/{python_version/{alias_version}/alias_api.pyd`
3131

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

34-
The Toolkit Plugin is used by [plugin_bootstrap.py](https://github.com/shotgunsoftware/tk-framework-alias/blob/main/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.
34+
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.
3535

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

@@ -60,7 +60,7 @@ The framework can be used for any version of Alias (within the [support](#suppor
6060
```
6161
3. Alias loads the plugin which will embed Python to access the Python modules to initialize ShotGrid and establish communication with Alias.
6262

63-
The [startup utils](https://github.com/shotgunsoftware/tk-framework-alias/blob/main/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/main/python/tk_framework_alias_utils/startup.py#L536) for more details.
63+
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.
6464

6565
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:
6666

@@ -80,7 +80,7 @@ For Alias 2024.0 and later:
8080
- The Alias Engine will establish a connection to the Alias Python API server to interact with the data in Alias
8181
- the Alias Engine will create a Qt Application and start its own event loop to display Toolkit UI alongside Alias
8282

83-
The plugin will use the [AliasBridge](https://github.com/shotgunsoftware/tk-framework-alias/blob/main/python/tk_framework_alias/server/alias_bridge.py#L33) object to manage the Alias Python API server. The [plugin_bootstrap.py](https://github.com/shotgunsoftware/tk-framework-alias/blob/main/python/tk_framework_alias_utils/plugin_bootstrap.py) script will called to bootsrap the Alias Engine. The Alias Engine will create a [client](https://github.com/shotgunsoftware/tk-framework-alias/blob/main/python/tk_framework_alias/client/socketio/client.py) to connect to the Alias Python API server.
83+
The plugin will use the [AliasBridge](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias/server/alias_bridge.py#L33) object to manage the Alias Python API server. The [plugin_bootstrap.py](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/plugin_bootstrap.py) script will called to bootsrap the Alias Engine. The Alias Engine will create a [client](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias/client/socketio/client.py) to connect to the Alias Python API server.
8484

8585
<br/>
8686

SECURITY.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Security Policy
2+
3+
## Security
4+
5+
At Autodesk, we know that the security of your data is critical to your studio’s
6+
operation.
7+
As the industry shifts to the cloud, ShotGrid knows that security and service
8+
models are more important than ever.
9+
10+
The confidentiality, integrity, and availability of your content is at the top
11+
of our priority list.
12+
Not only do we have a team of ShotGrid engineers dedicated to platform security
13+
and performance, we are also backed by Autodesk’s security team, also invests
14+
heavily in the security for broad range of industries and customers.
15+
We constantly reassess, develop, and improve our risk management program because
16+
we know that the landscape of security is ever-changing.
17+
18+
If you believe you have found a security vulnerability in any ShotGrid-owned
19+
repository, please report it to us as described below.
20+
21+
22+
## Reporting Security Issues
23+
24+
**Please do not report security vulnerabilities through public GitHub issues.**
25+
26+
Instead, please report them by sending a message to
27+
[Autodesk Trust Center](https://www.autodesk.com/trust/contact-us).
28+
29+
Please include as much information as you can provide such as locations,
30+
configurations, reproduction steps, exploit code, impact, etc.
31+
32+
33+
## Additional Information
34+
35+
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).

dev/README.md

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44

55
- Windows
66

7-
The framework has a couple pre-release steps:
7+
The framework has pre-release steps:
88

99
1. Include a pre-built [Toolkit Plugin](#build_toolkit_plugin)
1010
2. Include any necessary [embeddable Python packages](#embed_py_package)
11+
3. Include any [required Python packages](#required-python-packages)
1112

1213
## <a name="build_toolkit_plugin"></a> Build the Toolkit Plugin
1314

14-
The framework provides the functionality to bootstrap a Toolkit engine (e.g. [tk-alias](https://github.com/shotgunsoftware/tk-alias)) using the the [ToolkitManager](https://github.com/shotgunsoftware/tk-core/blob/master/python/tank/bootstrap/manager.py). A Toolkit Plugin must be created in order to intialize the manager to bootstrap an engine. The framework provides build scripts to generate the plugin bundle; after running the build, it will create the `com.sg.basic.alias` plugin bundle in the `dist/Toolkit/plugin` folder. At runtime, the framework start up utils will install the plugin bundle to the user's `%APPDATA%` folder, where it can be accessed during the [bootstrap process](https://github.com/shotgunsoftware/tk-framework-alias/blob/init/python/tk_framework_alias_utils/plugin_bootstrap.py).
15+
The framework provides the functionality to bootstrap a Toolkit engine (e.g. [tk-alias](https://github.com/shotgunsoftware/tk-alias)) using the the [ToolkitManager](https://github.com/shotgunsoftware/tk-core/blob/develop/python/tank/bootstrap/manager.py). A Toolkit Plugin must be created in order to intialize the manager to bootstrap an engine. The framework provides build scripts to generate the plugin bundle; after running the build, it will create the `com.sg.basic.alias` plugin bundle in the `dist/Toolkit/plugin` folder. At runtime, the framework start up utils will install the plugin bundle to the user's `%APPDATA%` folder, where it can be accessed during the [bootstrap process](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/python/tk_framework_alias_utils/plugin_bootstrap.py).
1516

1617
The following files are provided to build the plugin:
1718

@@ -64,4 +65,30 @@ make clean
6465

6566
## <a name="embed_py_package"></a>Embeddable Python Package
6667

67-
The `get-pip.py` script is included for convenience to set up the embeddable Python packages in `dist` (see [pip installation](https://pip.pypa.io/en/stable/installation/)) The base embeddable Python packages do not come with pip, so this script can be used to make pip available to the embeddable Python, which can then be used to install any additional required Python packages. See [dist](https://github.com/shotgunsoftware/tk-framework-alias/blob/initial/dist/README.md) for more details on how to set up the embeddable Python package.
68+
The `get-pip.py` script is included for convenience to set up the embeddable Python packages in `dist` (see [pip installation](https://pip.pypa.io/en/stable/installation/)) The base embeddable Python packages do not come with pip, so this script can be used to make pip available to the embeddable Python, which can then be used to install any additional required Python packages. See [dist](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/dist/README.md) for more details on how to set up the embeddable Python package.
69+
70+
## Required Python Packages
71+
72+
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`.
73+
74+
### What's included?
75+
76+
The packages that are included are defined by the `requirements.txt` in each of the `dist/Python/Python<MAJOR_VERSION><MINOR_VERSION>` directory. The packages can be obtained by running the [update_python_packages.py](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/dev/update_python_packages.py) script that uses pip to intall them. The script will then zip of the packages and copy them to the distribution directory. Standard Python packages will be found in `pkgs.zip`, and C extension packages will be found in `c_extensions.zip`. The reason for separating these packages is because C extension packages need to be unzipped in order to allow them to be imported by the framework (while standard packages do not).
77+
78+
### Update the packages
79+
80+
Follow these steps to update the packages when needed, these steps will update the packages for Python 3.7:
81+
82+
1. Change the packages (add, remove, update version) by modifying the [requirements.txt](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/dist/Python/Python37/requirements.txt).
83+
2. Using Python 3.7, run the [update_python_packages.py](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/dev/update_python_packages.py) script. This script must be run from inside the `dev` directory.
84+
3. Check that the packages have been updated correctly [here](https://github.com/shotgunsoftware/tk-framework-alias/blob/develop/dist/Python/Python37/packages). There is a `frozen_requirements.txt` file that records the package versions that were installed.
85+
4. Add the changes to the packages to git using `git add dist -f`.
86+
5. Commit and push the change to git as for any change.
87+
88+
#### Key details about the update script
89+
90+
- The version of Python used to run the scripts, is the version of Python that the packages will be installed for
91+
- The script must be run from inside the `dev` folder
92+
- The update script will use the requirements file and pip to install the packages to a local temp directory, which are eventually copied to the `dist` folder
93+
- C extension packages are put in their own separate zip file, to easily unzip them at run time.
94+
- To limit the size of the packages (to not bloat the repository size), special handling is made to the PySide2 package. PySide2 functionality is limited to using a single method from the QtCore module, and it is not intended that any further PySide2 functionality is to be needed. For this reason, the minimum files are included to use only the QtCore module.

0 commit comments

Comments
 (0)