Skip to content

Releases: mixnz/mixengine

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 06 Sep 08:11

Installation notes

Nothing is code-signed or notarised, by design: expect SmartScreen on Windows and Gatekeeper's
"Open Anyway" on macOS. A machine with Smart App Control enforcing is not supported. On ARM64
Windows some runtimes have no build of their own and run under emulation, marked emulated in
mix runtime available.

About MixEngine

MixEngine is a local web development environment: run and switch multiple PHP,
Node.js, Python and Ruby versions, plus bundled Nginx/Caddy and MariaDB/MySQL/PostgreSQL/Redis/
Memcached, local domains with automatic HTTPS — without Docker, without hand-written config files.

Note: this will be the first release. Scope and timeline are still under discussion; not finalized.


Full Changelog: v0.0.1-beta.2...v0.0.1

v0.0.1-beta.2

v0.0.1-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Sep 06:58

What's Changed

  • feat(platform): keep a build that is not a release out of the release home by @haiquang9994 in #98
  • feat(database): a password a person can read and choose (T77b) by @haiquang9994 in #99
  • feat(registry): add --refresh to available listings by @haiquang9994 in #100
  • feat(release): link install docs to the latest release for each OS by @haiquang9994 in #101

Full Changelog: v0.0.1-beta.1...v0.0.1-beta.2

v0.0.1-beta.1

v0.0.1-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Sep 21:00

