As we have seen in thread 666 (https://forum.obarun.org/viewtopic.php?id=666) a key element in the new 66tool-kit is the term tree. After I applied the shift to 66 from the s6 supervision system, I have been left with some confusion about the trees. Yes, we should be patient of the documentation that is in the making, but patience is not a virtue that we all share.

So, I will list some assumptions that can be corrected.
0 The whole purpose of this is to have bundles (trees) of services readily turned on and off when needed or not, without manually have to bring them up/down individually one by one. (but a small script with s6opt enable a, f, s | s6opts disable e, g, k would have been the same?)
1 The true init as pid1 is still s6. 66 takes over after init.
2 A tree is something like the s6 database, the difference is that you can have more than one - ?active? - complementing the prime db (tree).
3 The clone of a tree is a copy of the tree that you can add or subtract more/less services/daemons
4 Your 2nd and 3rd tree will remain active on the reboot until you disable it again. So if you have tree1 initially with minimal services to login to the system, you activate tree2 with some more, and tree3 with even more, all three will be active next time you boot, unless you have disabled 2 or 3 or both.
5 If you have tree1 with services a.b.c and you clone it to create tree2 but on tree2 you add d and e but then disable service b. With tree1 and tree2 active, is b active or not?
6 When 66scandir goes through the s6 sv directory and looks for ****-s6serv scripts, does it automatically enable them. Then what is the purpose of tree? If it does not enable, just recognizes they are available, at this stage of development, how does my acpid or bundle-Alsa work when I did not add them in a specific active tree?

Other notes
1 -v (verbosity) 0-3, 1-10, 1-1000? As far as I have seen it is like an on/off switch, but maybe for other services it makes sense.
2 I like the -h standard for help better than the --help, as I like the difference of the 66*tool* with nothing following it returns the format of the command, while 66*tool* -h returns details of the options.
3 pstree (and options like -a) help understand the difference between s6opts and 66 better, if you have 2 systems side by side to compare, or take a screenshot before the transition to 66 and compare it with after.
4 The difference between s6serv and s6rcserv I never completely understood, will they exist side by side with 66?

I hope I am not adding confusion because I am confused, but maybe some clarification of such matters should be included in the documentation or be clarified by it. If others who try it at this alpha-beta stage come up with more I think this may help the creator of 66 document his work better.
Yes, we should be patient of the documentation that is in the making, but patience is not a virtue that we all share.
yes you should be.

@ 0
s6opts and 66 haven't the same design and implementation on the system(not the same directory, not the same manner to copy file, not the same directory to store file, and so on). s6opts is a script where 66 in a program written in C. Not the same bugs problem, not the same rapidity to execution, not the same ability to add feature and so on. S6opts was created to see how s6 and s6-rc works, how to implement it and to manage file for service, 66 take experience of this and improve a lot the things like children with his father.

@ 1
no, 66 tools are wrapper around s6 and s6-rc program, some are combination of divers skarnet program. You can do what 66 tools do using skarnet program more a lot of coreutils program(mkdir,mkfifo,mv,rename and so on).

@ 2
no, a tree is a set of divers kind of service (pure s6 service and s6-rc service, so classic, longrun,oneshot,bundle).

@ 3
yes but to be correct, the clone can serve for different thing like make a backup of service set before changing something. You don't need to make a clone to modify a tree, you can simply modify it directly, it's just a safe manner to works on your service set or to have a template to make a new tree.

@ 4
correct

@ 5
b is active yes, because is already enable on the tree1. Be aware that each tree are independent from each other (this will change in the future). So you cannot have a service on tree1 which depends of a service on tree2. Every service dependencies need to be found on the same tree.

@ 6
66 don't care about directory/files used by s6opts, 66 tools do not use the same directories that s6opts, the service file for 66 tools need to be at /etc/66/service. Furthermore, s6opts to create/enable a service use a bunch of files (files that corresponds to the original one from s6 program), 66 tools use a unique file where you can define and configure any kind of service with a easy and simple syntax then it will parse this files and make the appropriate and corresponding s6 files (the frontend file documentation is not completely corrected but the main things are there).
the purpose of 66-scandir is not to parse or enable a service but to create at a correct destination the necessary directories to be able to start a scandir with s6-svscan program and to manage the service file on this directory.

other notes
@ 1
-v is for verbosity, that mean 66 tools will display more or less information about what it do. 1 mean only display error message, 2 add warning, 3 extremely talkative

@ 4
that's the point, now only one file for every kind of service. to be simple : you want a simple service which doesn't depends on any other like dhcpcd , use @ type=classic, you want a service that need some other service running to works properly use @ type=longrun, you want a service which do some operation on the system like creation of directory , checking file and so on use @ type=oneshot ...

Now to be more clear about the utility of a tree :
First, this concept cannot be found on any other service manager/service supervision, that's an original concept with 66 tools.
Let's take a stupid example :
Tree1 contain dhcpcd,ntpd
Tree2 contain cups, nfs
Tree3 contain xorg,notification-daemon,gvfsd, dbus

when your boot your machine and want to use it on console , you don't care about xorg or cups, you only care about internet connection. So at the base you only have Tree1 enabled, at every boot this tree will be started and so all the daemon into it.
Now you need to print something but for this, you also need to start the nfs daemon because your document is on some other server. What you need to do, normally you need to start cups than start nfs. Using tree you start the tree and all service that you need is available. When you have finished to print your awesome document instead of stopping service one by one you simply stop the tree and all the daemon on it will be stopped.
Now you want to see a video, you need a X server running and maybe a lot of daemon. What you need to do, just start Tree3.
Like i said it's a stupid example but give you an idea that what is can be possible.

Again , you should be patient, the works about documentation is done with Marian to be as much as possible proper about syntax and language and understandable.
Small request for 66tools for when it becomes stable

1 That Obarun screen box (*****) "booting obarun ....obarun.org" before the login: prompt comes out. Even though I like to see more details of the init process before the box, just like runit or openrc, with the option of quieting some of it down.
eric wrote Let's take a stupid example :
Tree1 contain dhcpcd,ntpd
Tree2 contain cups, nfs
Tree3 contain xorg,notification-daemon,gvfsd, dbus

when your boot your machine and want to use it on console , you don't care about xorg or cups, you only care about internet connection. So at the base you only have Tree1 enabled, at every boot this tree will be started and so all the daemon into it.
Now you need to print something but for this, you also need to start the nfs daemon because your document is on some other server. What you need to do, normally you need to start cups than start nfs. Using tree you start the tree and all service that you need is available. When you have finished to print your awesome document instead of stopping service one by one you simply stop the tree and all the daemon on it will be stopped.
Now you want to see a video, you need a X server running and maybe a lot of daemon. What you need to do, just start Tree3.
Indeed this was everything but stupid. It makes the concept of trees crystal clear in a few sentences! Well done.
Does this really not exist in other managers? This is almost like activities in KDE Plasma. Or well, the very basic idea of having virtual desktops for different tasks. This is pretty awesome. Actually it is way more understandable and literal in being a packaged form of services for a given activity than the other mentioned concepts, which are very abstract to a regular user and used by minorities.
If this is an innovation to service managers I think 66 will be a great addition to the community!

Also I second the request from Fungal about having an option (as in not forcing anybody) to silence/reduce console output at boot. People suck those kind of things up like fresh air. Apparently there's always the "you won't be able to debug your crash" argument but users usually don't give a sh** and rather brag in forums about their silenced black screen hahaha. On my main rig, since using Arch and Arch based distros, I always silence whatever I can, even the console cursor...
1 That Obarun screen box (*****) "booting obarun ....obarun.org" before the login: prompt comes out. Even though I like to see more details of the init process before the box, just like runit or openrc, with the option of quieting some of it down.
Also I second the request from Fungal about having an option (as in not forcing anybody) to silence/reduce console output at boot
This is already done, change the value of your file /etc/66/env/boot/VERBOSITY and replace 0 by 3, you will have a lot of more information ;)
This is almost like activities in KDE Plasma
yes same concept but for service :)
Aaahaha sorry. The most obvious option already implemented and we blame you for not having it :P
Fungal mind to test? ;)

Powered by Obarun