Proyek 06 memasang penjaga terakhir pada riwayat: hooks yang memeriksa setiap commit sebelum commit itu diperbolehkan lahir. Dengan itu, satu kompetensi saja yang belum pernah dilatih tangan kita dari ujung ke ujung: mengemas pekerjaan yang sudah terjaga kualitasnya menjadi sebuah rilis. Proyek penutup ini mengerjakannya — dan sekaligus merangkai seluruh perjalanan course, dari commit pertama sampai tag yang diberi nomor versi, dalam satu putaran utuh.

Panggungnya adalah katalog film: aplikasi teks kecil dengan daftar film dan pencarian judul. Kita menuntaskan dua fitur lewat branch, memasang satu perbaikan, membekukan riwayat, lalu menjalani ritual rilis yang sesungguhnya — menimbang angka versi dengan Semantic Versioning, menandai titik rilis dengan annotated tag, menyusun changelog untuk pembaca manusia, membungkus artefak dari tag, dan memverifikasi bahwa hasilnya benar-benar bisa dihidupkan kembali dari remote.

Apa yang Kita Bangun #

Rilis v1.0.0 proyek katalog film dikerjakan dalam empat babak:

  • menentukan versi — dua fitur digabungkan lewat branch fitur/* masing-masing, satu perbaikan typo menyusul, riwayat dibekukan dan ditinjau, lalu angka 1.0.0 dipilih dengan pertimbangan SemVer dan dikunci ke berkas VERSION;
  • membuat tag — titik rilis ditandai git tag -a v1.0.0 dengan pesan rilis multi-baris, dibedah metadatanya, dan dibagikan ke remote pusat;
  • menyiapkan changelog — riwayat commit diterjemahkan menjadi CHANGELOG.md format Keep a Changelog, dan satu pelajaran tentang urutan changelog-versus-tag dibayar jujur dengan tag ulang;
  • menerbitkan release — seluruh commit dan tag didorong, artefak tar.gz dibungkus langsung dari tag, catatan rilis disusun, dan satu clone baru membuktikan rilis berdiri utuh.

Alur keempat babak itu berjalan sebagai satu pipa:

Diagram itu dibaca dari kiri ke kanan sebagai satu tarikan napas: bahan fitur masuk di kiri, keluar sebagai rilis bernomor di kanan. Hasil akhirnya: repository katalog-film dengan delapan commit (dua gelembung merge), tag annotated v1.0.0 yang menunjuk tepat ke commit rilis lengkap dengan changelog, berkas CHANGELOG.md yang terformat rapi, artefak katalog-film-1.0.0.tar.gz, dan clone verifikasi yang melaporkan v1.0.0 dari git describe.

Peta Empat Bagian #

BagianFokusBekal utamaPerkiraan waktu
Bagian 1: Menentukan Versibangun repo, dua fitur merged, satu fix, freeze, kunci 1.0.0Semantic Versioning , git merge20 menit
Bagian 2: Membuat Tagtag annotated berpesan rilis, bedah, bagi ke pusatAnnotated Tag , Berbagi Tag ke Remote15 menit
Bagian 3: Menyiapkan Changelogsusun CHANGELOG.md, temukan tag tertinggal, tag ulangChangelog , Release Workflow20 menit
Bagian 4: Menerbitkan Releasepush penuh, artefak, catatan rilis, verifikasi cloneRelease Workflow25 menit

Total waktu pengerjaan sekitar 80 menit. Setiap bagian berdiri di atas keadaan akhir bagian sebelumnya, jadi kerjakan berurutan dari Bagian 1.

Prasyarat #

Materi berikut perlu dikuasai sebelum mulai; setiap konsep dipakai tanpa dijelaskan ulang di sini:

Alat yang dipakai adalah Git 2.23 ke atas; seluruh sesi diuji nyata pada Git 2.47.3.

Struktur Proyek dan Transkrip #

Panggung rilis kita bernama proyek-07 dengan susunan berikut:

text
proyek-07/
├── katalog-film/                   ← repository kerja (README.md, VERSION, src/app.txt, CHANGELOG.md)
│   ├── katalog-film-1.0.0.tar.gz   ← artefak rilis (git archive dari tag)
│   └── verifikasi/                 ← clone baru dari bare (uji ujung-ke-ujung)
└── katalog-film-pusat.git/         ← remote pusat (bare, tanpa working tree)

Berkas README.md, CHANGELOG.md, VERSION, dan src/app.txt yang menyertai halaman proyek ini memuat kondisi akhir repository — bandingkan isinya dengan hasil kerja kita setelah Bagian 4 selesai.

Semua bekal sudah di tangan. Mari tutup course ini dengan caranya para tim sungguhan: satu rilis utuh dari commit pertama sampai tag terverifikasi — mulai dari Bagian 1: Menentukan Versi .