Skip to content

Commit

Permalink
resolve conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
LiborBatek committed Mar 20, 2024
2 parents 07fb1af + 025519e commit 997e5d5
Show file tree
Hide file tree
Showing 308 changed files with 2,030 additions and 858 deletions.
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ If you spot something incorrect or just think a page could do with some improvem
1. Make the changes to the relevant markdown file.
2. Make a PR documenting the changes.

## Build

- Install Node.js https://nodejs.org/en/download
- `npm install -g yarn`
- `yarn add docusaurus --dev`
- `cd {ayon-doc-repo}/website`
- `yarn start`

## Addons

Every addon is resembled by a typescript or JSON file in `src/data/addons/data`.
Expand Down
100 changes: 50 additions & 50 deletions website/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,55 +12,55 @@ const WARNING = 1;
const ERROR = 2;

module.exports = {
root: true,
env: {
browser: true,
commonjs: true,
jest: true,
node: true,
},
parser: '@babel/eslint-parser',
parserOptions: {
allowImportExportEverywhere: true,
},
extends: ['airbnb', 'prettier'],
plugins: ['react-hooks', 'header'],
rules: {
// Ignore certain webpack alias because it can't be resolved
'import/no-unresolved': [
ERROR,
{ignore: ['^@theme', '^@docusaurus', '^@generated']},
],
'import/extensions': OFF,
'header/header': [
ERROR,
'block',
root: true,
env: {
browser: true,
commonjs: true,
jest: true,
node: true,
},
parser: "@babel/eslint-parser",
parserOptions: {
allowImportExportEverywhere: true,
},
extends: ["airbnb", "prettier"],
plugins: ["react-hooks", "header"],
rules: {
// Ignore certain webpack alias because it can't be resolved
"import/no-unresolved": [
ERROR,
{ ignore: ["^@theme", "^@docusaurus", "^@generated"] },
],
"import/extensions": OFF,
"header/header": [
ERROR,
"block",

[
'*',
' * Copyright (c) Meta Platforms, Inc. and affiliates.',
' *',
' * This source code is licensed under the MIT license found in the',
' * LICENSE file in the root directory of this source tree.',
' *',
// Unfortunately eslint-plugin-header doesn't support optional lines.
// If you want to enforce your website JS files to have @flow or @format,
// modify these lines accordingly.
{
pattern: '.* @format',
},
' ',
],
],
'react/jsx-filename-extension': OFF,
'react-hooks/rules-of-hooks': ERROR,
'react/prop-types': OFF, // PropTypes aren't used much these days.
'react/function-component-definition': [
WARNING,
{
namedComponents: 'function-declaration',
unnamedComponents: 'arrow-function',
},
],
},
[
"*",
" * Copyright (c) Meta Platforms, Inc. and affiliates.",
" *",
" * This source code is licensed under the MIT license found in the",
" * LICENSE file in the root directory of this source tree.",
" *",
// Unfortunately eslint-plugin-header doesn't support optional lines.
// If you want to enforce your website JS files to have @flow or @format,
// modify these lines accordingly.
{
pattern: ".* @format",
},
" ",
],
],
"react/jsx-filename-extension": OFF,
"react-hooks/rules-of-hooks": ERROR,
"react/prop-types": OFF, // PropTypes aren't used much these days.
"react/function-component-definition": [
WARNING,
{
namedComponents: "function-declaration",
unnamedComponents: "arrow-function",
},
],
},
};
8 changes: 4 additions & 4 deletions website/.stylelintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
*/

module.exports = {
plugins: ['stylelint-copyright'],
rules: {
'docusaurus/copyright-header': true,
},
plugins: ["stylelint-copyright"],
rules: {
"docusaurus/copyright-header": true,
},
};
2 changes: 1 addition & 1 deletion website/babel.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
};
12 changes: 12 additions & 0 deletions website/docs/addon_aftereffects_artist.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ import versions from '@site/docs/assets/json/Ayon_addons_version.json'

