Initial bump for Preserves 0.991

This commit is contained in:
Tony Garnock-Jones 2023-10-31 23:40:41 +01:00
parent b3adef390b
commit 253b667ad3
22 changed files with 130 additions and 130 deletions

View File

@ -1,6 +1,6 @@
# Maintainer: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
pkgname=preserves-schemas
pkgver=0.990.0-r20231015
pkgver=0.991.0-r20231031
pkgrel=0
pkgdesc="Shared Preserves Schema definitions"
url="https://preserves.dev/"

View File

@ -1,7 +1,7 @@
# Maintainer: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
pkgname=py3-preserves
_pyname=preserves
pkgver=0.990.0
pkgver=0.991.0
pkgrel=0
pkgdesc="Preserves serialization format"
url="https://preserves.dev/"

View File

@ -1,7 +1,7 @@
# Maintainer: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
pkgname=py3-syndicate
_pyname=syndicate-py
pkgver=0.14.0
pkgver=0.15.0
pkgrel=0
pkgdesc="Syndicated Actor model for Python"
url="https://syndicate-lang.org/"

View File

@ -1,6 +1,6 @@
# Maintainer: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
pkgname=syndicate-schemas
pkgver=0.2.0-r20231018
pkgver=0.3.0-r20231031
pkgrel=1
pkgdesc="Shared Syndicate Preserves Schema definitions"
url="https://syndicate-lang.org/"

View File

@ -1,7 +1,7 @@
# Contributor: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
# Maintainer: Tony Garnock-Jones <tonyg@leastfixedpoint.com>
pkgname=synit-config
pkgver=0.0.6$(cat GITVERSION)
pkgver=0.0.7$(cat GITVERSION)
pkgrel=0
pkgdesc="synit system layer configuration"
url="https://synit.org/"

View File

@ -1,5 +1,5 @@
; Sending <exec SOMECOMMAND RESTARTPOLICY> causes the command to be run.
;
# Sending <exec SOMECOMMAND RESTARTPOLICY> causes the command to be run.
#
?? <exec ?argv ?restartPolicy> [
let ?id = timestamp
let ?facet = facet
@ -14,6 +14,6 @@
? <service-state <daemon $d> failed> [$facet ! stop]
]
; If the restart policy is not specified, it is defaulted to `on-error`.
;
# If the restart policy is not specified, it is defaulted to `on-error`.
#
?? <exec ?argv> ! <exec $argv on-error>

View File

