Pocketbase失去了来自FLOSS基金的资助
Source: Hacker News
请提供您希望翻译的具体文本内容,我将按照要求将其翻译成简体中文。
不幸的更新
FLOSS/fund 再次联系了我,但由于不可预见的监管限制,他们与 GitHub 的合作未能实现。相反,他们想要从印度进行电汇,这需要多份跨司法管辖区的文书工作。我对这样做感到不舒服,因为我不信任他们——也不信任印度政府——在处理和存储个人敏感数据方面(尤其是通过不安全的共享邮箱渠道)。
所以最终我不得不撤回我的 FLOSS/fund 申请并拒绝这笔资助。
我犯了一个错误,没有更仔细地进行调查,也没有等到资金发放后再做重大公告和决定,但事实就是如此。
尽管如此,主要目标仍然存在,我会尝试在今年发布一个稳定的 PocketBase 版本 (不过不作硬性承诺;大部分新 UI 功能已经实现,但在对剩余任务做更详细计划之前,我还需要寻找其他方案)。
一旦我对请求社区反馈的时机和准备情况有更明确的认识,就会发布新的公告。
我将锁定此讨论,以避免进一步骚扰参与者和仓库观察者。
好消息
我很高兴地宣布,昨天 FLOSS/fund 联系我,告知他们决定在第二轮融资中赞助 PocketBase。您可以在以下位置找到更多细节以及他们选择支持的其他精彩项目:
注意: FLOSS/fund 和 Zerodha 计划在明年继续该项目,所以如果您正在为您的开源项目寻找 无附加条件 的赞助,我鼓励您前往 申请。
有了这笔资金,从十二月开始,我将能够 专注于 PocketBase 至少一年,总体目标是在明年年底前发布一个稳定的 PocketBase 版本。我的短期重点目前是 重写 UI。
UI 重写
PocketBase 目前最大的限制之一是缺乏仪表盘自定义功能。
虽然可以使用现有的应用事件钩子创建服务器端插件(例如,JS pb_hooks 实现在这里;另请参见在#7273中发布的近期社区项目),但目前没有机制可以扩展 UI,例如:
- 为现有字段添加自定义选项
- 注册新字段
- 自定义设置以及在“生产”模式下显示的内容
- 注册新的 OAuth2 提供商
- 注册新的系统章节(见#7232)
通常这并不是一项困难的任务,因为仪表盘完全在浏览器中运行,动态加载 HTML/JS/CSS 正是浏览器擅长的。然而,目标不是仅在页面上注入额外资源,因为这无法解决上述许多问题,也不符合我计划构建的 UI 插件的需求。
理想情况下,我们应该能够通过外部脚本与 SPA 路由器以及仪表盘的各种响应式状态交互。当使用像 Svelte 这样的编译框架时,这非常难实现,因为它会迫使每个人在扩展 PocketBase 时额外添加一个 UI Node.js 构建步骤——这是我想避免的。
我已经尝试了其他更适合运行时的框架(Vue、Preact、Lit、Solid、Alpine、Mithril)。它们都能完成任务,尽管我更倾向于 Vue 或 Lit。这些框架各自的 DSL 往往会与其他框架冲突,而且如果它们进行大幅重构、方向改变或被抛弃,我并不自信能够维护它们。
我对 PocketBase 的主要目标是,一旦我们达到稳定版本,我就会将项目标记为“完成”。 新的更改或功能将极少添加,可能仅遵循每半年一次的 Go 发布周期——依赖越少越好。
试验最小化框架
基于上述考虑,我在过去的几个周末里一直在尝试一种围绕 PocketBase 所需最小功能设计的新前端框架。
它叫 Shablon – 。它没有任何依赖,使用纯 JavaScript 编写。我会尽可能保持简洁,避免组件概念;所有内容理想情况下都是普通的 DOM 元素并可选地具备响应式。一个“组件”可以简单地是返回 DOM 元素的函数,无论是通过 t.[tag](attrs, …children) 辅助函数创建,还是使用 document.createElement(tag)。
Shablon 没有 Svelte 那么人性化或美观,但我认为它更适合我们的目的。如果它最终显得过于丑陋或低效,我会回退到 Vue 或 Lit,但目前我会继续进行实验。
我也已经开始为 PocketBase 开发全新的 UI 套件,用于复用的元素,如字段、按钮、弹窗、下拉菜单、警告等。
接下来是什么?
大概下周(或再下周)会有另一则公告,关于实验性的关系过滤解析作为子查询的一个最小破坏性更改。除此之外,项目将进入临时的 “功能冻结”,直到我有更具体的 UI 展示。我想慢慢来,不急于求成,请耐心等待。
再次感谢 FLOSS/fund 和 @zerodha 对项目的支持!