新版的Typecho开发计划

关注 Typecho Github 的朋友应该已经发现,最近 Typecho 的 dev 分支更新频繁,其它相关项目也有动作。沉寂许久之后,我也决定开始继续推进这个项目了,不过距离上次更新已经是三四年前了。虽然开发版一直在修复 Bug,但是小打小闹未免也太糊弄人了。所以我就简单说说这个新版本的开发计划吧。

版本号的变化

首先最直观的改变是版本号的变化,之前是大版本/时间版本这样的形式,比如1.1/17.10.30,代表的是在2017年10月30日发表的1.1版本(看到这个日期,脸不禁又红了)。这个版本号模仿的是ubuntu的发行版,它比较适合于每年固定日期发行固定版本的形式,跟 Typecho 目前的开发状况不太符合,所以新的版本号会采用常规的3组数字组成。比如1.2.0,前面两部分是大的版本号,重要更新的时候会变化,最后一位适用于微小更新,针对一些微小的bug修复更新。新的版本规则可以让 Typecho 的版本发布更加灵活,小版本更新也可以更频繁。

向 PHP 5 说再见吧

Typecho 刚发布的时候还是 PHP 5 流行的时代,PHP 7 还是个新鲜玩意。转眼间沧海桑田,PHP 8都已经走上舞台,我们还有啥理由为是否支持 PHP 5 挣扎。更高语言的版本除了带来更好的执行效率以外,最重要的是新的语言特性的提高了编程的效率。因此 Typecho 的整个项目将整体转向 PHP 7,更确切的说是 PHP 7.2。考虑到兼容性我们暂时将最低的语言版本放到 PHP 7.2,当然我们强烈建议你使用更新的 PHP 版本,比如 PHP 7.4 或者 PHP 8.0

升级到 PHP 7.2 后将给 Typecho 代码带来如下变化:

  1. 类名全部由下划线风格转向反斜线的 namespace 风格

    // 之前的代码
    new Typecho_Widget_Helper_Form();
    
    // 之后的代码
    use Typecho\Widget\Helper\Form;
    
    new Form();
  2. 编码风格建议统一使用PSR-12
  3. 更强的类型约束,所有的接口参数和返回值都将加上类型约束,所以大家在使用的时候也要更加注意规范。
  4. 我们移除了大量过时/无用的代码。

这个更新目前正在dev分支开发中,目前 Typecho 命名空间的代码基本都已经改造完成。得益于新设计的自动加载系统,老的类命名和使用方法也将得到兼容,所以你不必担心之前的插件和主题用不了。

新的安装脚本

截屏2021-08-24 下午5.10.42.png

老的安装脚本可以说非常混乱,里面各种乱飞的代码都带有深深的时代印记,因此我们基于原生的 UI 组件开发了新的安装脚本,相比界面上的改变代码更是彻底重写。除了交互更加便捷,而且现在也支持在命令行通过环境变量静默安装,这就我们下面的改动创造了条件。

拥抱容器化

如果说这几年服务端架构最大的进步是什么,那无疑是微服务了。而微服务的基础容器化也早已走入寻常开发者的视野,无论是 k8s 还是 Docker 都要求代码部署的时候针对容器化作出相应的设计。新版的 Typecho 在这一块取得了很大的进步,目前我们的官方容器已经正式推出:

官方 Docker 镜像支持 PHP 7.3 PHP 7.4 PHP 8.0,并且运行环境支持FPM Apache Cli等模式,操作系统可以选择debian或者更小巧的alpine。我们使用了 Github 的流水线做全自动化编译提交,除了发布新版本时会自动编译以外,每晚也会自动发布一个 nightly 版本(目前只有这个版本,并不是正式代码,建议测试使用)。Dockerfile的文档还在书写中。

截屏2021-08-24 下午5.19.01.png

Github Actions 等持续集成的工具让开发的发布测试工作更加高效,我们目前也设计了很多有趣的流水线。

后台界面移动端适配

截屏2021-08-24 下午5.35.28.png

手持设备访问已经成为了一个刚需,所以你现在可以看到一个可用的手机界面。针对手指位置,我们还将菜单从顶部放到了底部。

写在最后

不知不觉 Typecho 已经走过了超过十年,值得庆幸的是这么多年过去了,我仍然对软件开发饱含热情。这么多年以来也一直有 Typecho 的用户通过各种渠道给我提出改进意见,各种催更也渐渐成了一个梗,我也时常为无法回报大家的关注而焦虑。在后续的开发中,我希望能以科学的方法来管理这个项目,让它更加高效持续地运转。

这是一个纷繁的时代,信息渠道已经多到快让人喘不过气来。而个人博客这种来自互联网初期的载体,似乎与这个环境显得格格不入。它就像大海中的小岛,在海浪中显得那么不起眼,但它的存在本身就彰显了一种意义。无论是波涛汹涌,还是风平浪静,它都在那里,而你的心也就找到了一处可以停靠的港湾。

