Commit Graph

288 Commits (7e43b53d167fdde0ea08d38b000d7b9c58154fc2)

Author SHA1 Message Date
Alex Peterson 4ce39ea167 Fix tags, downloads, and several vector copies
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
AMZN-Phil c6e77f8e32 Code readability improvements
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 31382d080e Remove duplication, additional readability and added missed file
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
Alex Peterson c69142b73b Merge branch upstream/stabilization/2110
* Conflict GemModel.h

Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson d582715321
Merge pull request #5318 from aws-lumberyard-dev/StablizationMacPMLaunchEditor
[MacOS] Launching Editor from ProjectManager and other misc. fixes
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
AMZN-Phil 393f08fc4b Merge remote-tracking branch 'upstream/stabilization/2110' into Prism/clouddownloadicon
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 9d977e81da Uncomment temporary disabling of toast notifications
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-nggieber 4721ef8298
License Info is Displayed as Clickable Link in Gem Catalog + Other Inspector Improvements (#5272)
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
amzn-sj 9958e5f012 [MacOS] Launching Editor from ProjectManager and other misc. fixes
Signed-off-by: amzn-sj <srikkant@amazon.com>
4 years ago
Alex Peterson 774b7c2593 Fixed minor logic issue with gem removal warning
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson 2f8de3e797 Keep gem repos pages in sync
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson 861b29ffc7 Fix spelling change for member variable
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson 523f2e6465 Merge remote-tracking branch 'upstream/stabilization/2110' into Prism/show-gem-repos-update
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>

# Conflicts:
#	Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogScreen.cpp
4 years ago
Alex Peterson 27c7e71516 WIP default gem sorting
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
AMZN-Phil 99ef2735b7 Create download UI once and update existing UI with progress
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil a187ee09a1
Merge pull request #5093 from aws-lumberyard-dev/Prism/SearchForGemsFromTags
Scroll to and Select Gem When Gem Tag is Clicked
4 years ago
Alex Peterson 49da85ca3a
Fix new project path when enabling gem (#5173)
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
nggieber 2ae927c754 Fix minor indent issue
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Alex Peterson 259ee654ae WIP refresh gem catalog in place
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
nggieber 858e287b1f Removed unused set filter function
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 08255d2eda Clicking tag now select gem and scrolls to it, it also resets filters if gem is filtered out, also gem filter creation was refactored
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Alex Peterson 781eaabd94 Access gem repos from catalog non-destructively
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson 65d23c7ed6
Merge pull request #5086 from aws-lumberyard-dev/Prism/RefreshRepoButtonDisablesRepo
Removed Gem Repo Enable Button
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson 5db6ffb6f3
Disable custom titlebar on Mac, Linux, fix resize (#4973) (#5114)
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson b4dd4c8f02
Add engine name, folder and fix refresh crash (#5112)
Signed-off-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson 6cce184340
Enforce unique gem names in catalog (#5063)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Alex Peterson 00a49fa251
Use source model data instead of filtered (#5071)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
nggieber 37243c74ec Make gem tags clickable and filter by their text in the Gem Catalog when clicked
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 8117798949 Removed gem repo enable button
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Alex Peterson 59c898fc48
Fix notification queue and add gem action (#4985) (#5024)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
AMZN-Phil 3165cf2838
Merge pull request #5011 from aws-lumberyard-dev/Prism/FixGemSelectedFilter
Gem Catalog Selected Gems Now Filters For Gems to be Enabled in Current Session
4 years ago
AMZN-Phil 7fc0f14a1b
Merge pull request #5006 from aws-lumberyard-dev/Prism/FixRemovedProjectStillShown
Fix Issue When Removed Project is Still Shown if it Was The Last Project
4 years ago
AMZN-Phil 856318005c
Merge pull request #5000 from aws-lumberyard-dev/Prism/RemoteGemWarning
Adds Warning to Add Repo Dialog
4 years ago
nggieber 866fd8a420 Fix selected gem filtering
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 3ff469c55e Fix issue with project still displaying when last project is removed
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 75ebf77b59 Added warning message when adding repositories
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-Phil 423693d16b Re-add call used to initiate gem download
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
nggieber 06f893edf1 Merge branch 'development' into Prism/ShowRepoGems 4 years ago
AMZN-Phil e8a7743aec
Merge pull request #4911 from aws-lumberyard-dev/Prism/RefreshGemRepos
Gem Repos can be Refreshed through Project Manager
4 years ago
nggieber 88f7f66b04 Removed fullPathGiven and instead check if path is a file when getting gem json data
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 500ac030a3 Merge branch 'development' into Prism/ShowRepoGems 4 years ago
nggieber 673815c58d Merge branch 'development' into Prism/ShowRepoGems 4 years ago
nggieber 15f4c1a091 Undownloaded remote gems are shown in Gem Catalog and searchable by repo name
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-Phil 69771ab2e1
Merge pull request #4892 from aws-lumberyard-dev/TrackDownloadProgress
Project Manager track progress of, and cancel downloads
4 years ago
AMZN-Phil b609dbbbbb Pass a callback instead of weak linking a module
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
nggieber f6d4556b60 Merge branch 'development' into Prism/RefreshGemRepos 4 years ago
nggieber 10c0522dcb Added F5 support for refreshing repos
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Alex Peterson b536abbf4e
Add existing gem through Project Manager 4 years ago
AMZN-Phil 993baeac7b Add a comment to inform that the process is limited to a single download
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
Alex Peterson 1989316cac
Added toast notifications to the gem catalog 4 years ago
nggieber 968c8640d0 Merge branch 'development' into Prism/RefreshGemRepos 4 years ago
nggieber b4a85a2ed6 Repos can be refreshed through Project Manager individually or all at once
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-nggieber 54b9ed2737
Added Menu to Gem Catalog with Action to Navigate to Gem Repo Screen (#4829)
* Added menu to Gem Catalog that with option to navigate to Gem Repo screen

Signed-off-by: nggieber <nggieber@amazon.com>

* Changed Goto to GoTo and added a tr

Signed-off-by: nggieber <nggieber@amazon.com>

* Gem repo button works from new project creation workflow as well and users are warned if they have pending changes in the gem catalog before changing screens.

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-Phil 5e6ecddbf9 Remove some test code and extra newlines
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil e3cfcd4cc7 Add the ability for Python to pass download progress to Project Manager and to cancel downloads.
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 24d7a90e5f Fix a warning
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil a032c59eab Removing unused function
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 2809c3b7ed Removing unused variables and defines and some renaming
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 9aa9ed8c8e Changing some class names and other download UI feedback.
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 023e8fcff2 Add missing files for review
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 02364b869e First part of UI feedback for downloading gems
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-nggieber 4899309b6a
Connect Adding and Removal of Gem Repo UI to CLI (#4729)
* Connect Adding and Removal of Gem Repo UI to CLI

Signed-off-by: nggieber <nggieber@amazon.com>

* Addressed PR feedback

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-nggieber 10ab1a369f
Adds Download status info UI to Gem Catalog (#4602)
* Adds Download status info UI to Gem Catalog

Signed-off-by: nggieber <nggieber@amazon.com>

* Removed test code

Signed-off-by: nggieber <nggieber@amazon.com>

* Remove unused variable

Signed-off-by: nggieber <nggieber@amazon.com>

* Addressed PR feedback

Signed-off-by: nggieber <nggieber@amazon.com>

* Fixed Open3DEngine spelling

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-Phil c355c162ab
Merge pull request #4486 from aws-lumberyard-dev/Prism/ShowRepoList
repo.jsons can be listed and and access through CLI and is Integrated with Project Manager
4 years ago
Alex Peterson ef3470b0a9
Dependency confirmation screen and URL display fix
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
nggieber 3698c3c3a7 Merge branch 'development' into Prism/ShowRepoList 4 years ago
Alex Peterson df419a0990
Run get_python script when Python fails to load (#4482)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
nggieber 0f5a347205 Merge branch 'development' into Prism/ShowRepoList 4 years ago
nggieber 118834efde Added ability to list gem repos using CLI and integrated support into Project Manager
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Alex Peterson 555e95679d
Open CMake GUI from Project Manager (#4360)
This provides a fast way for engineers who want to configure -> generate -> open project in IDE -> build & run to do so without waiting for a potentially lengthy Project Manager build.

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
lumberyard-employee-dm 090aa8f053
Removed ununeeded includes from EBus EBus.h and Policies.h (#4256)
* Removed ununeeded includes from EBus EBus.h and Policies.h

Updated the locations which needed those includes

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding missing include for <memory> to AWsClientAuthBus.h

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Remove the while true loop in the EBusQueuePolicy Execute() function

The while true loop in Execute was for allowing additional functions to be queued in the middle of execution of current list of functions.
That functionality was dangerous, because if a queued function added itself during execution unconditionally, then it would result in an infinite loop

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Updated the AssetManager::DispatchEvents function to pump the AssetBus event queue until empty

Queued Events on the AssetBus is able to queue additional events on that Bus during execution of those events.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Changed the AssetManager::DispatchEvents function to only execute the
AssetBus queued events once

Changed the AssetJobsFloodTest.AssetWithNoLoadReference_LoadDependencies_BehaviorObeyed test to dispatch events until the OnAssetContainerReady callback is signaled.

This happens after every asset load to make sure that the
expiring AssetContainer instances are removed from `AssetManager::m_ownedAssetContainer` container before retrying to load the same asset.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added a MaxTimeoutSeconds constant for the maximum amount of the time to run a single DispatchEvents loop

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
AMZN-Phil 103dc6cfcf
Merge pull request #4351 from aws-lumberyard-dev/Prism/AddRepoDialog
Add Add Gem Repo Dialog
4 years ago
nggieber 02987d9010 Fixed another non-unity build error
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 6b75c3b9d7 Fixed non-unity compile error
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 16e66cfa71 Addressed review feedback
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Alex Peterson 9f1a308177
Fix transparency issue on MacOS (#4358)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
nggieber 0b5aaa297e Fix text alignment
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 690f8e6925 Minor merge fix
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 4b73637ffd Merge branch 'development' into Prism/AddRepoDialog 4 years ago
nggieber 536ef46e2b Add Add Gem Repo Dialog
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-nggieber 9b14d49f87
Adds Inspector to Gem Repo Screen (#4242)
* Adds the gem repo screen with the UI built but with mocked data and not connected to the o3de scripts

Signed-off-by: nggieber <nggieber@amazon.com>

* Changed name of added to enabled, disabled define, removed unused functions

Signed-off-by: nggieber <nggieber@amazon.com>

* Added Repo Screen Inspector UI

Signed-off-by: nggieber <nggieber@amazon.com>

* Addressed minor PR feedback

Signed-off-by: nggieber <nggieber@amazon.com>

* Add some more minor PR changes

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Alex Peterson 43244d30e1
Project Manager Gem Dependencies (#4132)
* Fix engine API change and add gem dependencies

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Add GemCatalog dependency test

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Clarify display name and fix missing const

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Moving a couple helper functions into private scope

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Update gem count when unselecting a gem #4074

This addresses the following issue https://github.com/o3de/o3de/issues/4074

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Active/Inactive filter and dependency tooltips

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Accessors for previously added and dependencies

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Cart displays gem dependency changes

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Shorten titles to fit in summary popup

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Remove QString::number

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Remove extra space

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Consolidate source model accesor helpers

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Addressing minor feedback

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>

* Remove unused local variable

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
Steve Pham cfc9ec2530
Implement Project Manager 'build' button for Mac and Linux(#4248)
Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
nggieber e76ed67e95 Add no repositories added screen
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
AMZN-nggieber 357e823323
Add Initial Gem Repository Management Screen (#4172)
* Adds the gem repo screen with the UI built but with mocked data and not connected to the o3de scripts

Signed-off-by: nggieber <nggieber@amazon.com>

* Changed name of added to enabled, disabled define, removed unused functions

Signed-off-by: nggieber <nggieber@amazon.com>

* Added eof nl to qss

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
bosnichd 9976ee2b8e
Miscellaneous fixes and PAL changes required for restricted platforms. (#4021)
* Miscellaneous fixes and PAL changes required for restricted platforms.

Signed-off-by: bosnichd <bosnichd@amazon.com>

* Rename O3DE::ProjectManager::ProjectUtils::ReplaceFile -> ReplaceProjectFile to prevent conflict with Windows ReplaceFile #define

Signed-off-by: bosnichd <bosnichd@amazon.com>
4 years ago
AMZN-nggieber cdcdcb0777
Remove Tab Overlay on Project Manager Startup + More Fixes (#3666)
* Refocuses from tab to button on projects screen fist time it is opened

Signed-off-by: nggieber <nggieber@amazon.com>

* Adds border highlighting to big buttons when they are focused

Signed-off-by: nggieber <nggieber@amazon.com>

* Fixes issues where project buttons aren't found or deleted on projects screen

Signed-off-by: nggieber <nggieber@amazon.com>

* Adds tooltip to project name showing project path

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Esteban Papp 9c7b55a31d Merge branch 'development' into cmake/linux_fix_warn_unused
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Gems/Atom/RHI/Code/Include/Atom/RHI.Reflect/Bits.h
#	Gems/Atom/RHI/Code/Include/Atom/RHI/IndexBufferView.h
#	Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditorWindow.cpp
#	Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleWindow.cpp
4 years ago
AMZN-Phil 5a3c289fac
Merge pull request #2882 from aws-lumberyard-dev/Prism/RemoveTabFocus
Change Focus From Tabs in o3de.exe, Refactor Project Page Create, Sort Projects Alphabetically
4 years ago
nggieber 6eb9273763 Improves Gem Catalog Search (searches, Name, DisplayName, Creator, Summary, and Features), Gem Display Names now used in Gem Catalog
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber b38fc80418 Tabs are shown gray background when tab focused, Reworked ProjectsScreen to reuse Widgets instead of recreating it on each update, Sorting projects alphabetically
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Esteban Papp a2ab05a262 Code/Tools
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp 61f7fe5dc5 Merge branch 'development' into cmake/AddressSanitizer
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp 68b04fa6c1 Merge branch 'development' into cmake/AddressSanitizer
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Legacy/CryCommon/LegacyAllocator.h
4 years ago
Esteban Papp f8e99cd7dd Merge branch 'development' into cmake/SPEC-2513_w4244
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Editor/CryEditDoc.cpp
#	Code/Framework/AzToolsFramework/AzToolsFramework/Input/QtEventToAzInputManager.cpp
#	Gems/Atom/Feature/Common/Code/Source/PostProcessing/BlendColorGradingLutsPass.cpp
#	Gems/PhysXDebug/Code/Source/SystemComponent.cpp
4 years ago
AMZN-nggieber 749ff5df74
Pressing Enter/Return Key While File Browse Widget is Focused Opens File Browser (#3304)
* Pressing enter or return opens file browse dialog on browse edit widgets

Signed-off-by: nggieber <nggieber@amazon.com>

* Remove unused header

Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
Esteban Papp 1d7f690e06 missing header includes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp b255334535 Code/Tools fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp e9b4f48f71 more fixes, will merge fixes for w4245 and w4389
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Alex Peterson a55cb3e35f
Fixed white-bar at bottom of Project Manager screen (#3091)
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago