A household move consumed most of January and February, so not much was accomplished until later in the month. Un-boxing things tends to do that...

Done:
- - - - - - - -
+ New definitions: lighttpd, minissdpd, knockd, nscd.

+ Merged all run templates that utilize /bin/sh into a single, master template at sv/.run/run-sh. That master script now supports run directories and chmod/chown. Other requirements will be placed there as well.

+ Use double indirection for ./run files to allow switching of template environments is complete for run scripts and logging.

+ All fgetty/agetty/mingetty are now converted to the envdir format.

+ Service definition names can now be changed to support runit's SysV shim mode. NOTE: this feature breaks compatibility with peer-dependency support if you don't update the ./needs directory after a rename of a service.

In Progress:
- - - - - - - -
+ Revise the documentation. The README file will be split into separate sections and placed into the doc/ directory.

+ Add design notes to the documentation. There are a LOT of assumptions that aren't spelled out and people are misunderstanding why I have such a quirky & bland set of scripts. This would help to explain the thought process behind all of it; it will also allow some (hopefully constructive and positive) criticism about the design.

+ Figure out how to get finish scripts fit into the schema for switching between sh/execline/perp (see below for details on how perp fits in). I'm not sure how this will turn out.

+ Clean up untested definitions, as part of the push for the 0.1 release. Many of the definitions have met the minimum test requirements and I've not cleared out the "untested" marker. The current criteria for being tested is (a) the service launches cleanly (b) the service does not complain beyond warnings in its logs (c) the service appears to function as intended.

+ Clean up all remaining one-off definitions, as part of the push for the 0.1 release. A bit of work has already been done in this regard, but there are still some that need to be brought up to current standards.

+ Finish the logging schema, as part of the push for the 0.1 release. At this point I won't have a full "logging chain" but it will have all the required features. This also means proper support for daemontools and s6.

+ ...and of course, enough new definitions to justify a 0.1 release. This means at least 122 *tested* entries in sv/ must be present, which is about 10% of the count of init.d scripts used by Debian 7. There are currently 96 entries but many are for getties, so after deducting 18 redundant entries that leaves 78 definitions, which means I need to make 44 entries. Worst case, I end up with a 0.1 release candidate.


Still To-Do / Experimental:
- - - - - - - -
+ Think about ways to incorporate perp, which uses a different format of ./run file. With the recent switch to support /bin/sh vs execline, this is a real possibility now. That means sv/.run/run-sh, sv/.run/run-execline, and now sv/.run/run-perp will become potential targets for sv/.run/run. Madness, I tell you, madness!

+ Examine nosh.  This is going take a bit of time to digest...

+ Re-think/re-work the ./needs directory. While nosh already has a similar concept, I want to be able to support Laurent's future efforts as well.

+ Prepare to re-license the project as BSD when I approach the 0.2 release, or approximately 244 entries. The entire point of the current MPL2.0 license was to make contributions "sticky" enough to the project until such point that it had some critical mass. When I reach over 240+ definitions, the project should be able to accommodate the needs of a majority of people, so I won't have the same kind of need anymore, and can re-license the scripts to something much more permissive.

+ Once my project is BSD licensed, I might be able to merge / hybridize / collaborate-on some of Toki's work (see below), completely supplanting the existing sv/.run/run-sh arrangement. Or not. Or, something...we'll just have to wait and see.

+ Support a modified version of usersv[1]. While scripted support for user-defined process management will still be present, it would be nice to see usersv expanded to support other frameworks, and not just runit alone. This would give a passive (admin controlled) or active (user controlled) option.

[1] https://github.com/eichlan/usersv

P.S. Toki Clover has been blazing a path with his own take on supervision scripts for OpenRC. While there aren't nearly as many definitions, the scripts are nearing completion, and I'm sure it won't take much to extract the daemon settings from my project and port them into his. Well done Toki!

Reply via email to