To install the extension, download, install [Anastasyi's Extension Manager](https://install.anastasiy.com/). Open Anastasyi's Extension Manager and select AfterEffects in menu. Then go to `{path to pype}hosts/aftereffects/api/extension.zxp`.

(Current location will be most likely in artist `AppData`, on Windows it would be something like `c:\Users\YOUR_USER\AppData\Local\Ynput\AYON\addons\core_X.X.X\ayon_core\hosts\aftereffects\api`.
On Linux look in `~/.local/share/Ynput/AYON/addons`, on Mac `~/Library/Application Support/Ynput/AYON/addons`)
This location is temporary until full separation of addons is implemented. Artist must start Tray at least once for Ayon server to populate this location.)


Drag extension.zxp and drop it to Anastasyi's Extension Manager. The extension will install itself.

## Implemented functionality
Expand All @@ -42,6 +47,13 @@ In AfterEffects you'll find the tools in the `AYON` extension:

You can show the extension panel by going to `Window` > `Extensions` > `AYON`.

:::note guide
On newer MacOS you need to:
- go to `Applications/Adobe AfterEffects XXXX`
- right clicking on the `Adobe AfterEffects XXXX.app`
- then `Get Info`, check `Open using Rosetta`
:::

### Publish

When you are ready to share some work, you will need to publish it. This is done by opening the `Publisher` through the `Publish...` button.
Expand Down
63 changes: 63 additions & 0 deletions website/docs/addon_applications_admin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
id: addon_applications_admin
title: Applications and Tools
sidebar_label: Applications addon settings
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';


## Applications

In this section you can manage what Applications are available to your studio, locations of their executables, and their additional environments. In AYON context, each application that is integrated is also called a `Host` and these two terms will be used interchangeably in the documentation.

Each Host is made of two levels.
1. **Application group** - This is the main name of the application and you can define extra environments that are applicable to all versions of the given application. For example any extra Maya scripts that are not
version dependent, can be added to `Maya` environment here.
2. **Application versions** - Here you can define executables (per platform) for each supported version of
the DCC and any default arguments (`--nukex` for instance). You can also further extend its environment.

![settings_applications](assets/settings/applications_01.png)

### Environments

Please keep in mind that the environments are not additive by default, so if you are extending variables like
`PYTHONPATH`, or `PATH` make sure that you add themselves to the end of the list.

For instance:

```json
{
"PYTHONPATH": [
"my/path/to/python/scripts",
"{PYTHONPATH}"
]
}
```

### Adding versions

It is possible to add new version for any supported application. There are two ways of doing it.

1. **Add new executable** to an existing application version. This is a good way if you have multiple fully compatible versions of your DCC across the studio. Nuke is a typical example where multiple artists might have different `v#` releases of the same minor Nuke release. For example `12.2v3` and `12.3v6`. When you add both to `12.2` Nuke executables they will be treated the same in AYON and the system will automatically pick the first that it finds on an artist machine when launching. Their order is also the order of their priority when choosing which version to run if multiple are present.
![settings_applications](assets/settings/settings_addapplication.gif)

2. **Add version** in case you want this version to be selectable individually. This is typically used for bigger releases that might not be fully compatible with previous versions. Keep in mind that if you add the latest version of an Application that is not yet part of the official AYON release, you might run into problems with integration. We test all the new software versions for compatibility and most often, smaller or bigger updates to AYON code are necessary to keep everything running.
![settings_applications](assets/settings/settings_addappversion.gif)

## Tools

A tool in AYON is anything that needs to be selectively added to your DCC applications. Most often these are plugins, modules, extensions or similar depending on what your package happens to call it.

AYON comes with some major CG renderers pre-configured as an example, but these and any others will need to be changed to match your particular environment.

Their environment settings are split to two levels just like applications to allow more flexibility when setting them up.

In the image before you can see that we set most of the environment variables in the general MTOA level, and only specify the version variable in the individual versions below. Because all environments within pype setting will resolve any cross references, this is enough to get a fully dynamic plugin loading as far as your folder structure where you store the plugins is nicely organized.


In this example MTOA will automatically set the `MAYA_VERSION`(which is set by Maya Application environment) and `MTOA_VERSION` into the `MTOA` variable. We then use the `MTOA` to set all the other variables needed for it to function within Maya.
![tools](assets/settings/tools_01.png)

All the tools defined in here can then be assigned to projects. You can also change the tools versions on any project level all the way down to individual asset or shot overrides. So it is possible to upgrade you render plugin for a single shot, while not risking the incompatibilities on the rest of the project.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
id: project_settings_core
title: Core
sidebar_label: Core
id: addon_core_settings
title: Core addon settings
sidebar_label: Core addon settings
---

