VCSL Project Installer
-
@jeffd no, it's an installer for your own plugin.
-
Oh that’s what I meant.. that’s awesome. When do you expect it to be ready?
-
@Christoph-Hart said in VCSL Project Installer:
The deal breaking issue for me (still) is that you then have to ship multiple files as the installer which are supposed to be next to each other. It sounds weird, but people will mess this up and you'll get customer support requests that the installer doesn't work. Again, this is only on Windows,
But if you're shipping a sample library with over 2GB with Inno Setup, you're getting a bunch of files. A bunch of .bin files and a single .exe file. The idea of it being .dat files is that they're not associated with anything by default, so it'll look like a bunch of blank files and an .exe. But if someone insists, they can just open the .dat files (which are renamed zip files) with an archiver and do a manual install.
Plus, on windows, you can also do an ISO using native windows tools and simply pack in an autorun file which will start the exe on mount, no?
-
@Christoph-Hart I downloaded the VCSL repo, loaded the installer.json into MPC, exported monolith without touching anything, named it PayloadInstaller.dat, put the PayloadInstaller.app in the same directory and it fails to open:
-
Regarding the MPC, here are some preliminary thoughts and observations:
Amazing app and amazing value for the HISE devs. The payload is also great because it's fully customisable.
-
Unzip task could do with a way to group multiple unzips into one progress bar. Maybe a layout element that we can then group unzip tasks into, and its trigger overriding the triggers of the unzips?
-
This should also work for copySiblingFile, commandLine, extractHLAC etc.
-
CopySiblingFile and copyAsset needs a cleanup option, for when using it with the Temp dir. I.e. it needs a move option.
-
Shift+F5 for clear state object. If you move the .json file to a new directory, and load it, relative paths (parent directory) will return the old path until you clear the state object. Doing this should also automatically position the dialog to the first page unless edit mode is enabled. Upon exiting edit mode, it should return the dialog to the first page. Or there should be a checkbox for this, because being down far can be useless unless you're pulling all the necessary variables on that very same page/list.
-
Fail of a required button is a bit wonky, e.g. for the EULA: it shifts the elements by a few pixels, shifts the entire text because it introduces the red X on the side, and the additional popup obscures everything. There should be a property where we can specify the "not selected" popup text, as well as disable it.
-
Spacer seems to lack the height property (or any), although margin-top works on individual components.
-
For subsequent builds (patches, updates etc.) is there a way to trigger a projucer project creation and monolith export from CLI? e.g. multipagecreator.exe -export_monolith -O: "/target/directory/monolithFilename.dat"? This can then be added to a workflow for a single click export of a project from HISE as the .json is already editable and I can just change the version using the terminal to the one in the project_info.xml.
-
-
@aaronventure Thanks for the feedback, it's really at a stage now where I can need some guidance how to proceed and stabilize the procedure.
for 1. and 2. I can imagine adding a coallascated action, which will act as container (like List and columns), but show the total progress of all children in a single process bar. This way it's flexible and not tied to a single action type - so you can also combine different types (eg. download and extract) into a single progress bar.
4 is a good idea (not sure about returning to page 1 when you leave edit mode, but doing so when you clear the state object is definitely helpful, 5. is already on my list - the entire error appearance is customizable with CSS but I think I need to change the default template.
6 the spacer actually precedes the ability to do positioning in CSS so I'll probably remove it again. But you should be able to specify the height of it with an inline style
height: 120px;
the command line option is already in there and part of the build script that created the 4.0.0 installer:
It doesn't support monolith export yet, but that should be a no brainer. I'm also thinking about making a wizard (like the Broadcaster Wizard) that will create the installer json from your project_info and some settings and then run everything from inside HISE, once I get a good overview of the generic feature set.
-
@Christoph-Hart said in VCSL Project Installer:
for 1. and 2. I can imagine adding a coallascated action, which will act as container (like List and columns), but show the total progress of all children in a single process bar. This way it's flexible and not tied to a single action type - so you can also combine different types (eg. download and extract) into a single progress bar.
exactly, great!
@Christoph-Hart said in VCSL Project Installer:
4 is a good idea (not sure about returning to page 1 when you leave edit mode, but doing so when you clear the state object is definitely helpful, 5. is already on my list - the entire error appearance is customizable with CSS but I think I need to change the default template.
I meant if you clear a state object while in edit mode. if you think clearing a state object while in edit mode should close edit mode and return you to page one, then sure (I have no true opinion about that particular situation, I just noted it down as a consequence)
@Christoph-Hart said in VCSL Project Installer:
It doesn't support monolith export yet, but that should be a no brainer. I'm also thinking about making a wizard (like the Broadcaster Wizard) that will create the installer json from your project_info and some settings and then run everything from inside HISE, once I get a good overview of the generic feature set.
Sounds like a good thing to do once you've nailed it all down. For now, any power user who's running their own shell script workflows just needs a cli argument to create the monolith file from the input json.
Btw, here's how a finished project with the PayloadInstaller looks like:
This is all in an ISO file created using oscdimg.exe from the Assessment and Deployment Toolkit, so the end user cannot accidentally mess things up and move things somewhere. You can make the iso read-only as well.
It is actually dirt simple to come up with a scheme for deploying files: I have samples in 001, appdata stuff in 002, plugins in 003 etc.
Now the only point of confusion could be the other file named just like the installer. If that were named 000, it would be pretty obvious.
This is exactly what a sample library looks like when you pack it up using Inno setup: one small installer and a bunch of .bin files.
Do you think we can come up with a naming scheme for the install files and that you can then add a string for the PayloadInstaller to search, before searching for its name, so that deployment can look like this?
I can then whip up an ISO creation script with a tutorial that you can put in the repo (oscdimg is a Windows tool).
-
@Christoph-Hart said in VCSL Project Installer:
- is already on my list - the entire error appearance is customizable with CSS but I think I need to change the default template.
I think that there might be a better solution for this particular issue: simply don't have the "Next" button be clickable if there's an unchecked required button on the page.
Also, how do you use a wallpaper/background image? I see a property in Project properties and if I add an asset, then reload, I can select it but it's not showing up anywhere.
Are assets stored in the monolith?
-
This post is deleted! -
I'm really looking forward to this installer, it would help me a lot as I'm having a hard time figuring out what's the best solution for distributing my first product. Using this installer with Hise Activate would be a good solution for deploying my stuff.
-
@Christoph-Hart Allow installations to both user and system directories. Ensure custom app and plugin icons pass notarisation. Account for the current problem plaguing DMGCanvas. Don't reinvent the wheel.
-
@Christoph-Hart I'm dealing with multipage again and the signed binaries are great for quickly testing things out on test systems. The windows one works but the macOS one won't open (see post from June above).
I see you're still working on multipage, can you take a look while you're at it?
The source code for the payload installer isn't huge so I don't think it should be something big, but I'm not versed enough in native macOS development to figure out why it wouldn't be launching.
Thanks.
-
@aaronventure Can you check again? I've recompiled the installer and pushed the new binary.
It's code signed with my developer account but not notarized (as you need to notarize the DMG that you ship the installer and not the installer as is).
-
I assume this has something to do with the commit before the last
- multipagecreator: added version check when loading payload
-
@aaronventure yup, feature not a bug, you need to export your monolith with a matching build of the multipage creator so that there are no version mismatches.
-
@Christoph-Hart Alright. Here's a new one:
I loaded up the same multipage project I had working previously (on Windows).
I don't think it's my multipage project: if I open a new empty multipage file, and export it as a monolith payload, the same thing happens.