diff --git a/frontends/lander/content/blog/pocket-host-v0-11-0.md b/frontends/lander/content/blog/pocket-host-v0-11-0.md new file mode 100644 index 00000000..91ea3041 --- /dev/null +++ b/frontends/lander/content/blog/pocket-host-v0-11-0.md @@ -0,0 +1,62 @@ +--- +title: PocketHost v0.11.0 +date: 2024-02-27T11:34:43.719Z +description: >- + PocketHost v0.11.0 introduces enhanced logging, refines FTP directory names, + optimizes performance, and fortifies instance startup errors. Includes new + features like Discord exception alerts, caching, and solves multiple bug + fixes. +--- + +[PocketHost](https://github.com/pockethost/pockethost), the open source multitenant PocketBase server, has reached v0.11.0. + +[pockethost.io](https://pockethost.io), the _zero-config / up-in-30-seconds_ flagship hosting service, is running PocketHost v0.11.0 as well. + +Key updates in this release: + +- Feature: Discord exception alert system. +- Feature: Edge instance caching enhancement. +- Fix: API timeout errors mitigated in InstanceService. +- Fix: Removed superfluous close in syslogger. +- Fix: Implemented instance logger shutdown when the container exits. +- Fix: Altered to wait for container start signal, not 'container' signal. + +# Overview (experimental) + +Here is what AI decided based on the change log (powered by [rizzdown](https://benallfree/rizzdown))... + +The release of PocketHost v0.11.0 introduces essential refinements designed to uplift the developer experience. The enhancement of debug logging in InstanceService presents a granular understanding of the system's inner workings. The refactoring of FTP physical and virtual directory names, together with the PocketBase (pb) launcher, contributes to elevating performance levels - a paramount advantage for restricted bandwidth environments or large projects. + +The new release also marks major strides in reliability and error handling. The update fortifies instance startup errors, instilling a high degree of robustness in PocketHost's operational repertoire. A significant development is the implementation of the Discord exception alerter. This feature brings about an error monitoring system that promptly and diligently reports exceptions to Discord, providing a gateway for expedited troubleshooting. + +Two notable fixes encapsulated under v0.11.0 focus on InstanceService and system logging. The API timeout errors prevalent previously have been resolved by adjusting the 'fire and forget' mothership updates in InstanceService. Moreover, the balancing act between system operations and readability has been enhanced. The double close in the system logger has been eliminated, alongside ensuring the instance logger shuts down when the container exits, aiding in providing a cleaner feed. + + +# Stats + +``` +you complete me +``` + +# Change Log + +* chore: enhance debug logging in InstanceService +* chore: refactor FTP physical and virtual directory names +* chore: refactor pb launcher for better performance +* docs: pb_hooks description clarification +* enh: fortify instance startup errors +* feat: discord exception alerter +* feat: edge instance caching +* fix: fire and forget mothership updates in InstanceService (fixes API timeout errors) +* fix: remove double close in syslogger +* fix: shut down instance logger when container exits +* fix: wait for container start signal rather than 'container' signal + +You can try PocketHost and learn more at https://pockethost.io. Our thriving [Discord community](https://discord.gg/HsSjcuPRWX) awaits you :) + +# Thanks + +Thank you to all the [PocketHost contributors](https://github.com/pockethost/pockethost/graphs/contributors). You guys are really coming through while I'm down in the trenches keeping servers running. Onward! :) + +I also want to mention the thriving Discord community. We have over 500 members and many daily active users who discuss PocketBase programming topics as well as get support for PocketHost. If you want to really feel a sense of vibrancy, it's happing in [our Discord community](https://discord.gg/HsSjcuPRWX). + diff --git a/package.json b/package.json index cb110d4b..f73ba816 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pockethost", - "version": "0.10.1", + "version": "0.11.0", "author": "Ben Allfree ", "license": "MIT", "scripts": { diff --git a/plop-templates/blog.hbs b/plop-templates/blog.hbs index 50a29e11..5748981a 100644 --- a/plop-templates/blog.hbs +++ b/plop-templates/blog.hbs @@ -8,7 +8,9 @@ description: {{{yamlEncode opengraph}}} [pockethost.io](https://pockethost.io), the _zero-config / up-in-30-seconds_ flagship hosting service, is running PocketHost v{{{version}}} as well. -{{{opengraph}}} +Key updates in this release: + +{{{summary}}} # Overview (experimental) diff --git a/plopfile.mjs b/plopfile.mjs index 5effcf65..94d47945 100644 --- a/plopfile.mjs +++ b/plopfile.mjs @@ -1,6 +1,7 @@ import chalk from 'chalk' import { execSync } from 'child_process' import { readFileSync } from 'fs' +import inquirer from 'inquirer' import yaml from 'js-yaml' import ora from 'ora' import { join } from 'path' @@ -86,20 +87,11 @@ export default function (/** @type {Plop} */ plop) { plop.setGenerator('release', { description: 'Generate a new release', - prompts: [ - { - type: 'list', - name: 'releaseType', - choices: ['major', 'minor', 'patch'], - message: `What type of release is this?`, - default: 2, - }, - ], + prompts: [], actions: (data) => { if (!data) throw new Error(`data expected`) return [ async () => { - const { releaseType } = data const commitsSinceLast = execSync( `git log $(git describe --tags --abbrev=0)..HEAD --oneline | grep -E "fix:|enh:|feat:|docs:|chore:" | sed 's/^[^ ]*/\*/' | sort`, ) @@ -111,6 +103,14 @@ export default function (/** @type {Plop} */ plop) { console.log(`Commits since last release:`) commitsSinceLast.forEach((line) => console.log(` * ${line}`)) + const { releaseType } = await inquirer.prompt({ + type: 'list', + name: 'releaseType', + choices: ['major', 'minor', 'patch'], + message: `What type of release is this?`, + default: 2, + }) + execSync(`npm version --no-git-tag-version ${releaseType}`) const { version } = JSON.parse( readFileSync(join(cwd(), './package.json')).toString(), @@ -163,6 +163,11 @@ export default function (/** @type {Plop} */ plop) { `An OpenGraph summary for this release, no more than 50 words. Factual. ASCII characters only. Use reflective and dry technical language, no calls to action or 'consumer' sounding language.`, ) + data.summary = await generate( + `Generating key updates summary...`, + `A bullet point summary of items tagged as 'feat' or 'fix'. Features come first. No more than 50 words TOTAL for the whole list. Factual. ASCII characters only. Use reflective and dry technical language, no calls to action or 'consumer' sounding language.`, + ) + data.overview = await generate( `Generating overview...`, `1-3 short paragraphs organizing the major changes and discussing their importance. ASCII characters only. Use reflective and dry technical language, no calls to action or 'consumer' sounding language`,