Rumah >hujung hadapan web >tutorial js >Menghidupkan Projek Lapuk

Menghidupkan Projek Lapuk

Linda Hamilton
Linda Hamiltonasal
2025-01-22 06:30:16122semak imbas

Minggu ini, saya melakukan beberapa kerja penyelenggaraan pada Starchart. Projek ini telah lama tidak diusahakan, jadi kami cuba mengemas kini kebergantungannya.

GitHub logo DevelopingSpace / carta kanji

Alat layan diri untuk mengurus domain dan sijil tersuai

Carta Star License: MIT

Starchart memudahkan komuniti pembangun Seneca untuk mencipta dan mengurus subdomain tersuai dan sijil SSL mereka sendiri, tanpa kos atau perlu memberikan maklumat peribadi.

Untuk mendapatkan maklumat tentang menjalankan Starchart, lihat panduan penggunaan kami. Untuk maklumat pembangunan, lihat panduan penyumbang kami. Untuk latar belakang teknikal lanjut, perancangan dan reka bentuk awal, sila lihat wiki.

Pengenalan

Internet sedang berkembang, dan perkara yang dahulu sukar menjadi mudah. Contohnya, mengehos tapak web anda sendiri yang dahulunya memerlukan pengetahuan tentang pentadbiran pelayan, sistem pengendalian, rangkaian, dsb. Hari ini, banyak pembangun mengehoskan tapak web peribadi dan projek mereka tanpa pernah menyentuh pelayan jauh, memilih perkhidmatan awan (percuma) seperti Halaman GitHub, Vercel, Netlify atau AWS.

Model keselamatan internet juga sedang berkembang. Sebagai contoh, vendor penyemak imbas telah menerima HTTPS di mana-mana sahaja. Ini bagus untuk keselamatan, kerana ia membolehkan penyulitan berasaskan sijil antara pelanggan dan pelayan. Walau bagaimanapun, seperti…

Lihat di GitHub

Rancangannya adalah untuk membetulkan aliran kerja CI, yang kami dapati telah rosak minggu lepas:

Image description

Tetapi sebelum saya dapat menyelesaikannya, salah seorang pembangun terdahulu, Eakam, telah menyelesaikan isu itu - ternyata ia hanya kerana Playwright sudah ketinggalan zaman.

Menghidupkan Projek Lapuk Bump penulis drama kepada 1.49.1 #772

Menghidupkan Projek Lapuk
Eakam1007 disiarkan pada

Pemasangan pengarang drama gagal dalam CI (Ujian E2E). Versi pengarang drama yang terhempas harus membetulkannya.

Ruj: Installation error log

Lihat di GitHub

Saya rasa saya harus menebusnya dengan mencari lebih banyak perkara untuk diusahakan dan fikir mengemas kini lebih banyak kebergantungan akan menjadi titik permulaan yang bagus.

Memandangkan projek itu tidak diusahakan selama 2 tahun, terdapat banyak kelemahan keselamatan yang berpunca daripada pakej yang sudah lapuk. Saya dapat membetulkan kebanyakannya dengan pembetulan audit npm.

Terdapat beberapa lagi pembetulan yang menyebabkan perubahan yang terputus dalam @remix-run/eslint-config dan @remix-run/react, jadi saya menemuinya secara manual.

Salah satu kemas kini (saya menemuinya pada masa yang sama jadi saya tidak boleh mengatakan dengan pasti tetapi pertaruhan saya adalah pada /react) membawa kepada ralat semakan taip kerana [@remix-run/react].useNavigation( ).formData kini mungkin daripada jenis yang tidak ditentukan. Saya membetulkannya dengan rantaian pilihan.

// 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;

Perubahan lain yang saya buat ada kaitan dengan beberapa ralat lint yang muncul (Pada ketika ini saya menyedari bahawa sambungan ESLint saya telah dimatikan, tetapi saya pasti amaran ini disertakan dengan kemas kini, kerana ia tidak pernah berlaku dalam CI pada masa lalu).

  1. Kejadian mengimport modul yang sama beberapa kali dalam satu fail:
// 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';
  1. Menggunakan let apabila const lebih disukai:
