這週,我對 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中文網其他相關文章!

javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps,while javascriptifforInteractiveWebpages.1)JavaisComcompoppored,statieldinglationallyTypted,statilly tater astrunsonjvm.2)

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)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver CS6
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。