@ -1,7 +1,7 @@
; To "run" a milestone service,
; - assert that it is both started and ready
; - that's it!
;
# To "run" a milestone service,
# - assert that it is both started and ready
# - that's it!
#
? <run-service <milestone ?m>> [
<service-state <milestone $m> started>
<service-state <milestone $m> ready>

View File

@ -1,4 +1,4 @@
; To the usual suite of service states we add `up`, meaning "either `ready` or `complete`".
;
# To the usual suite of service states we add `up`, meaning "either `ready` or `complete`".
#
? <service-state ?x ready> <service-state $x up>
? <service-state ?x complete> <service-state $x up>

View File

@ -1,28 +1,28 @@
; Attenuate `$config` by rewriting plain `require-service` assertions to `require-core-service`
; assertions. Allow all other assertions through.
;
# Attenuate `$config` by rewriting plain `require-service` assertions to `require-core-service`
# assertions. Allow all other assertions through.
#
let ?sys = <* $config [<or [
<rewrite <require-service ?s> <require-core-service $s>>
<accept _>
]>]>
; Give meaning to `require-core-service`: it is an ordinary `require-service`, plus a
; declaration that the `core` milestone depends on the service.
;
# Give meaning to `require-core-service`: it is an ordinary `require-service`, plus a
# declaration that the `core` milestone depends on the service.
#
? <require-core-service ?s> [
<depends-on <milestone core> <service-state $s up>>
<require-service $s>
]
; Load config in the `core` directory, using the wrapped `config` so that all plain services
; required are changed to be *core* services.
;
# Load config in the `core` directory, using the wrapped `config` so that all plain services
# required are changed to be *core* services.
#
<require-service <config-watcher "/etc/syndicate/core" {
config: $sys
gatekeeper: $gatekeeper
log: $log
}>>
; In addition, require the `core` milestone explicitly.
;
# In addition, require the `core` milestone explicitly.
#
<require-service <milestone core>>

View File

@ -1,22 +1,22 @@
; Attenuate `$config` by rewriting plain `require-service` assertions to
; `require-basic-service` assertions. Allow all other assertions through.
;
# Attenuate `$config` by rewriting plain `require-service` assertions to
# `require-basic-service` assertions. Allow all other assertions through.
#
let ?basic = <* $config [<or [
<rewrite <require-service ?s> <require-basic-service $s>>
<accept _>
]>]>
; Give meaning to `require-basic-service`: it is an ordinary `require-service`, plus a
; declaration that the service depends on the `core` milestone.
;
# Give meaning to `require-basic-service`: it is an ordinary `require-service`, plus a
# declaration that the service depends on the `core` milestone.
#
? <require-basic-service ?s> [
<depends-on $s <service-state <milestone core> up>>
<require-service $s>
]
; Once we see that the `core` milestone is ready, start processing the `services`
; directory.
;
# Once we see that the `core` milestone is ready, start processing the `services`
# directory.
#
? <service-state <milestone core> up> [
<require-service <config-watcher "/etc/syndicate/services" {
config: $basic

View File

@ -1,4 +1,4 @@
; Pinephone:
# Pinephone:
<require-service <qmi-wwan "/dev/cdc-wdm0">>
<depends-on <qmi-wwan "/dev/cdc-wdm0"> <service-state <daemon eg25-manager> up>>
@ -7,7 +7,7 @@
<depends-on <daemon eg25-manager> <service-state <daemon eg25-manager-monitor> up>>
<daemon eg25-manager-monitor "/usr/lib/synit/eg25-manager-monitor">
; More generally:
# More generally:
? <user-setting <mobile-data-enabled>> [
? <user-setting <mobile-data-apn ?apn>> [
@ -20,25 +20,25 @@
? <run-service <daemon <qmi-wwan-manager ?dev ?apn>>> [
<daemon <qmi-wwan-manager $dev $apn> ["/usr/lib/synit/qmi-wwan-manager" $dev $apn]>
; Occasionally qmi-wwan-manager complains on stderr about the link going away, but doesn't
; terminate. Fortunately it doesn't seem to talk on stderr at all unless the link goes away,
; so we interpret any stderr activity (!) as indication of a problem here.
# Occasionally qmi-wwan-manager complains on stderr about the link going away, but doesn't
# terminate. Fortunately it doesn't seem to talk on stderr at all unless the link goes away,
# so we interpret any stderr activity (!) as indication of a problem here.
$log ?? <log _ {
service: <daemon <qmi-wwan-manager $dev $apn>>
stream: stderr
pid: ?pid
}> [
; We used to just do this:
;
; $config ! <restart-service <daemon <qmi-wwan-manager $dev $apn>>>
;
; ... but it immediately restarts the service, causing lots of pointless load and log spam.
; TODO: make it so you can include an exit status in the restart request; something like
; "restart immediately" vs "simulated normal termination" vs "simulated error termination",
; triggering the appropriate supervisor behaviours.
;
; So instead we kill the qmicli program with a signal, which *does* trigger the supervisor
; in the right way.
# We used to just do this:
#
# $config ! <restart-service <daemon <qmi-wwan-manager $dev $apn>>>
#
# ... but it immediately restarts the service, causing lots of pointless load and log spam.
# TODO: make it so you can include an exit status in the restart request; something like
# "restart immediately" vs "simulated normal termination" vs "simulated error termination",
# triggering the appropriate supervisor behaviours.
#
# So instead we kill the qmicli program with a signal, which *does* trigger the supervisor
# in the right way.
let ?pid = stringify $pid
$config ! <exec ["kill", "-INT", $pid] never>
]

View File

@ -15,7 +15,7 @@
]
? <run-service <daemon <udhcpc ?ifname>>> [
; We use a custom script that gives mobile-data devices a sensible routing metric
# We use a custom script that gives mobile-data devices a sensible routing metric
<daemon <udhcpc $ifname> ["udhcpc" "-i" $ifname "-fR" "-s" "/usr/lib/synit/udhcpc.script"]>
]

View File

@ -1,19 +1,19 @@
version 1 .
; If headset present:
; - ringing: speaker & headset
; - notification: speaker & headset
; - non-speakerphone call: headset
; - speakerphone call: speaker
; - music: headset
;
; If headset absent:
; - ringing: speaker
; - notification: speaker
; - non-speakerphone call: earpiece
; - speakerphone call: speaker
; - music: speaker
;
# If headset present:
# - ringing: speaker & headset
# - notification: speaker & headset
# - non-speakerphone call: headset
# - speakerphone call: speaker
# - music: headset
#
# If headset absent:
# - ringing: speaker
# - notification: speaker
# - non-speakerphone call: earpiece
# - speakerphone call: speaker
# - music: speaker
#
.
Mapping = <alsa-mapping @abstract Endpoint @concrete string> .

View File

@ -1,21 +1,21 @@
version 1 .
; Definitions for the internal workings of the Hayes modem driver.
# Definitions for the internal workings of the Hayes modem driver.
; Assertion. Declares presence of a Hayes modem.
# Assertion. Declares presence of a Hayes modem.
ModemPresent = <modem =hayes @devicePath string @dataspace #!InternalProtocol> .
; TODO not yet properly specified
# TODO not yet properly specified
InternalProtocol = any .
; Message. Sent when the modem sends us a "URC", an Unsolicited Result Code.
# Message. Sent when the modem sends us a "URC", an Unsolicited Result Code.
UnsolicitedResultCode = <unsolicited @result Result> .
; Assertion. Asks the modem to execute the given command.
# Assertion. Asks the modem to execute the given command.
CommandRPC = <execute-command @commandText string @replyTo #!CommandResult> .
; Message. Asks the modem to execute the given command, but not to send back the reply.
# Message. Asks the modem to execute the given command, but not to send back the reply.
CommandEvent = <execute-command @commandText string> .
; Assertion. Describes the result of a command execution.
# Assertion. Describes the result of a command execution.
CommandResult = <command-result @commandText string @results [Result ...] @finalResult string> .
@<examples [

View File

@ -9,15 +9,15 @@ Interface = <interface
@carrier CarrierState
@linkAddr string> .
; This is synthetic information, based on somewhat ad-hoc heuristics. It'd be nice if there was
; a better way to do this! Maybe someone can point me in the right direction!
;
# This is synthetic information, based on somewhat ad-hoc heuristics. It'd be nice if there was
# a better way to do this! Maybe someone can point me in the right direction!
#
InterfaceType =
/ ; `lo` and friends
/ # `lo` and friends
=loopback
/ ; `eth0`, bridges, anything that isn't loopback and isn't wireless
/ # `eth0`, bridges, anything that isn't loopback and isn't wireless
=normal
/ ; 'wlan0' and friends
/ # 'wlan0' and friends
=wireless
.
@ -78,8 +78,8 @@ WifiAssociationState = @inProgress =in-progress / =ready .
HotspotState = <hotspot-state @interfaceName string @ssid string @stationCount int> .
;---------------------------------------------------------------------------
; User settings
# ---------------------------------------------------------------------------
# User settings
MobileDataApn = <mobile-data-apn @apn string> .
@ -90,11 +90,11 @@ SavedWifiNetwork = <saved-wifi-network
@authentication WifiAuthentication
@priority double> .
WifiAuthentication =
/ ; No authentication necessary: open network
/ # No authentication necessary: open network
=open
/ ; Pre-shared key (WPA2-PSK etc)
/ # Pre-shared key (WPA2-PSK etc)
<psk @password string>
/ ; Other, not-yet-implemented
/ # Other, not-yet-implemented
@other any
.

View File

@ -1,19 +1,19 @@
version 1 .
; Definitions for the internal workings of the Samsung Galaxy S7 modem driver.
# Definitions for the internal workings of the Samsung Galaxy S7 modem driver.
; Assertion. Declares presence of a Hayes modem.
# Assertion. Declares presence of a Hayes modem.
ModemPresent = <modem =samsung-galaxy-s7 @devicePath string @dataspace #!InternalProtocol> .
; TODO not yet properly specified
# TODO not yet properly specified
InternalProtocol = any .
ModemPacket = @in <from-modem @packet any> / @out <to-modem @packet any> .
; The bodies are instances of SamsungFmtMessage and SamsungRfsMessage, respectively.
# The bodies are instances of SamsungFmtMessage and SamsungRfsMessage, respectively.
FmtPacket = <fmt @body #!any> .
RfsPacket = <rfs @body #!any> .
; Assertion. Asks the modem to execute the given command.
# Assertion. Asks the modem to execute the given command.
CommandRPC = <execute-command @command FmtPacket @replyTo #!FmtPacket> .
; Message. Asks the modem to execute the given command, but not to send back the reply.
# Message. Asks the modem to execute the given command, but not to send back the reply.
CommandEvent = <execute-command @command FmtPacket> .

View File

@ -1,11 +1,11 @@
version 1 .
; Assertion.
# Assertion.
ContinuousSound = <continuous-sound @data mime.Value> .
; Assertion.
# Assertion.
ContinuousSoundPlaying = <continuous-sound-playing> .
; Message.
# Message.
AlertSound = <alert-sound @data mime.Value> .
; Assertion.
# Assertion.
AlertSoundPlaying = <alert-sound-playing> .

View File

@ -1,22 +1,22 @@
version 1 .
; Definitions for non-modem-hardware-specific telephony interactions.
# Definitions for non-modem-hardware-specific telephony interactions.
ModemPresent = <modem @type symbol @devicePath string @dataspace #!any> .
Address = <address @numberType NumberType @number string> .
NumberType = =unknown / =international / =national / =gsm0338 .
; Assertion. Describes an ongoing call.
# Assertion. Describes an ongoing call.
ActiveCall = <call-state @callId CallId @direction CallDirection @type CallType @peer Address @state CallState> .
CallId = int .
CallDirection = =mo / =mt .
CallType = =voice / =data / =fax .
CallState = =hold / =original / =connect / =incoming / =waiting / =end / =alerting .
; Message. Triggers call answering.
# Message. Triggers call answering.
AnswerCall = <answer-call @callId int> .
; Message. Triggers call rejection or disconnection.
# Message. Triggers call rejection or disconnection.
DisconnectCall = <disconnect-call @callId CallIdSelector @cause ReleaseCause> .
CallIdSelector = @specificCall int / @allCalls =all .
ReleaseCause =
@ -30,23 +30,23 @@ ReleaseCause =
/ =incompatibleDestination
.
; Message. Starts an outgoing call.
# Message. Starts an outgoing call.
PlaceCall = <place-call @devicePath string @peer Address> .
; Assertion. Some call is active - be it alerting, connected, ringing, etc.
# Assertion. Some call is active - be it alerting, connected, ringing, etc.
CallInProgress = <call-in-progress> .
; Assertion. An incoming call is signalling the user, asking for a decision about answer/reject/ignore.
# Assertion. An incoming call is signalling the user, asking for a decision about answer/reject/ignore.
PhoneRinging = <phone-ringing> .
; Assertion. A remote party's phone should be ringing.
# Assertion. A remote party's phone should be ringing.
PeerRinging = <peer-ringing> .
; Message. An incoming SMS has been received.
# Message. An incoming SMS has been received.
SmsDelivery = <sms-delivery @smsc Address @peer Address @timestamp time.Stamp @body string> .
; Assertion. An outgoing SMS should be transmitted.
# Assertion. An outgoing SMS should be transmitted.
SmsTransmission = <sms-transmission @smsc Address @peer Address @body string @continuation #!=ok > .
; Assertion. Enable speakerphone mode, if available.
# Assertion. Enable speakerphone mode, if available.
Speakerphone = <speakerphone> .

View File

@ -1,33 +1,33 @@
version 1 .
; Assertion. Creates a space for Widget/Parent/Attribute assertions etc.
# Assertion. Creates a space for Widget/Parent/Attribute assertions etc.
Window = <window @id WidgetId @space #!any> .
; Assertions, within the space created as part of a Window assertion.
# Assertions, within the space created as part of a Window assertion.
Widget = <widget @id WidgetId @type WidgetType> .
Parent = <parent @id WidgetId @parentId WidgetId @order SortKey> .
Root = <root @id WidgetId @order SortKey> .
Attribute = <attribute @id WidgetId @key symbol @value any> .
; Assertion
# Assertion
WidgetInstance = <widget-instance @id WidgetId @instance #!any> .
; Assertion
# Assertion
Touch = <touch @widget WidgetId @touchId any> .
; Message
# Message
Click = <click @widget WidgetId> .
; Assertion
# Assertion
State = <state @widget WidgetId @key any @value any> .
; Assertion. Marks the window as closeable.
# Assertion. Marks the window as closeable.
WindowCloseable = <window-closeable> .
; Assertion.
# Assertion.
WindowTitle = <window-title @title string> .
; Data types
# Data types
WidgetId = any .
SortKey = @double double / @string string .
@ -49,12 +49,12 @@ LeafType =
Color = <rgba @red double @green double @blue double @alpha double> .
; Box-and-glue layout
# Box-and-glue layout
Fill = @fixed double / <fill @weight int @rank int> .
Sizing = <sizing @ideal double @stretch Fill @shrink Fill> .
BoxSize = <box-size @horizontal Sizing @vertical Sizing> .
; Scrollable panels
# Scrollable panels
VisibleScrollRange =
/ =none
/ @visibleScrollRange <visible-scroll-range

View File

@ -1,12 +1,12 @@
version 1 .
; Assertion.
# Assertion.
CommandRPC = <user-settings-command @action Action @reply #!CommandReply> .
; Message.
# Message.
CommandEvent = <user-settings-command @action Action> .
CommandReply = =done .
Action = <assert @item any> / <retract @item any> .
; Assertion.
# Assertion.
Value = <user-setting @item any> .

16
synit-pid1/Cargo.lock generated
View File

@ -715,9 +715,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
[[package]]
name = "preserves"
version = "3.990.0"
version = "4.991.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9dcce38db440a6d301aaf73f6692d1ca1a6cea5c2e5b2f5ac29fabbeb3dab15"
checksum = "b4a244356924e0324af5205b20c03a203f4364640f816787bea3792b71eb4fd1"
dependencies = [
"base64",
"dtoa",
@ -730,9 +730,9 @@ dependencies = [
[[package]]
name = "preserves-schema"
version = "3.990.0"
version = "4.991.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830a3c2c01f2c2420ad5df48cf48fdb20bcfce797fb75e6294d3378d2a100e92"
checksum = "12225b6104827dc6d513f7f418cbe1fa9399a54f699c34d03eec706fb8fb41c0"
dependencies = [
"convert_case",
"glob",
@ -995,9 +995,9 @@ dependencies = [
[[package]]
name = "syndicate"
version = "0.29.1"
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a57767eb60240d45d7a63e705023e24f25071a14610139fed99941e1fc32495"
checksum = "63e69640b34eb33f1a8a0a8c2f0de420f885009919756e5a819a63715e006039"
dependencies = [
"blake2",
"bytes",
@ -1017,9 +1017,9 @@ dependencies = [
[[package]]
name = "syndicate-macros"
version = "0.24.0"
version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93cb75027de417102690c9bb95f1dcf0f1c91c5273c3fc530f36c5aab7e0f710"
checksum = "980f2739f04394fe45c608dc76abe555690201938d4faa1fd3024cf452cfe958"
dependencies = [
"proc-macro2",
"quote",

View File

@ -1,6 +1,6 @@
[package]
name = "synit-pid1"
version = "0.0.3"
version = "0.0.4"
authors = ["Tony Garnock-Jones <tonyg@leastfixedpoint.com>"]
edition = "2018"
@ -23,8 +23,8 @@ strip = true
# syndicate-macros = { path = "localdev/syndicate-rs/syndicate-macros" }
[dependencies]
syndicate = "0.29"
syndicate-macros = "0.24"
syndicate = "0.30"
syndicate-macros = "0.25"
clap = "=3.0.0-beta.2"
clap_generate = "=3.0.0-beta.2"