import ReactMarkdown from "react-markdown";
Expand All @@ -14,11 +14,31 @@ import versions from '@site/docs/assets/json/Ayon_addons_version.json'
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

Project settings can have project specific values. Each new project is using studio values defined in **studio settings** but these values can be modified or overridden per project.


## General

Settings applicable to the full studio.

![core_settings](assets/core_settings.png)

Refer to Settings related to [Working with settings](../admin_settings) for more details.
### Studio Name
Full name of the studio (can be used as variable on some places)

### Studio Code
Studio acronym or a short code (can be used as variable on some places)

### Global environment variables
Globally applied environment variables that will be appended to any AYON process in the studio.

### Disk mapping
- Platform dependent configuration for mapping of virtual disk(s) on an artist's AYON machines before OP starts up.
- Uses `subst` command, if configured volume character in `Destination` field already exists, no re-mapping is done for that character(volume).

:::info
Project settings can have project specific values. Each new project is using studio values defined in **studio settings** but these values can be modified or overridden per project. Refer to Settings related to [Working with settings](admin_settings) for more details.
:::


## Tools
### Creator
Expand Down Expand Up @@ -138,18 +158,19 @@ Publish plugins used across all integrations.

A couple of settings make use of tags to customize the output.

| Tag Name | Description |
| ----------- | ----------- |
| `Add burnins` | Adds burnins with the `ExtractBurnin` plugin. |
| `Create review` | Creates a review from the output with the [`ExtractReview`](#extract-review) plugin. |
| `Add review to Ftrack` | Uploads the review to Ftrack. |
| `Add review to Shotgrid` | Uploads the review to Shotgrid. |
| `Add review to Kitsu` | Uploads the review to Kitsu. |
| `Delete output` | Deletes the output once its been processed by `ExtractBurnin` and [`ExtractReview`](#extract-review). |
| `Add slate frame` | Adds the slate frame. |
| `Skip handle frames` | If handles are present in the publish context, they will be ignored. |
| `Output as image sequence` | Outputs as an image sequence |
| `Do not add audio` | Skip any audio found in the publish context |
| Tag value to be used | Tag Name | Description |
| ----------- | ----------- | ----------- |
| burnin | `Add burnins` | Adds burnins with the `ExtractBurnin` plugin. |
| review | `Create review` | Creates a review from the output with the [`ExtractReview`](#extract-review) plugin. |
| ftrackreview | `Add review to Ftrack` | Uploads the review to Ftrack. |
| shotgridreview | `Add review to Shotgrid` | Uploads the review to Shotgrid. |
| kitsureview | `Add review to Kitsu` | Uploads the review to Kitsu. |
| syncsketchreview | `Add review to SyncSketch` | Uploads the review to SyncSketch. |
| delete | `Delete output` | Deletes the output once its been processed by `ExtractBurnin` and [`ExtractReview`](#extract-review). |
| slate-frame | `Add slate frame` | Adds the slate frame. |
| no-handles | `Skip handle frames` | If handles are present in the publish context, they will be ignored. |
| sequence | `Output as image sequence` | Outputs as an image sequence |
| no-audio | `Do not add audio` | Skip any audio found in the publish context |

### Extract OIIO Transcode
OIIOTools transcoder plugin with configurable output presets. Any incoming representation with `colorspaceData` is convertible to single or multiple representations with different target colorspaces or display and viewer names found in linked **config.ocio** file.
Expand Down
22 changes: 16 additions & 6 deletions website/docs/addon_deadline_admin.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,21 @@ For [AWS Thinkbox Deadline](https://www.awsthinkbox.com/deadline) support you ne

1. Deploy AYON executable to all nodes of Deadline farm. See [Install & Run](admin_launcher_distribute.md)

2. Enable Deadline Module in the [AYON Admin Settings](admin_settings_system.md#deadline).
2. Create a new AYON Bundle with Deadline Addon version.

3. Set up *Deadline Web API service*. For more details on how to do it, see [here](https://docs.thinkboxsoftware.com/products/deadline/10.1/1_User%20Manual/manual/web-service.html).

4. Point AYON to your deadline webservice URL in the [AYON Admin Settings](admin_settings_system.md#deadline).
4. Point AYON to your deadline webservice URL in the Deadline settings `ayon+settings://deadline/deadline_urls/0/value`.

![Webservice url](assets/deadline_webserver_config.png)

5. Install our custom plugin and scripts to your deadline repository. It should be as simple as copying content of `ayon/modules/deadline/repository/custom` to `path/to/your/deadline/repository/custom`.

6. Create service account on Ayon server http://YOUR_AYON/settings/users , `Generate new key` and store it, you would need it in Deadline plugin configuration.

:::note guide
You could check [deadline guide](https://community.ynput.io/t/ayon-openpype-deadline-setup/468) for more detailed steps and additional tips.
:::

## Configuration

Expand All @@ -52,6 +57,8 @@ executable. It is recommended to use the `ayon_console` executable as it provide
- In case of multi OS farms, provide multiple locations, each Deadline Worker goes through the list and tries to find the first accessible
location for itself.

- provide your Ayon server address and API key for service account generated in step 6 of [Preparation](#Preparation)

![Configure plugin](assets/deadline_configure_plugin.png)

### AYONTileAssembler Plugin
Expand All @@ -68,11 +75,14 @@ The dependent publishing job's pool uses `ayon+settings://deadline/publish/Proce
The logic for publishing job pool assignment applies to tiling jobs.
:::

## Troubleshooting
### Authentication
Deadline supports username and passwords authentication to protect webservice from unwanted requests. (In Deadline `Tools>Configure Repository Options>Web Service Settings>Require Authentication`)

:::note guide
You could check [deadline guide](https://community.ynput.io/t/ayon-openpype-deadline-setup/468) for more detailed steps and additional tips.
:::
For this admin needs to enable authentication requirement for DL in `ayon+settings://deadline/require_authentication`.

Artists then need to provide their credentials in `Site Settings`.

## Troubleshooting

### Publishing jobs fail directly in DCCs

Expand Down
20 changes: 17 additions & 3 deletions website/docs/addon_ftrack_admin.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Ftrack is currently the main project management option for AYON. This documentat
## Prepare Ftrack for AYON

### Server URL
If you want to connect Ftrack to AYON you might need to make few changes in Ftrack settings. These changes would take a long time to do manually, so we prepared a few Ftrack actions to help you out. First, you'll need to launch AYON settings, enable [Ftrack module](admin_settings_system.md#Ftrack), and enter the address to your Ftrack server.
If you want to connect Ftrack to AYON you might need to make few changes in Ftrack settings. These changes would take a long time to do manually, so we prepared a few Ftrack actions to help you out. First, you'll need to have Ftrack enabled in your AYON bundle, and enter the address to your Ftrack server.

### Login
Once your server is configured, restart AYON and you should be prompted to enter your [Ftrack credentials](addon_kitsu_artist.md#How-to-use-Ftrack-in-AYON) to be able to run our Ftrack actions. If you are already logged in to Ftrack in your browser, it is enough to press `Ftrack login` and it will connect automatically.
Expand Down Expand Up @@ -83,14 +83,28 @@ Push thumbnails from version, up through multiple hierarchy levels

### Update status on task action

Change status of next task from `Not started` to `Ready` when previous task is approved.
When launching an action on a task in Ftrack, the status of the task can be updated. The mapping happens from the value to key, ei. if the key is `Ready` and the value is `Not Ready`, then the status will be updated to `Ready` if its `Not Ready`.
The mapping happens on a first-come-first-serve basis, from the top to the bottom.

Multiple detailed rules for next task update can be configured in the settings.
There are two special tokens that can be used; `__any__` and `__ignore__`

`__any__` - if this is in the value of a mapping, then any task status will be changed to the key (status) when launching an action.
`__ignore__` - if this is in the key of a mapping, then any status (case insensitive) in the values will be ignored for updating the task status.

By default any task status will be updated to `In Progress` when launching an action.

### Sync status from Task to Parent

List of parent object types where this is triggered ("Shot", "Asset build", etc. Skipped if it is empty)

### Sync status from Task to Asset Version

This will sync the status from the task to the latest asset version on the task.

:::note
Due to a potential infinite status update loop, the event server user and the user updating the task status, need to be different. If it is the same user, the status will not be synced.
:::

### Sync status from Version to Task

Updates Task status based on status changes on its Asset Version.
Expand Down
Loading

0 comments on commit 997e5d5

Please sign in to comment.