// Before
let date = val.toLocaleDateString('en-US', {

// After
const date = val.toLocaleDateString('en-US', {

Terkejut ia tidak menangkap ini sebelum ini.

Selain itu, apabila saya menghidupkan sambungan ESLint, saya agak terkejut kerana terdapat ~900 ralat linter. Ternyata ia adalah kerana ESLint sedang menyelitkan output yang dijana oleh Playwright. Jadi saya menambah /playwright-report ke .eslintignore.

Dan itu adalah jumlah kerja penyelenggaraan saya untuk pecut ini. Akhirnya membetulkan 30 isu keselamatan yang teruk, jadi tidak teruk.

Menghidupkan Projek Lapuk Kemas kini kebergantungan #775

Menghidupkan Projek Lapuk
uday-rana disiarkan pada

Sepatutnya membaiki sekumpulan kelemahan keselamatan.

Perubahan

  • [x] Kebergantungan bump
  • [x] Tambahkan /playwright-report ke .eslintignore
  • [x] Betulkan semakan taip dan ralat linter
Lihat di GitHub

Saya juga mengaktifkan semula Dependabot yang menemui beberapa versi kecil. Alangkah baiknya jika anda tidak perlu menyiasat dan menambal kelemahan keselamatan secara manual.

Dalam berita lain, salah satu permintaan tarik saya kepada Mattermost akhirnya digabungkan!

Menghidupkan Projek Lapuk [GH-29548] Elakkan SELECT * dalam `tokens_store.go` #29558

Menghidupkan Projek Lapuk
uday-rana disiarkan pada

Ringkasan

PR ini:

  • Tukar pertanyaan SQL dalam token_store.go untuk menggunakan SQLBuilder
  • Mentakrifkan lajur secara eksplisit dalam pertanyaan PILIH kepada TokenStore.
  • Faktorkan pertanyaan biasa ke dalam pembina.

Pautan Tiket

Membetulkan #29548

Tangkapan skrin

Nota Keluaran

// 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;
Lihat di GitHub

Ia telah diluluskan sebentar tadi tetapi mengambil masa beberapa minggu untuk digabungkan menjadi utama.

Sementara itu saya telah mengusahakan PR saya yang lain. Saya diminta membuat beberapa perubahan dan saya sedang menunggu semakan semula.

Menghidupkan Projek Lapuk [MM-53650] Tambahkan lumpuhkan tetapan pemaparan emotikon pada apl web #29414

Menghidupkan Projek Lapuk
uday-rana disiarkan pada

Ringkasan

Permintaan tarik ini menambahkan tetapan pengguna pada apl web untuk menogol emotikon pemaparan (:D) sebagai emoji (?).

Tetapan ditambahkan sebagai komponen dalam komponen/tetapan_pengguna/paparan/render_emoticons_as_emoji/ yang diimport dalam komponen/tetapan_pengguna/display/pengguna_tetapan_paparan.tsx.

Saya telah menambahkan fungsi renderOnOffLabel() pada user_settings_display.tsx, dialih keluar daripada component/user_settings/advanced/user_settings_advanced.tsx untuk membantu memaparkan komponen baharu.

Tetapan disimpan sebagai pilihan pengguna menggunakan tindakan savePreferences().

Saya telah menambah pemalar untuk keutamaan kepada utils/constants.tsx dan webapp/channels/src/packages/mattermost-redux/src/constants/preferences.ts.

Untuk benar-benar menggunakan tetapan, saya telah mengubah suai komponen/post_markdown untuk menerima nilainya sebagai prop, yang mana saya telah menggunakan getBool() dan menambah nilai lalai pada konfigurasi. post_markdown menurunkan nilai ini kepada Markdown pada objek pilihan, yang kemudian menurunkannya kepada utils/text_formatting.tsx, yang akhirnya menghantar nilai kepada emoticons.tsx sebagai parameter yang baru ditambah. emotikon.tsx menyemak sama ada nilai itu benar dan jika benar, ia menukar emotikon kepada emoji.

Saya telah mengemas kini ujian yang terjejas dan membuat ujian unit untuk komponen baharu. Saya juga telah mengemas kini fail terjemahan bahasa Inggeris.

Langkah Ujian QA
  1. Navigasi ke Tetapan Pengguna.
  2. Pergi ke kategori Paparan.
  3. Cari bahagian yang berlabel "Autopapar emotikon sebagai emoji" dan klik "Edit".
  4. Togol tetapan dan klik "Simpan".
  5. Penyampaian emotikon pada mesej yang dihantar oleh pengguna semasa dan pengguna lain harus ditogol di sisi klien dengan tetapan.

Pautan Tiket

Pembetulan (sebahagiannya) https://github.com/mattermost/mattermost/issues/26504 Jira https://mattermost.atlassian.net/browse/MM-53650

Perhatikan isu dan tiket menerangkan penambahan ciri ini pada apl mudah alih juga, yang PR ini tidak melakukannya.

Tangkapan skrin

before after
Menghidupkan Projek Lapuk Menghidupkan Projek Lapuk

Nota Keluaran

// 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;
Lihat di GitHub

Mengusahakan PR ini menarik kerana semasa saya mula-mula menyerahkannya, saya tidak faham sepenuhnya perubahan saya. Mengimbas kembali setelah sekian lama meninggalkannya dan dengan maklum balas daripada ulasan membantu saya melihatnya dari perspektif baharu dan memahaminya dengan lebih baik.

Apl Mattermost mendapat keadaan tetapan pengguna daripada kedua-dua "keutamaan" dan daripada "konfigurasi". Saya menambah tetapan saya kepada kedua-duanya, meniru salah satu tetapan sedia ada yang saya dinasihatkan untuk merujuk, tetapi ternyata "konfigurasi" adalah untuk tetapan peringkat pelayan, manakala tetapan baharu ini bertujuan untuk menjadi pilihan pihak klien. Ulasan membantu saya memahami di mana silap saya, dan ia akhirnya menjadi perubahan yang lebih kecil daripada yang saya fikirkan perlu.

Secara keseluruhannya saya katakan ia adalah minggu yang agak produktif.

Atas ialah kandungan terperinci Menghidupkan Projek Lapuk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn