## Reactor 3 Change Log

Moderator: SecondMan

AndrewHazelden
Fusionator
Posts: 1321
Joined: Fri Apr 03, 2015 3:20 pm
Location: West Dover, Nova Scotia, Canada
Been thanked: 40 times
Contact:

## Reactor Core

• General performance and stability improvements.
• Improved differential syncing of Reactor core files. This allows Reactor to startup in mere seconds.
• Installing/removing atoms is more intuitive now as it is possible to click on the checkbox next to the atom name and Reactor will carry out the install/remove function when the checkbox is toggled between the checked/unchecked stated. This is supported in addition to using the normal "Install" and "Remove" buttons.
• Updated the Atom package specification to allow for Resolve vs Fusion Studio specific file deployments:
1. Atom {
2.     ...,
3.     Deploy = {
4.         Resolve =
5.         {
6.             "Scripts/Comp/Example/Example.lua",
7.         },
8.     },
9. }
• The Reactor "GitLab.lua" protocol file was updated to fix a callback syncing error. This revision allows more than 800 files to be installed by Reactor in a single GUI session. Previously the Reactor "Bin" category tools would fail to install if the callback limit was exhausted. This callback fix change allows KartaVR to be installed with fewer headaches.
• Reactor now supports loading your own custom atom repositories from both GitLab and GitHub using the Reactor.cfg file to configure the settings.
• Updated Reactor's Search function to support caching which dramatically improves performance. Also, the number of search results found is listed in the window's title bar area.
• Added more verbose progress text to the Reactor atom install dialog that lists in real-time the current file being downloaded. This makes it clearer what file is being downloaded and why an install is taking time to complete.
• Improved the Reactor "Status" column by adding a "New" atom package state where the text is shaded with a light green color. For the Reactor Status column, a package is marked as "New" if it was added in the last week. For cases where you haven't synced Reactor in a long time, an atom is marked "New" if the atom was added to Reactor after the last GitLab Reactor repository sync occurred. Atoms that are disabled by either a required platform or host/version number mismatch have their text shaded with a faint red color. Atoms that have available updates have their text shaded with a light blue color.
• Updated the "Reactor:/System/Reactor.cfg" file structure to add "Repos.Reactor" and "Repos._Core" table entries that will support GitHub and GitLab sourced atoms. The Settings table in the Reactor preferences is used to store attributes for how many concurrent cURL transfers should happen, how long atom packages are displayed/coloured as new, and the "Settings.Reactor.PrevSyncTime" entry uses a UNIX epoch timestamp value for the last time a GitLab Reactor repo sync occurred:
1. {
2.     Repos = {
3.         Reactor = {
4.             PrevCommitID = "",
5.             Protocol = "GitLab",
6.             ID = 5058837
7.         },
8.         _Core = {
9.             PrevCommitID = "",
10.             Protocol = "GitLab",
11.             ID = 5058837
12.         }
13.     },
14.     Settings = {
15.         Reactor = {
16.             MarkAsNew = true,
17.             NewForDays = 7,
18.             ViewLayout = "Larger Description View",
19.             LiveSearch = true,
21.             ConcurrentTransfers = 32,
22.             PrevSyncTime = 1558698359
23.         }
24.     }
25. }
• Added support for migrating legacy Reactor.cfg files to the new Lua table layout used in Reactor v3.
• Added a "Reactor > Reactor Preferences..." menu item that lets you adjust common Reactor settings in a single place.
• Updated the "Repo" ComboBox menu (found at the top left of the Reactor GUI). The "New" and "Update" modes will filter the list of atoms so you can quickly look through a tree view list to see the content that interests you.
• Added a "Reactor.lua" based "IsAtomNew()" function that scans for new atoms when a new sync happens. This powers the "New" status heading in the GUI. If you have the Reactor debugging environment variables active you will see an entry for the age of new atoms that have been synced in the "Temp:/Reactor/ReactorLog.txt" file.
• The "Reactor:/" PathMap entry is no longer overwritten by "Reactor.lua" automatically. This makes it possible for the Reactor Installer to customize the "Reactor:/" location visually without having to use an environment variable.
• The "Reactor.fu" file was updated to support the "Custom Install Path" location.
• The "Reactor > Tools > Resync Repository" menu entry was updated to support the "Custom Install Path" location.
• The "Reactor > Tools > Reinstall Reactor" menu entry was updated to support the "Custom Install Path" location.
• Added a "Reactor > Tools > Show Comps Folder" menu entry that makes it easier to access example Fusion compositing projects that are included with atom packages. This menu will open up the "Reactor:/Deploy/Comps/" folder in a new desktop Explorer/Finder/Nautilus folder window.
• Normalized the quotes in the "Reactor.lua" based "EncodeURL()" function that is used to translate GitLab Reactor syncing based cURL download URLs.
• Updated the atom package description field's HTML parsing code to build upon the existing "Emoticons:/" PathMap URL based PNG image loading feature. It's now possible to use a "Reactor:/" relative PathMap URL entry for HTML image tags in the atom description field. Note: The images will only be displayed in Reactor's GUI if the atom package's assets have already been installed by the user and the media is stored locally on disk inside the "Reactor:" based folder with a URL like:
<img src="Reactor:/Deploy/Docs/KartaVR/images/kartavr_logo_small.png"/>.
• Added a KartaVR category to the Atomizer package editor.
• Added "Reactor:/" relative PathMap URL preview support in the Atomizer package editor for locally sourced HTML image resources.
• HTML hyperlinks in Atom Description fields are now clickable in Reactor and Atomizer when running inside of Fusion/Resolve v16.
• Updated Atomizer to support saving atom package default settings that are automatically applied to newly created Atom packages. This allows you to pre-fill common attributes like "Package Name", "Version", "Author", "Donation URL", "Donation Amount", "Description", and "Category". The default settings are controlled through the "Save as Defaults" and "Reset to Defaults buttons at the bottom of the Atomizer editing window. The "Save as Defaults" window has a button labelled "Clear All Defaults" that can be used to purge your custom settings and revert to the factory defaults. This defaults saving system is especially handy if you want to use a templated block of HTML code in all of your Atom Description fields.
• Expanded the Atom description tag support for Emoticons images to support all of the standard WSL forum smilies.
• Added a new "magic.png" emoticon that allows you to express wonderment in your atoms and UI Manager scripts. It's recommended to use between 3-5 wands at a time for maximum impact. Anything less is not "vision" compliant and fails the current BMD v16 HIG (human interface guidelines) standards.
• Added support for Reactor atom packages to include Fusion based HTML e-documentation and templated comp creation guides via a "Hypertext Compositor" atom dependency entry of "com.AndrewHazelden.HypertextCompositor".
• Reactor now runs with JIT disabled in Lua for improved stability and performance.
• Improved "REACTOR_BRANCH" environment variable handling to automatically fall back to using the master branch if the value is nil.
• Improved the Reactor local system protocol support for testing "Reactor.lua" edits without needing to sync those revisions to the internet.
• Revised the Atom InstallScript support with the ability to let a user choose if they want to automatically allow InstallScripts to run or not in the Reactor preferences. This is handy if you want to install Bin category or KartaVR atoms and not be asked to confirm the InstallScript for each item if you install.
• Updated the Atom InstallScript handler code to allow the scripts to be aware of custom Reactor install locations.
• Updated Reactor's InstallScript preview window code to enabled syntax highlighting on Linux when Fusion 16/Resolve 16 is detected as the host. Previously syntax highlighting on Linux was disabled to avoid stability problems with UI Manager ui:TextEdit's that had the Lexer option enabled.
• Normalized string based quote symbols in "Reactor.lua" to use double quotes.
• Updated the message text shown in the Reactor window when Atom packages can't be installed due to missing dependencies, or when the atom has a lack of support for Resolve/Fusion as the host, or an incompatible OS is detected.
• Changed Reactor protocol syncing issues from emitting actual "error()" results in the Console window over to simply using "print()" to display the results in the Console view.
• Added support for different Reactor window layouts like a "Balanced View", "Larger Description View", or "Larger Atom View". This setting can be controlled in the Reactor preferences window.
• Added a "Donation" column heading that shows if an atom package requests a suggested donation. This allows you to click on the Donation heading later on so you could sort the atom list and quickly see if you are enjoying atoms which have a donation requested flag active. Supporting the Reactor community will help it thrive.

## Reactor Installer

• Added a "Custom Install Path" button to the Reactor Installer GUI. This control makes it easy to manually override the installation location using a folder requester dialog. This value is set as a "Reactor:/" PathMap entry in Fusion's preferences and a UserPaths entry is added, too. Remember, the custom install path location needs to have write permissions for the Reactor installation process to succeed. If you see a "Reactor.cfg" write error message during the install that is an indication the Reactor install folder lacks sufficient write permissions.
• Updated the installer's Resolve 16/Fusion Studio 16 Public beta version/host detection code. This fixed an issue where the version number of Fusion/Resolve was reported as v15 for the initial v16 releases.
• Fixed an issue where the previous Reactor installer would skip adding the Reactor root-level custom menu entries via the "Config:/Reactor.fu" file on Fusion Studio 16 based installs since the host environment was detected as v15 which internally meant "Resolve".