Source Git

source-git ແມ່ນຊື່ລະຫັດໃນປັດຈຸບັນສຳລັບວຽກງານທີ່ກວມເອົາຫຼາຍຂົງເຂດ: ການເຮັດໃຫ້ການຫຸ້ມຫໍ່ເປັນລະບົບອັດຕະໂນມັດ ແລະ ການປັບປຸງ, ຄວາມສະຖຽນຂອງ rawhide, ແລະ ການເຮັດໃຫ້ໂຄງການຕົ້ນນ້ຳ (upstream) ເຂົ້າມາໃກ້ຊິດກັບ Fedora ຫຼາຍຂຶ້ນ. ໃນໂລກຂອງພວກເຮົາ, source git ແມ່ນບ່ອນເກັບຂໍ້ມູນ (repository) ທີ່ມີຊອດຕົ້ນນ້ຳ ແລະ ສູດການສ້າງຂອງ Fedora (ໄຟລ໌ spec, patch ປາຍນ້ຳ ໃນຮູບແບບ commit ເພີ່ມເຕີມ). ບ່ອນເກັບຂໍ້ມູນນີ້ປະກອບດ້ວຍກິ່ງ (branch) ຂອງ git ທີ່ຕິດຕາມເວີຊັນຕ່າງໆຂອງ Fedora. ຕາມອຸດົມຄະຕິແລ້ວ, source git ແມ່ນມີຄ່າເທົ່າກັບບ່ອນເກັບຂໍ້ມູນຕົ້ນນ້ຳ.

ຖະແຫຼງການພາລະກິດ

ພວກເຮົາກຳລັງມຸ່ງເປົ້າໝາຍໄປທີ່ສີ່ຢ່າງ:

  1. ເຮັດໃຫ້ໂຄງການຕົ້ນນ້ຳ (upstream) ເຂົ້າມາໃກ້ຊິດກັບ Fedora ຫຼາຍຂຶ້ນ.

  2. ປັບປຸງຄວາມສະຖຽນຂອງ Fedora rawhide.

  3. ປັບປຸງວຽກງານປະຈຳວັນຂອງຜູ້ເຮັດແພັກເກດ (packagers).

  4. ເຮັດໃຫ້ການດຶງເອົາເວີຊັນໃໝ່ຈາກຕົ້ນນ້ຳເຂົ້າສູ່ Fedora ເປັນລະບົບອັດຕະໂນມັດ.

ສົນໃຈບໍ່? ກະລຸນາອ່ານຕໍ່!