What's Changed

  • feat(services): install a service package, and create a service (T31a) by @haiquang9994 in #1
  • feat(services): php-fpm pools, one per installed PHP (T32) by @haiquang9994 in #2
  • ci(linux): let a run say what happened to the secret service by @haiquang9994 in #3
  • feat(services): MariaDB as a service MixEngine runs (T33) by @haiquang9994 in #4
  • feat(runtimes): PHP extensions through a generated conf.d set (T28) by @haiquang9994 in #5
  • feat(services): PostgreSQL as a service MixEngine runs (T34, T34a) by @haiquang9994 in #6
  • feat(services): MySQL, and the port allocator every service now shares (T34c) by @haiquang9994 in #7
  • feat(services): two instances of one server, at two versions (T36) by @haiquang9994 in #8
  • feat(services): nginx as the other front end, and the rule that there is one (T37) by @haiquang9994 in #9
  • feat(projects): a directory the daemon knows about, and step 3 of the resolution order (T39) by @haiquang9994 in #10
  • feat(sites): the site model, its four kinds, and the manifest halves that describe them (T39a) by @haiquang9994 in #11
  • feat(elevate): the one-shot helper's frame, its file protocol, and Probe (T40) by @haiquang9994 in #12
  • fix(elevate): re-assert the audit directory's permissions on every run (T40) by @haiquang9994 in #13
  • feat(platform): the Elevation trait and its three OS launchers (T40a) by @haiquang9994 in #14
  • feat(elevation): the elevation queue in the daemon (T40b) by @haiquang9994 in #15
  • feat(elevation): read what is about to be allowed before allowing it (T64) by @haiquang9994 in #16
  • feat(elevation): PrivilegedOp::HostsApply, and the first producer of the queue (T41) by @haiquang9994 in #17
  • feat(platform): PortAccess — 80 and 443 without root (T42) by @haiquang9994 in #18
  • feat(sites): a site somebody declared is a site the front end answers for (T43) by @haiquang9994 in #19
  • test(services): put a number on M3, and gate the warm half of it by @haiquang9994 in #20
  • feat(dns): a wildcard for every managed TLD, and the mode it does not switch on yet (T44) by @haiquang9994 in #21
  • feat(dns): a machine that sends a managed name to MixEngine's own server (T45) by @haiquang9994 in #22
  • feat(domains): what actually happens to a name, and the two verbs a client cannot compose (T46) by @haiquang9994 in #23
  • docs(roadmap): M4 requires only what phase 4 builds, and T87 owns the dry run by @haiquang9994 in #24
  • feat(doctor): nine checks, and the three shapes that keep them honest (T47a) by @haiquang9994 in #25
  • test(services): a port test that asks about MixEngine and not about the runner (T34c) by @haiquang9994 in #26
  • feat(doctor): daemon.doctor_repair, and the decision T64 reversed (T47b) by @haiquang9994 in #27
  • feat(doctor): mix doctor --bundle, and the word the task did not need (T93) by @haiquang9994 in #28
  • docs(roadmap): T41a needs a VM and not a certificate, so T94 takes the half that does by @haiquang9994 in #29
  • feat(platform): tell an absent secret service from one that refused (T15b) by @haiquang9994 in #30
  • feat(certs): the internal CA, and the identifier a certificate cannot carry about itself (T48) by @haiquang9994 in #31
  • feat(certs): this machine's trust store on three systems, and the four things only a real one could answer (T49a) by @haiquang9994 in #32
  • feat(platform): the NSS databases Firefox and Chrome read instead (T49b) by @haiquang9994 in #33
  • feat(core): one leaf per site, and the fourth question tls.md did not ask (T50) by @haiquang9994 in #34
  • feat(core): a site is served over TLS, and a front end binds a TLS port for the first time (T51) by @haiquang9994 in #35
  • feat(daemon): a clock renews certificates, and the outcome that gave two answers one name (T52) by @haiquang9994 in #36
  • feat(cli): mix cert status, measured against a live handshake (T53) by @haiquang9994 in #37
  • feat(cli): cert ca-rotate and ca-uninstall (T54) by @haiquang9994 in #38
  • feat(platform): ResourceLimits per OS (T68) by @haiquang9994 in #39
  • feat(daemon): stop a service nothing is using (T69) by @haiquang9994 in #40
  • fix(platform): verify who is serving the named pipe before sending by @haiquang9994 in #41
  • ci(test): run the connections suite the workflow never called by @haiquang9994 in #42
  • ci(system): open the MIXENGINE_SYSTEM_TESTS gate nothing set by @haiquang9994 in #43
  • ci(test): fail the Linux leg when a real-server package is missing by @haiquang9994 in #44
  • perf(daemon): take a blocking removal off the worker thread by @haiquang9994 in #45
  • refactor(daemon): give SpecSource a typed error (R8) by @haiquang9994 in #46
  • chore(deps): make a duplicate version a decision somebody wrote down (R9) by @haiquang9994 in #47
  • test(supervisor): assert the retry a command ready check exists for (R13) by @haiquang9994 in #48
  • test(proto): gate the rule that per-OS code lives in platform (R14) by @haiquang9994 in #49
  • fix(generate): give each render a staging directory of its own (R17) by @haiquang9994 in #50
  • chore(deps): move off a yanked chacha20 and fail on the next one (R18) by @haiquang9994 in #51
  • test(bench): print MariaDB's own log when a warm round misses the budget (R19) by @haiquang9994 in #52
  • feat(supervisor): hand over the tail with the subscription so first lines survive (T16c) by @haiquang9994 in #53
  • feat(core): start a service from the connection that needed it (T70) by @haiquang9994 in #54
  • feat(daemon): start a database from the connection that needed it (T70a) by @haiquang9994 in #55
  • feat(metrics): sample what is running, and keep a day of it (T71) by @haiquang9994 in #56
  • feat(daemon): warn and restart a service over a memory ceiling this machine cannot enforce (T71a) by @haiquang9994 in #57
  • test(bench): gate what MixEngine costs when nobody is using it (T72) by @haiquang9994 in #58
  • feat(core): give a pool on a socket the probe that lets it sleep and wake (T72a) by @haiquang9994 in #59
  • perf(core): dev-tuned defaults across the service templates (T73) by @haiquang9994 in #60
  • feat(core): LAN sharing, per site and reversible (T74) by @haiquang9994 in #61
  • chore(repo): follow the transfer to the mixnz organisation by @haiquang9994 in #62
  • feat(core): mDNS, the name in the certificate, and the CA a phone can install (T75) by @haiquang9994 in #63
  • feat(core): revoking a share by itself (T76) by @haiquang9994 in #64
  • feat(core): the blueprint manifest, capture, and the plan an apply would carry out (T77) by @haiquang9994 in #65
  • feat(core): creating a database and the account that reaches it (T77a) by @haiquang9994 in #66
  • feat(core): executing a blueprint plan (T78) by @haiquang9994 in #67
  • feat(core): running a blueprint's own command, and trusting it (T78a) by @haiquang9994 in #68
  • feat(blueprints): the built-in gallery (T79) by @haiquang9994 in #69
  • feat(blueprints): publishing the gallery as signed files (T79a) by @haiquang9994 in #70
  • feat(blueprints): saying why a blueprint is untrusted (T79b) by @haiquang9994 in #71
  • feat(extensions): the extension model (T80) by @haiquang9994 in #72
  • feat(extensions): the extension registry and lifecycl...
Read more