Elixir adalah bahasa dinamis dan fungsional yang dirancang untuk membangun aplikasi yang skalabel dan dapat dipelihara.
Untuk informasi lebih lanjut tentang Elixir, instalasi dan dokumentasi, periksa situs web Elixir.
Rilisan baru diumumkan di milis pengumuman. Anda dapat berlangganan dengan mengirimkan email ke [email protected] dan membalas email konfirmasi.
Semua rilis keamanan akan ditandai dengan [security]
. Untuk informasi lebih lanjut, silakan baca Kebijakan Keamanan kami.
Semua interaksi di saluran komunikasi resmi kami mengikuti Kode Etik kami.
Untuk melaporkan bug, kunjungi pelacak masalah kami dan ikuti langkah-langkah untuk melaporkan masalah baru. Harap ungkapkan kerentanan keamanan secara pribadi di [email protected] .
Semua bug yang terbuka saat ini terkait dengan repositori Elixir tercantum dalam pelacak masalah. Tim Elixir menggunakan pelacak masalah untuk fokus pada hal-hal yang dapat ditindaklanjuti , termasuk perbaikan yang direncanakan dalam jangka pendek dan menengah. Kami juga melakukan yang terbaik untuk memberi label pada entri demi kejelasan dan kemudahan kolaborasi.
Kebijakan item yang dapat ditindaklanjuti kami memiliki beberapa konsekuensi penting, seperti:
Pengajuan fitur-fitur baru serta permintaan dukungan, bantuan, dan bimbingan harus dilakukan di ruang mereka sendiri, yang akan dijelaskan lebih lanjut.
Masalah yang kami identifikasi berada di luar cakupan Elixir, seperti bug upstream, akan ditutup (dan diminta untuk dipindahkan ke tempat lain jika diperlukan).
Kami secara aktif menutup masalah yang tidak terkait dan tidak dapat ditindaklanjuti untuk menjaga agar pelacak masalah tetap rapi. Kami mungkin melakukan kesalahan dari waktu ke waktu dan dengan senang hati akan meninjau kembali masalah tersebut, membuka kembali bila diperlukan.
Pertahankan nada positif dan bersikap baik! Untuk informasi lebih lanjut, lihat Kode Etik.
Untuk usulan fitur baru, silakan memulai diskusi di milis Elixir Core. Sejarah perkembangan bahasa dan fokusnya dijelaskan di situs web kami.
Ingatlah bahwa Anda bertanggung jawab untuk berdebat dan menjelaskan mengapa suatu fitur berguna dan bagaimana hal itu akan berdampak pada basis kode dan komunitas. Proposal yang baik mencakup deskripsi masalah dan bagaimana solusi yang diusulkan dibandingkan dengan alternatif yang ada di ekosistem Elixir (dan juga dalam bahasa lain). Untuk menyelesaikan proposal sebelum diajukan, pertimbangkan untuk menggunakan dan mengumpulkan umpan balik dari ruang komunitas yang tercantum di sidebar situs web Elixir.
Setelah proposal diterima, proposal tersebut akan ditambahkan ke pelacak masalah. Fitur dan perbaikan bug yang telah digabungkan dan akan disertakan dalam rilis berikutnya kemudian "ditutup" dan ditambahkan ke log perubahan.
Untuk diskusi umum, dukungan, dan bantuan, silakan gunakan ruang komunitas yang tercantum di sidebar situs web Elixir, seperti forum, platform obrolan, dll, di mana komunitas luas akan tersedia untuk membantu Anda.
Untuk mengetahui berbagai cara menginstal Elixir, lihat petunjuk instalasi kami di situs web. Namun, jika Anda ingin berkontribusi pada Elixir, Anda perlu mengkompilasinya dari sumber.
Pertama, instal Erlang. Setelah itu, clone repositori ini ke mesin Anda, kompilasi dan uji:
git clone https://github.com/elixir-lang/elixir.git
cd elixir
make
Catatan: jika Anda menjalankan di Windows, artikel ini menyertakan catatan penting untuk mengkompilasi Elixir dari sumber di Windows.
Jika Anda ingin menggunakan versi Elixir ini sebagai versi sistem Anda, Anda perlu menambahkan direktori bin
ke variabel lingkungan PATH Anda.
Saat memperbarui repositori, Anda mungkin ingin menjalankan make clean
sebelum mengkompilasi ulang. Untuk build deterministik, Anda harus menyetel variabel lingkungan ERL_COMPILER_OPTIONS=deterministic
.
Kami mengundang kontribusi ke Elixir. Untuk berkontribusi, ada beberapa hal yang perlu Anda ketahui tentang kode. Pertama, kode Elixir dibagi berdasarkan masing-masing aplikasi di dalam folder lib
:
elixir
- Kernel Elixir dan perpustakaan standar
eex
- EEx adalah mesin templat yang memungkinkan Anda menyematkan Elixir
ex_unit
- ExUnit adalah kerangka pengujian sederhana yang dikirimkan bersama Elixir
iex
- IEx adalah singkatan dari Interactive Elixir: shell interaktif Elixir
logger
- Logger adalah logger bawaan
mix
- Mix adalah alat pembuatan Elixir
Anda dapat menjalankan semua tes di direktori root dengan make test
. Anda juga dapat menjalankan pengujian untuk kerangka kerja tertentu dengan make test_#{APPLICATION}
, misalnya make test_ex_unit
. Jika Anda baru saja mengubah sesuatu di perpustakaan standar Elixir, Anda hanya dapat menjalankan bagian itu melalui make test_stdlib
.
Jika Anda hanya mengubah satu file, Anda dapat memilih untuk mengkompilasi dan menjalankan pengujian untuk file spesifik tersebut untuk siklus pengembangan yang lebih cepat. Misalnya, jika Anda mengubah modul String, Anda dapat mengkompilasinya dan menjalankan pengujiannya sebagai:
bin/elixirc lib/elixir/lib/string.ex -o lib/elixir/ebin
bin/elixir lib/elixir/test/elixir/string_test.exs
Beberapa file pengujian memerlukan test_helper.exs
yang diwajibkan secara eksplisit sebelumnya, seperti:
bin/elixir -r lib/logger/test/test_helper.exs lib/logger/test/logger_test.exs
Anda juga dapat menggunakan LINE
env var untuk menjalankan satu pengujian:
LINE=123 bin/elixir lib/elixir/test/elixir/string_test.exs
Untuk mengkompilasi ulang semua (termasuk modul Erlang):
make compile
Setelah perubahan Anda selesai, harap ingat untuk menjalankan make format
untuk menjamin semua file diformat dengan benar, kemudian jalankan rangkaian lengkap dengan make test
.
Jika kontribusi Anda gagal selama bootstrap bahasa tersebut, Anda dapat membangun kembali bahasa tersebut dari awal dengan:
make clean_elixir compile
Demikian pula, jika Anda tidak dapat mengkompilasi Elixir atau tes lulus setelah memperbarui checkout yang ada, jalankan make clean compile
. Anda dapat memeriksa status pembangunan resmi. Lebih banyak tugas dapat ditemukan dengan membaca Makefile.
Dengan pengujian yang berjalan dan lulus, Anda siap berkontribusi pada Elixir dan mengirimkan permintaan penarikan. Kami telah menyimpan beberapa permintaan penarikan luar biasa yang kami terima sebelumnya jika Anda mencari beberapa contoh:
Setelah permintaan penarikan dikirim, tim Elixir akan meninjau perubahan Anda. Kami menguraikan proses kami di bawah ini untuk memperjelas peran semua orang yang terlibat.
Semua permintaan penarikan harus disetujui oleh dua pengimplementasi sebelum digabungkan ke dalam repositori. Jika perubahan diperlukan, tim akan meninggalkan komentar yang sesuai untuk meminta perubahan pada kode. Sayangnya, kami tidak dapat menjamin permintaan penarikan akan digabungkan, meskipun ada permintaan modifikasi, karena tim Elixir akan mengevaluasi ulang kontribusi seiring perubahannya.
Committer juga dapat mendorong perubahan gaya langsung ke cabang Anda. Jika Anda lebih suka mengelola semua perubahan sendiri, Anda dapat menonaktifkan fitur "Izinkan pengeditan dari pengelola" saat mengirimkan permintaan penarikan.
Tim Elixir secara opsional dapat menugaskan seseorang untuk meninjau permintaan penarikan. Jika seseorang ditugaskan, mereka harus secara eksplisit menyetujui kode tersebut sebelum anggota tim lain dapat menggabungkannya.
Saat peninjauan selesai, permintaan penarikan Anda akan dihapus dan digabungkan ke dalam repositori. Jika Anda telah mengatur komitmen Anda dengan hati-hati dan yakin komitmen tersebut harus digabungkan tanpa tergencet, silakan sebutkan di komentar.
Pembuatan dokumentasi mengharuskan ExDoc diinstal dan dibuat bersama Elixir:
# After cloning and compiling Elixir, in its parent directory:
git clone https://github.com/elixir-lang/ex_doc.git
cd ex_doc && ../elixir/bin/elixir ../elixir/bin/mix do deps.get + compile
Sekarang kembali ke direktori root Elixir dan jalankan:
make docs # to generate HTML pages
make docs DOCS_FORMAT=epub # to generate EPUB documents
Ini akan menghasilkan kumpulan dokumentasi untuk elixir
, eex
, ex_unit
, iex
, logger
, dan mix
di bawah direktori doc
. Jika Anda berencana untuk menyumbangkan dokumentasi, silakan periksa praktik terbaik kami untuk menulis dokumentasi.
"Elixir" dan logo Elixir adalah merek dagang terdaftar dari The Elixir Team.
Kode sumber Elixir dirilis di bawah Lisensi Apache 2.0.
Periksa file PEMBERITAHUAN dan LISENSI untuk informasi lebih lanjut.