-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
165 lines (144 loc) · 8.04 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
Changes in v0.10.7:
* Feature: Support of notify-styled watchdogs.
* Few minor bug fixes.
Changes in v0.10.6:
* BREAKING: Extensions now uses the registering connection, rather than listen to a new UNIX socket and let the daemon connect.
* BREAKING: Service sideloading is now a part of the supervisor cache system.
* BREAKING: Removed API `debug.disconnect`
* Feature: Seperated instance name from system host name
Changes in v0.10.5:
* cli: refactor `debug` subcommand and removed unnecessary interfaces
* rpc: reset request size limit \(2M to 128K\)
* developer: remove old airup sdk for c to prepare for the new c sdk
Changes in v0.10.4:
* fix: line pipers loses lines when receiving multi lines in one `read`
Changes in v0.10.3:
* fix: line pipers (used for stdio logging) removes `\n`, `\r` or `\0` which is placed on the end of a line
* BREAKING: make `system.refresh` return `[(string, error)]` instead of `null`
* BREAKING: error code `NO_SUCH_METHOD` is renamed to `NOT_IMPLEMENTED`
* performance improvements
Changes in v0.10.2:
* fix: cannot actually unset an environment variable becuase toml lacks support of `null`
* fix: #33 "reboot-in-reboot"
Changes in v0.10.1:
* feature: added support of SELinux
* BREAKING: renamed `system.\[un\]load_extension` to `system.\[un\]register_extension`
* stability: registered signal handlers for code errors when we are `pid = 1` so it won't terminate
* code quality: added unit tests
Changes in v0.10.0:
* feature: separate log extensions and `fallback-logger` from `airupd` to independent processes
* feature: an extension system based on RPC
* BREAKING: feature: `log_dir` is removed from `build_manifest.json`
* fix: cannot correctly perform userspace reboot because `AIRUP_MILESTONE` is set to `userspace-reboot` and a loop happens
* BREAKING: feature: logger apis under `system.*` are no longer available
* BREAKING: cli: `airup reboot`'s usage is refactored
* BREAKING: rpc protocol: the serialization is migrated from JSON to CBOR
* fix: cgroup name is misunderstanding
* feature: memory statistics when using realms
* note: `airup-eventsourced` is removed and its functionability about to be moved to another repository
Changes in v0.9.4:
* feature: logging in `airup-eventsourced`'s timers
* compatibility: add FreeBSD support
* fix: cannot set groups
Changes in v0.9.3:
* feature: cli: customize how many log records are fetched
* fix: potential OOM attack
Changes in v0.9.2:
* feature: support of redirecting `stdin`
* feature: allow re-creating the ipc socket after misdeleting by using signal SIGHUP
* dev: bump minimal suppported rustc version to 1.77 \(due to async recurse is used\)
* fix: cgroups are working incorrectly because domain cgroups shouldn't be used with `add_task`
* fix: cannot acquire the service's main pid while stopping the service
Changes in v0.9.1:
* \[Fix\] Child processes would ignore some signals because the daemon ignored them, and the behavior is unexpected.
* \[Fix\] `airup reload airupd` hangs forever because `update_def` call tries to interrupt non-important tasks, and there are
no interrupt point in `reload`.
* \[Fix\] `fallback_logger`'s `tail` implementation returns an array of log records in reverse order.
* \[Fix\] Compiler warnings appears on some platforms like Android.
* \[Fix\] A typo in `airup query` CLI utility: `stopping` is shown as `starting`
* \[Fix\] Cannot query service while stopping it. This is not a perfect fix; Better fix would be committed in the future.
* \[Fix\] Cannot compile if `cgroups` the feature is disabled on Linux.
Changes in v0.9.0-alpha.1:
* \[Feature\] Refactored event system. Now it allows you to send and receive payload on events.
* \[Feature\] A new (optional) daemon is introduced, called `airup-eventsourced`. It is an Airup client built on the event system that automatically collects system or user-defined events and send them to the Airup event bus.
* \[Feature\] `airup-eventsourced` now supports user-defined scheduled tasks (a.k.a, "timers") as an event source.
* \[Fix\] "Welcome to ...!" is incorrectly displayed. It should only be printed when we are `pid == 1`.
* \[Fix\] Line Pipers are never closed
* \[Developer\] C SDK: Add `airup_server_version` API.
Changes in v0.8.1:
* \[Feature\] Custom build manifest overriding
* \[Feature\] Service Event Handlers
* \[Feature\] Initial SELinux support -- SELinux Policy for Airup
* \[Developer\] Allow getting `build_manifest.json` from C SDK
* \[Fix\] Corrupt implementation of `line_piper`
* \[Performance\] Remove double-register of `info.*` APIs
Changes in v0.8.0:
* \[Feature\] Support of resource limitation (currently cgroup is supported on Linux)
* \[Performance\] Switch to single-threaded async runtime to decrease CPU and memory usage
* \[Performance\] Switch caching from `mini-moka` to `quick_cache`, which is smaller in size
Changes in v0.7.1:
* \[Feature\] CLI utility `airup edit` for `.airs` and `.airc` files
* \[Developer\] Improved SDK API: Unified `?Async`-like traits
* \[Performance\] No longer copying the line buffer when using callbacks
* \[Fix\] `milestone.airf`'s \[milestone\] isn't kebeb-case
* \[Fix\] Output of `airup query` is not correctly aligned when handling CJK characters
* \[Fix\] Incorrect duplicating behavior when calling `airup query -a`
* Large `airupfx` crate is splited into multiple crates
Changes in v0.7.0:
* \[Feature\] Implement `notify`-kinded services
* \[Feature\] Event API
* \[Feature\] Add `airupd::env::Cmdline::parse_as_unix_command()` argument parser
* \[Feature\] Implement login groups
* \[Feature\] Userspace reboot
* \[Developer\] Implements Airup SDK for C
* \[Developer\] `blocking` API in the Airup SDK
* \[Fix\] `forking`-kinded services can be started as the system does not support
* \[Fix\] User cache is too big
* \[Fix\] Some services are not updated in a `self-reload`
Changes in v0.6.0:
* \[Feature\] Implement delayed retrying
* \[Feature\] `airup debug --use-logger` and `airup debug --print-build-manifest` CLI utilities
* \[Feature\] `airup enable` and `airup disable` CLI utilities
* \[Feature\] `airup stop --force` CLI utility and `system.kill_service` API
* \[Feature\] Allow specifying reboot/poweroff/halt timeout
* \[Feature\] Support `health-check`-kinded watchdogs
* \[Internals\] Task importance measurement
* \[Fix\] Potential race condition in Unix process subsystem
* \[Fix\] Unexpected logging in `reboot` milestone
* \[Developer\] Move `SystemConf` structure from `airupd` to `airup-sdk`
* ACE performance optimization
Changes in v0.5.0:
* \[Feature\] Gracefully reboot
* \[Feature\] Support of recording of service logs
* \[Feature\] Support of separated configuration files
* \[BREAKING\] New `retry` manifest format
* \[Developer\] Upload `airup_sdk` to `crates.io`
Changes in v0.4.0:
* \[Feature\] Command-line: `airup start --cache` and `airup stop --uncache`
* \[Feature\] `airup self-reload` CLI utility
* \[Feature\] `stdio` setup
* \[Feature\] API: `system.is_booting` and `info.build_manifest`
* \[Feature\] Better ACE
* \[Feature\] Supervisor timestamp
* \[BREAKING\] Environment variables: `AIRUP_SOCK`, `AIRUP_SERVICE`, `AIRUP_SERVICE_MAINPID`
* \[BREAKING\] Deprecate policy model
* \[Fix\] Deadlock with `forking`
* \[Fix\] Corrupt `StopService` failure condition
* Performance optimizations
Changes in v0.3.1:
* \[Feature\] Support of `airup query -a` CLI tool
* \[Feature\] ACE Improvements
* \[Feature\] Milestones that are `sync`-kinded
* \[Feature\] Support of running commands directly in milestones
* \[Fix\] `airup reboot` is not working as expected
* \[Fix\] `early_boot` milestone is called after creating `runtime_dir`
* \[Fix\] Redirecting `stdio` to file is not working properly
Changes in v0.3.0:
* \[BREAKING\] Milestone v2 Format
* \[BREAKING\] New build manifest format with better performance
* \[Feature\] Service caching & uncaching
* \[Feature\] Service conflicts
* \[Feature\] The `early_boot` pseudo-milestone
* \[Feature\] Support of service providers
* Support of power management on Apple platforms
* Some bug fixes and performance improvements