- I am trying to build/package/install my own sources - is there some documentation about the tmsbuild.yaml file?
Smartsetup was designed from the start to be able to build any packages (ours or from others), so this is a use case we care about. You can even build your exes with smartsetup, not only packages. But sadly our resources are limited, and we haven't have got time to document how to create your own smartsetup bundles. Still, you do have comments in the yaml file, and we can answer whatever questions you have, until we get time to write proper docs.
- The tms.config.yaml has some references to git/subversion and the commandline has the
repo-register
, repo-unregister
and repo-list
commands. Can anybody explain how to use these (to possibly build my own sources from a git/subversion repo)?`
Again, this is in our todo list to document. We are looking at doing a blog post about it too, but we want to finish some other stuff first. But I'll give you an example with an actual product that you can try, so it should be easier to understand:
tms repo-register GIT https://github.com/landgraf-dev/aws-sdk-delphi
This will register the aws-sdk repo from github. This repo must have tmsbuild.yaml at its root: aws-sdk-delphi/tmsbuild.yaml at master · landgraf-dev/aws-sdk-delphi · GitHub
tms repo-list
This will list the repositories you have registered.
And finally,
tms repo-unregister landgraf.aws.sdk
will unregister the repository we registered at the top. Note that you don't pass the url here, but the product id, which is defined in the tmsbuild.yaml, and it is the one reported by tms repo-list
If you register the aws repository (and don't unregister it), it will behave like a normal smartsetup product. You can now do:
tms install landgraf.aws.sdk
And it will install it. tms update
will update it along with the other products. For most purposes, your product id "landgraf.aws.sdk" is now one of the products smartsetup can manage. You can install it, uninstall it, update it, use it as a dependency from other project, whatever.
Working on my own packages, I often need to switch between versions. I've tried to follow the "alternative registry key" explanation in the Smart Setup beta youtube video, but do not see how to use this actually? Have two SmartSetup folders and use each for seperate tms.config.yaml and package versions? Can somebody maybe comment on the "best practice" for this or can show a sample setup?
Yes, the idea is that you have multiple smartsetup folders, each one with a different registry key. Then you start bds.exe /r registrykey and can use one or the other configuration.
We have an internal tool that we also plan to give away that allows you to select an ide with the registry key, and start that IDE version. It also allows you to automatically update the smartsetup for each IDE, so you can have completely separated development environments without VMs and with just one Delphi installed. That's one of the reasons we want people to be able to move their own components to smartsetup: If you have them all in smartsetup, you can easily update the different registry configurations.
Here is a small gif of how the tool is working today (not 100% sure the give will show, and if it will repeat. If you can't see it you can click here):
As you can see, we launch 2 delphis with different registry keys: one for development and one for testing. One is in light mode and the other is in dark mode (so you can easily know which one you are working on) and they have a completely different set of installed components (each set comes from a different smartsetup folder with a different registry key)
Once again, it is all a matter of time. There is so much we still have to do with this, and so little time...