Browse Source

Bump version: 0.14

Davin McCall 2 years ago
parent
commit
bfcbcc87ef
4 changed files with 44 additions and 35 deletions
  1. 5 1
      NEWS
  2. 21 9
      README.md
  3. 15 22
      TODO
  4. 3 3
      build/version.conf

+ 5 - 1
NEWS

@@ -6,6 +6,8 @@ these notes carefully.
 This release includes changes contributed by Daniel Kolesa.
 
 Changes:
+ * A new dinitctl subcommand, "status", can be used to query extended status
+   information for an individual service.
  * The default directory for user services has moved to ~/.config/dinit.d
    (rather than ~/dinit.d).
  * Some service settings now expand environment variables (given in the form
@@ -20,7 +22,9 @@ Changes:
  * The dinitctl program now uses the value of the DINIT_SOCKET_PATH
    environment variable, if set, as the default control socket path. (If not
    set, behaviour is the same as for previous versions).
- * (this list of changes is incomplete and needs to be updated before release)
+ * A "poweroff" symlink for shutdown will be installed alongside other symlinks
+   ("reboot", "halt" etc). This allows integration in environments that expect
+   such a command to be available.
 
 == Version 0.12.0
 

+ 21 - 9
README.md

@@ -1,5 +1,5 @@
 # Dinit
-v0.12.0 (3rd alpha release)
+v0.13.0 (4th alpha release)
 
 This is the README for Dinit, the service manager and init system. It is
 intended to provide an overview; For full documentation please check the manual pages. 
@@ -52,7 +52,8 @@ software packages.
 Dinit is licensed under the Apache License, version 2.0. A copy of this
 license can be found in the LICENSE file.
 
-Dinit was written by Davin McCall <davmac@davmac.org>.
+This software was written by Davin McCall <davmac@davmac.org> with contributions
+from many others. See CONTRIBUTORS.
 
 See BUILD.txt for information on how to build Dinit.
 
@@ -100,10 +101,6 @@ supervised if Dinit runs as the system "init" (PID 1), or can otherwise mark
 itself as a subreaper (which is possible on Linux, FreeBSD and DragonFlyBSD) -
 otherwise Dinit can not reliably know when the process has terminated.
 
-(Note, use of bgprocess services type requires care. The file from which the
-PID is read is trusted; Dinit may send signals to the specified PID. It
-should not be possible for unauthorised users to modify the file contents!)
-
 An _internal_ service is just a placeholder service that can be used to
 describe a set of dependencies. An internal service has no corresponding
 process.
@@ -195,7 +192,9 @@ will go this file.
     pid-file = (path to file)
 
 For "bgprocess" type services only; specifies the path of the file where
-daemon will write its process ID before detaching.
+the daemon will write its process ID before detaching (this file is trusted;
+Dinit may send signals to the specified PID. It should not be possible for
+unauthorised users to modify the file contents!).
 
     depends-on = (service name)
 
@@ -216,8 +215,9 @@ time this service is started.
 
 When this service is started, wait for the named service to finish
 starting (or to fail starting) before commencing the start procedure
-for this service. Starting this service will automatically start
-the named service.
+for this service. Starting this service (the dependent) will automatically
+start the named service. This is similar to "depends-ms" but allows the
+dependency to fail to start without causing the dependent to also fail.
 
     options = ( no-sigterm | runs-on-console | starts-on-console | start-interruptible ) ...
 
@@ -340,6 +340,18 @@ You can pin a service in the stopped state in order to make sure it doesn't
 get started accidentally (either via a dependency or directly) when you are
 performing administration or maintenance.
 
+Check the state of an individual service using the "status" subcommand:
+
+    dinitctl status mysql
+
+The output will tell you the current service state; for a running service, it
+may look something like the following:
+
+    Service: mysql
+        State: STARTED
+        Activation: explicitly started
+        Process ID: 3393
+
 Finally, you can list the state of all loaded services:
 
     dinitctl list

+ 15 - 22
TODO

@@ -1,29 +1,19 @@
-For version 0.11.0:
+Soon:
 -------------------
-* [DONE] Show "activated" state in "dinitctl list" output
-* [DONE] Service description sanity checks:
-  - Service 'type' defaults to 'internal'
-  - process-based service types require 'command' setting
-  - only scripted service supports 'stop-command' 
-  - errors should also be reported by dinitcheck
-* [DONE] dinitcheck should perform lint checks - do named files exist? etc
-* [DONE] if service file exists but can't be opened, report suitable error rather than
-         "service not found" (dinit and dinitcheck)
-* [DONE] successful "dinitctl enable servicename" should give feedback
-* [DONE] change system socket location
-* [DONE] process command properly (Linux)
-* [DONE] Support --version on command line
-* [DONE] remove "no-sigterm" and just have "term-signal" specify the signal, including "none".
-
-
-For version 0.12.0:
--------------------
-* Dinitctl command to get full status of a service.
-  - including reporting process launch failure reason
+* dinitctl status should reporting process launch failure reason
+  (i.e. when stop reason is EXECFAILED, report why dinit couldn't exec).
+  (This info is already available in the log).
 * better environment handling, way to restrict which variables get passed through
   Note that "XXX=YYYY" settings on Linux kernel command line sometimes get set as environment
   variables (and sometimes don't) even if the kernel should understand them (eg "pti=off",
   but not "root=/dev/sda1").
+  * Version 0.13 includes dinitctl setenv to set environment variables, this is a good start
+
+
+For version 0.14:
+-----------------
+* support "stop-command" setting for process and bgprocess services (issue #38)
+* basic support for cgroups (at least: run service processes in a specified cgroup)
 
 
 For version 1.0 (release requirements):
@@ -37,6 +27,7 @@ For version 1.0 (release requirements):
     tool/daemon.
 * Be able to boot and shutdown Linux and FreeBSD (or OpenBSD).
 
+
 Maybe for 1.0?
 --------------
 * Consider using mlockall (if system process).
@@ -49,7 +40,7 @@ Maybe for 1.0?
 
 For later (post 1.0):
 ---------------------
-* Cgroups, jails support
+* jails support
 * On linux when running with PID != 1, write PID to /proc/sys/kernel/cad_pid so
   that we still receive SIGINT from ctrl+alt+del (must be done after /proc is
   mounted, possibly could be left to a service script)
@@ -76,6 +67,8 @@ For later (post 1.0):
     for receiving output from multiple services. This would require some kind of
     protocol for passing new output descriptors to the logger (for when a
     service starts).
+* dinitcheck should be able to resolve variable substitutions using variables from running dinit.
+
 
 Even later / Maybe never:
 -------------------------

+ 3 - 3
build/version.conf

@@ -1,4 +1,4 @@
 # Included from Makefiles.
-VERSION=0.12.0
-MONTH=August
-YEAR=2021
+VERSION=0.13.0
+MONTH=March
+YEAR=2022