ແມ່ນຫຍັງ ແລະ ເປັນຫຍັງ?

  • ຄວາມຕັ້ງໃຈຂອງພວກເຮົາແມ່ນເພື່ອເຮັດໃຫ້ຊຸມຊົນປາຍນ້ຳ (downstream) ແລະ ຕົ້ນນ້ຳ (upstream) ໃກ້ຊິດກັນຫຼາຍຂຶ້ນ: ໂດຍການໃຫ້ຂໍ້ມູນຕອບກັບຈາກປາຍນ້ຳໄປຫາຕົ້ນນ້ຳ (ຕົວຢ່າງ: "ສະບາຍດີ \<ໂຄງການຕົ້ນນ້ຳ Y>, ເວີຊັນໃໝ່ລ້າສຸດຂອງທ່ານໃຊ້ງານບໍ່ໄດ້ໃນ Fedora rawhide, ມັນເຮັດໃຫ້ \<Z> ເພ, ນີ້ແມ່ນລິ້ງສຳລັບໄຟລ໌ບັນທຶກ (logs)."). ທັງໝົດນີ້ສາມາດເຮັດໃຫ້ເປັນລະບົບອັດຕະໂນມັດໄດ້.

  • ຜົນປະໂຫຍດຢ່າງໜຶ່ງແມ່ນ ມັນຈະເປັນເລື່ອງງ່າຍໃນການສະເໜີການປ່ຽນແປງກັບຄືນໄປຫາຕົ້ນນ້ຳ ຫຼື ການເລືອກດຶງເອົາ (cherry-pick) ການແກ້ໄຂຈາກຕົ້ນນ້ຳມາຫາປາຍນ້ຳ.

  • ຄວາມສະຖຽນຂອງ Fedora rawhide ແມ່ນສິ່ງສຳຄັນໃນຕອນນີ້: ຈະມີພຽງແຕ່ການຮວມ (merge), ການສ້າງ (build) ແລະ ການປະກອບສ່ວນປະກອບຕ່າງໆ ທີ່ເຂົ້າກັນໄດ້ດີກັບສ່ວນທີ່ເຫຼືອຂອງລະບົບປະຕິບັດການເທົ່ານັ້ນ. ຈະບໍ່ມີການປະກອບ (composes) ທີ່ໃຊ້ການບໍ່ໄດ້ ຫຼື ການອັບເດດທີ່ເຮັດໃຫ້ສ່ວນອື່ນໆຂອງລະບົບປະຕິບັດການເພອີກຕໍ່ໄປ.

  • ການພັດທະນາໃນ dist-git ແມ່ນມີຄວາມຫຍຸ້ງຍາກ. ການແກ້ໄຂໄຟລ໌ patch ແລະ ການຍ້າຍໄຟລ໌ tarball ໄປມາບໍ່ແມ່ນເລື່ອງທີ່ໜ້າມ່ວນເລີຍ. ເປັນຫຍັງຈຶ່ງບໍ່ເຮັດວຽກກັບຕົວຊອດໂຄດໂດຍກົງ? ດ້ວຍ source git, ທ່ານຈະມີບ່ອນເກັບຂໍ້ມູນຕົ້ນນ້ຳ ແລະ ເນື້ອໃນຂອງ dist-git ທີ່ຖືກຈັດເກັບໄວ້ໃນໂຟນເດີສະເພາະ.

  • ຂໍໃຫ້ພວກເຮົາໃຊ້ເຕັກນິກການພັດທະນາທີ່ທັນສະໄໝ ເຊັ່ນ: pull requests, ການກວດສອບໂຄດ (code review), ເຄື່ອງມື git ທີ່ທັນສະໄໝ, ລະບົບອັດຕະໂນມັດ ແລະ ການຮວມກັນແບບຕໍ່ເນື່ອງ (continuous integration). ພວກເຮົາສ້າງຄອມພິວເຕີມາເພື່ອເຮັດວຽກທີ່ຊ້ຳຊາກທັງໝົດ. ເປັນຫຍັງພວກເຮົາ ທີ່ເປັນມະນຸດ, ຈຶ່ງຄວນເຮັດວຽກແບບນັ້ນ?

  • ພວກເຮົາຕ້ອງການໃຫ້ dist-git ເປັນ "ຖານຂໍ້ມູນຂອງເນື້ອໃນໃນການປ່ອຍເວີຊັນ" ຫຼາຍກວ່າທີ່ຈະເປັນບ່ອນສຳລັບເຮັດວຽກຕົວຈິງ. ໃນທາງກົງກັນຂ້າມ, ທ່ານຍັງສາມາດໂຕ້ຕອບກັບ dist-git ໃນແບບເດີມໄດ້ຄືເກົ່າ. ພວກເຮົາບໍ່ໄດ້ເອົາມັນອອກໄປ. Source git ຖືກອອກແບບມາເພື່ອເປັນທາງເລືອກທີ່ທັນສະໄໝ ແລະ ດີກວ່າ.

  • ດຶງຂໍ້ມູນ ແລະ ກວດສອບເວີຊັນໃໝ່ຈາກຕົ້ນນ້ຳໂດຍອັດຕະໂນມັດ. ນີ້ສາມາດເປັນເລື່ອງງ່າຍໆທີ່ຈະເຮັດ, ເປັນຫຍັງຜູ້ເບິ່ງແຍງລະບົບ (maintainers) ຕ້ອງເສຍເວລາໄປກັບວຽກທີ່ສາມາດເຮັດໃຫ້ເປັນອັດຕະໂນມັດໄດ້.

ສະຖານະປັດຈຸບັນ

ໃນຕອນນີ້ພວກເຮົາກຳລັງມຸ່ງເປົ້າໄປທີ່ການສ້າງບົດພິສູດແນວຄິດ (proof of concept). ເມື່ອສຳເລັດແລ້ວ, ພວກເຮົາຈະສ້າງຕົວຢ່າງການສາທິດ ແລະ ນຳສະເໜີຢູ່ທີ່ DevConf.cz.

ພວກເຮົາເຂົ້າໃຈວ່າໜ້ານີ້ຂ້ອນຂ້າງສັ້ນ. ເມື່ອພວກເຮົາມີຂໍ້ມູນເພີ່ມເຕີມທີ່ຈະແບ່ງປັນ (ໂດຍສະເພາະເມື່ອບົດພິສູດແນວຄິດສຳເລັດແລ້ວ), ພວກເຮົາຈະອັບເດດໜ້າ wiki ນີ້. ໃນລະຫວ່າງນີ້, ກະລຸນາກວດສອບ github repo ສຳລັບຂໍ້ມູນທີ່ທັນສະໄໝ.