已有 38 条评论

  1. 芝麻 芝麻

    感谢大大,不负我们日思夜盼啊❤

  2. 羊驼哥 羊驼哥

    竟然在有生之年更新了(狗头保命)~
    大佬奥利给!!!

  3. hxg hxg

    哇噢,突然就来这么大的消息,期待1.2.0早日发布 :-)

  4. 泽泽 泽泽

    加油ヾ(◍°∇°◍)ノ゙

  5. 情非得已 情非得已

    奥里给,终于要更新正式版了开发板用了好多年了都=。=

  6. 森木志 森木志

    这真的是有生之年可以看到te更新了

  7. 清酒踏月 清酒踏月

    有生之年能看到大佬更新了! ٩(๑′0`๑)۶

  8. 浅小沫 浅小沫

    哇,期待大佬 (/ω\)

  9. 皆非 皆非

    哇哇哇,太好了,有生之间啊!

  10. SHIERTX SHIERTX

    太爷爷,您关注的博客系统更新了!

  11. zgq354 zgq354

    太惊喜了!也是 Typecho 让我一直保持记录 Blog 的习惯,乃至于在 Web 开发的路上持续探索。多年来在世界的纷繁与浮躁中被一次次地拉回,内心得以持续的安宁。期待它继续发光发热~

  12. 小明 小明

    真是太激动了

  13. 白龙 白龙

    加油

  14. anYun anYun

    非常棒

  15. jevin jevin

    每次想用Typecho,都会因为看到正式版太久的更新时间而犹豫,毕竟越是想体验或者越喜欢就越需要它能稳定长久的发展下去。
    看到它还没有停止,还会真的继续更新发展,还是很让人开心的!

  16. 有格调的鱼er 有格调的鱼er

    冲啊 大佬加油~

  17. 麦麦同学 麦麦同学

    继续更新啊!努力吧

  18. 陆之岇 陆之岇

    joyqi大佬, 您好, 看见Typecho有新版本计划, 我们大家都欣喜若狂, 相信新版本给我们带来很多惊喜。这里我有个功能建议说给大佬听听, 那么就是关于 插件升级计划

    一般的插件的 deactivate 方法都为空, 所以在没有禁用插件情况下直接删除插件文件都不会造成博客异常, 但是有些插件在 activate 方法里(创建表、添加路由、钩子之类) 它的 deactivate 方法也有相应的回收代码。

    这里大多用户一般都是直接删除插件文件或者覆盖为新版本的插件, 以此完成插件升级, 从而会造成博客异常。因为很多用户不明白为什么需要先禁用, 所以都是粗鲁的直接删除文件再覆盖新版本的插件。

    这是我们插件开发者一直困扰的地方, 特此希望joyqi大佬能够加入 插件升级 的开发计划。

  19. -xiao_kai- -xiao_kai-

    有生之年!

  20. Atp Atp

    期待,用了这么多年的 Tyepcho 终于要更新了。

    个人博客在这个碎片化信息的时代已经渐渐边缘化了,但还是有很多站长在坚持创作,感谢所有的 Typecho 开发人员的坚持,为大家提供这么好用的平台。

    Just Type and Echo.

  21. 小南 小南

    支持,支持

  22. 橘生淮北 橘生淮北

    我以为7年一更新,万万没想到啊!

  23. 幻梦 幻梦

    七年了😅终于等到你还好我没放弃

  24. okgo okgo

    今天尝试装了一下 ,还不能跑起来。

    1. okgo okgo

      刚说完,就更新了,dev分支能跑起来了!~

  25. 简兮 简兮

    期待新版Typecho

  26. 小西瓜 小西瓜

    新的更新,非常令人兴奋与期待,感谢你的付出,最后一段话同感🤺

  27. 一休 一休

    新版本什么时候发布啊,不知不觉等了四年多了。

  28. H H

    感谢

  29. dgsrz dgsrz

    有生之年等到更新,资瓷一个

  30. CornWorld CornWorld

    前排资瓷

  31. lzw lzw

    等不及了

  32. 隔壁小胡 隔壁小胡

    第一个接触到的博客系统就是typecho,目前一直在用,希望typecho能越做越好

  33. 夜琉璃 夜琉璃

    大佬🐮🍺,终于等来更新了

  34. 即刻学术 即刻学术

    前排支持!!!推广下后台美化插件 SimpleAdmin

  35. C.C.Nemo C.C.Nemo

    感谢一直不离不弃,希望越搞越好,在这信息爆炸的年代,小小blog终是自己心里的小归宿。

  36. 哥斯拉 哥斯拉

    不得不说这是好消息,继续兼容以前的插件和主题更是极好。

  37. Garfield Garfield

    支持支持!期待新版本发布!