这周,我对 Starchart 做了一些维护工作。该项目已经有一段时间没有工作了,所以我们正在尝试更新它的依赖项。
发展空间
/
淀粉艺术
用于管理自定义域和证书的自助服务工具
星图
Starchart 使 Seneca 开发者社区可以轻松创建和管理自己的自定义子域和 SSL 证书,无需付费或无需提供个人信息。
有关运行 Starchart 的信息,请参阅我们的部署指南。有关开发信息,请参阅我们的贡献指南。有关更多技术背景、规划和初始设计,请参阅 wiki。
简介
互联网正在不断发展,曾经困难的事情变得简单。例如,托管自己的网站过去需要服务器管理、操作系统、网络等方面的知识。如今,许多开发人员托管他们的个人和项目网站而无需接触远程服务器,而是选择(免费)云服务,例如 GitHub Pages、 Vercel、Netlify 或 AWS。
互联网的安全模型也在不断发展。例如,浏览器供应商已在各地采用 HTTPS。这对于安全性很有好处,因为它可以在客户端和服务器之间实现基于证书的加密。然而,就像……
计划是修复 CI 工作流程,我们上周发现该工作流程已被破坏:
但在我找到解决方案之前,之前的开发人员之一 Eakam 解决了这个问题 - 事实证明这只是因为 Playwright 已经过时了。
将剧作家提升至 1.49.1
第772章

Playwright 安装在 CI(E2E 测试)中失败。修改剧作家版本应该可以解决这个问题。
参考:
我觉得我应该通过寻找更多的东西来弥补它,并认为更新更多的依赖项将是一个很好的起点。
由于该项目已经两年没有投入使用,因此存在大量由过时的软件包引起的安全漏洞。我能够通过 npm 审核修复修复大部分问题。
还有一些修复导致了 @remix-run/eslint-config 和 @remix-run/react 中的重大更改,所以我手动修改了它们。
其中一个更新(我同时更新了它们,所以我不能肯定地说,但我的赌注是 /react)导致了类型检查错误,因为 [@remix-run/react].useNavigation( ).formData 现在可能是未定义的类型。我用可选链修复了它。
// Before const isLoading = navigation.state === 'submitting' && Number(navigation.formData.get('id')) === dnsRecord.id; // After const isLoading = navigation.state === 'submitting' && Number(navigation.formData?.get('id')) === dnsRecord.id;
我所做的其他更改与弹出的一些 lint 错误有关(此时我意识到我已经关闭了 ESLint 扩展,但我确信这些警告会随更新一起出现,因为它在 CI 中从未发生过)过去)。
- 在一个文件中多次导入同一模块的实例:
// Before import { getCertificateByUsername } from '~/models/certificate.server'; import { deleteCertificateById } from '~/models/certificate.server'; import { isAdmin } from '~/models/user.server'; import { getUserByUsername } from '~/models/user.server'; // After import { getCertificateByUsername, deleteCertificateById } from '~/models/certificate.server'; import { isAdmin, getUserByUsername } from '~/models/user.server';
- 当首选 const 时使用 let:
// Before let date = val.toLocaleDateString('en-US', { // After const date = val.toLocaleDateString('en-US', {
很惊讶它之前没有捕捉到这些。
此外,当我打开 ESLint 扩展时,我有点吃惊,因为有大约 900 个 linter 错误。事实证明,这是因为 ESLint 对 Playwright 生成的输出进行了 linting。所以我将 /playwright-report 添加到 .eslintignore。
这就是我本次冲刺的维护工作的总和。最终修复了 30 个严重的安全问题,所以还不错。
更新依赖项
第775章

应该修复一堆安全漏洞。
变化
- [x] 凹凸依赖项
- [x] 将 /playwright-report 添加到 .eslintignore
- [x] 修复类型检查和 linter 错误
我还重新激活了 Dependabot,它更新了几个小版本。如果不必手动调查和修补安全漏洞,那就太好了。
在其他新闻中,我向 Mattermost 发出的一个拉取请求终于被合并了!
[GH-29548] 避免在 `tokens_store.go` 中使用 SELECT *
#29558

总结
此公关:
- 将 token_store.go 中的 SQL 查询切换为使用 SQLBuilder
- 在 TokenStore 的 SELECT 查询中显式定义列。
- 将常见查询分解到构造函数中。
门票链接
修复#29548
截图
发行说明
// Before const isLoading = navigation.state === 'submitting' && Number(navigation.formData.get('id')) === dnsRecord.id; // After const isLoading = navigation.state === 'submitting' && Number(navigation.formData?.get('id')) === dnsRecord.id;
不久前就已获得批准,但花了几周时间才合并到 main 中。
与此同时,我一直在致力于我的其他公关工作。我被要求进行一些更改,正在等待重新审核。
[MM-53650] 为 webapp 添加禁用表情渲染设置
#29414

总结
此拉取请求向 Web 应用程序添加了一个用户设置,以将渲染表情符号 (:D) 切换为表情符号 (?)。
该设置作为组件添加到 Components/user_settings/display/render_emoticons_as_emoji/ 中,并在 Components/user_settings/display/user_settings_display.tsx 中导入。
我在 user_settings_display.tsx 中添加了一个 renderOnOffLabel() 函数,该函数从 Components/user_settings/advanced/user_settings_advanced.tsx 中提取,以帮助渲染新组件。
使用 savePreferences() 操作将设置存储为用户首选项。
我已经为 utils/constants.tsx 和 webapp/channels/src/packages/mattermost-redux/src/constants/preferences.ts 添加了偏好常量。
为了实际使用该设置,我修改了 Components/post_markdown 以接收它的值作为道具,为此我使用了 getBool() 并向配置添加了默认值。 post_markdown 将此值传递给选项对象上的 Markdown,然后将其传递给 utils/text_formatting.tsx,最后将该值作为新添加的参数传递给 emoticons.tsx。 emoticons.tsx 检查该值是否为 true,如果是,则将表情符号转换为表情符号。
我已经更新了受影响的测试并为新组件创建了单元测试。我还更新了英文翻译文件。
QA 测试步骤
- 导航至用户设置。
- 转到显示类别。
- 找到标有“自动将表情符号渲染为表情符号”的部分,然后单击“编辑”。
- 切换设置并单击“保存”。
- 应使用该设置在客户端切换当前用户和其他用户发送的消息上的表情符号渲染。
门票链接
修复(部分)https://github.com/mattermost/mattermost/issues/26504 Jira https://mattermost.atlassian.net/browse/MM-53650
注意问题和票证也描述了将此功能添加到移动应用程序中,但此 PR 没有。
截图
before | after |
---|---|
![]() |
![]() |
发行说明
// Before const isLoading = navigation.state === 'submitting' && Number(navigation.formData.get('id')) === dnsRecord.id; // After const isLoading = navigation.state === 'submitting' && Number(navigation.formData?.get('id')) === dnsRecord.id;
处理这个 PR 很有趣,因为当我第一次提交它时,我什至不完全理解我的更改。离开很长一段时间后重新回到它并得到评论的反馈帮助我从一个新的角度看待它并更好地理解它。
Mattermost 应用程序从“首选项”和“配置”获取用户设置状态。我将我的设置添加到两者中,模仿建议我参考的现有设置之一,但事实证明“配置”用于服务器级设置,而这个新设置旨在成为客户端选项。这些评论帮助我了解了我哪里出错了,而且实际上最终的改变比我认为必要的要小。
总的来说,我想说这是相当富有成效的一周。
以上是恢复过时的项目的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境