ການອັບໂຫຼດ ແລະ ການທົດສອບດ້ວຍ ubports-qa¶
UBports build service ສາມາດສ້າງແພັກເກັດ Ubuntu Touch ແລະ deploy ພວກມັນໄປຍັງ UBports repository. ຄວາມສາມາດນີ້ເປີດໃຫ້ນັກພັດທະນາທຸກຄົນທີ່ຕ້ອງການນຳໃຊ້.
ຄູ່ມືນີ້ສົມມຸດວ່າທ່ານມີຄວາມເຂົ້າໃຈພື້ນຖານກ່ຽວກັບການນຳໃຊ້ Git ແລະ ການສ້າງ Pull Requests ໃນ GitHub.
ເພື່ອໃຊ້ UBports build service, ໃຫ້ແນ່ໃຈວ່າທ່ານເຂົ້າໃຈ ຂໍ້ກຳນົດການຕັ້ງຊື່ branch ຂອງພວກເຮົາ. ທ່ານຈຳເປັນຕ້ອງປະຕິບັດຕາມຂໍ້ກຳນົດສຳລັບ deb-packages ເພື່ອໃຫ້ CI ສ້າງແພັກເກັດຂອງທ່ານຢ່າງຖືກຕ້ອງ.
Fork (ສຳເນົາ) repository¶
ຂັ້ນຕອນທຳອິດໃນການປ່ຽນແປງ repository ທີ່ທ່ານບໍ່ມີສິດຂຽນ (write access) ແມ່ນການ fork ມັນ. ເປີດ repository ທີ່ທ່ານຕ້ອງການໃນ GitHub ແລະ ຄລິກປຸ່ມ "Fork" ຢູ່ມຸມຂວາເທິງ. ຖ້າມີໃຫ້ເລືອກ, ໃຫ້ເລືອກບັນຊີທີ່ເໝາະສົມເພື່ອ fork repository ໄປຫາ. ຈາກນັ້ນ, clone fork ຂອງທ່ານມາໄວ້ໃນຄອມພິວເຕີ.
ຕອນນີ້ທ່ານພ້ອມທີ່ຈະທຳການປ່ຽນແປງແລ້ວ!
ສ້າງ ແລະ ບັນທຶກ (commit) ການປ່ຽນແປງ¶
ຕອນນີ້ທ່ານມີຊອຣ໌ສ (source) ແພັກເກັດທີ່ດາວໂຫຼດມາແລ້ວ, ທ່ານສາມາດປ່ຽນແປງຕາມທີ່ຕ້ອງການໄດ້.
ກ່ອນທີ່ຈະປ່ຽນແປງຫຍັງ, ໃຫ້ແນ່ໃຈວ່າທ່ານໄດ້ check out branch ທີ່ທ່ານຕ້ອງການເຮັດວຽກ (ອາດຈະເປັນ xenial, ໂດຍສົມມຸດວ່າທ່ານກຳລັງປ່ຽນແປງສຳລັບ phone images). ຈາກນັ້ນ, ສ້າງ branch ໃໝ່ໂດຍປະຕິບັດຕາມ ຂໍ້ກຳນົດການຕັ້ງຊື່ branch.
ຫຼັງຈາກປ່ຽນແປງແລ້ວ, ໃຫ້ commit ພວກມັນດ້ວຍຂໍ້ຄວາມ commit ທີ່ອະທິບາຍວ່າ ມີຫຍັງຜິດພາດ ແລະ ເປັນຫຍັງການປ່ຽນແປງຂອງທ່ານຈຶ່ງແກ້ໄຂບັນຫານັ້ນ.
ທ່ານໄດ້ສ້າງ ແລະ commit ການປ່ຽນແປງຂອງທ່ານສຳເລັດແລ້ວ. ກ່ອນທີ່ຈະ push ການປ່ຽນແປງຂອງທ່ານ, ພວກເຮົາຈະຕ້ອງຮັບປະກັນວ່າອຸປະກອນຂອງທ່ານຈະສາມາດຕິດຕັ້ງພວກມັນໄດ້.
ອັບເດດໄຟລ໌ debian/changelog¶
ໂດຍທົ່ວໄປ, apt ຈະບໍ່ຕິດຕັ້ງແພັກເກັດໃໝ່ຈາກ repository ໃດໆ ຖ້າມັນມີເລກເວີຊັນ (version number) ຕ່ຳກວ່າ (ຫຼື ເທົ່າກັນ) ກັບແພັກເກັດທີ່ມັນຈະປ່ຽນແທນ. ຜູ້ໃຊ້ອາດຈະຕ້ອງການເຫັນການປ່ຽນແປງທີ່ລວມຢູ່ໃນເວີຊັນໃໝ່ຂອງແພັກເກັດ. ດ້ວຍເຫດຜົນນັ້ນ, ພວກເຮົາຈຳເປັນຕ້ອງອັບເດດ changelog ຂອງແພັກເກັດເພື່ອເພີ່ມເວີຊັນໃໝ່.
Note
ນີ້ບໍ່ແມ່ນການອ້າງອີງທັງໝົດຂອງຮູບແບບ debian/changelog. ເບິ່ງ deb-changelog(5) ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ.
ກຳນົດເວີຊັນ (version number) ໃໝ່¶
To start, figure out what the current version numbering for the package is:
head debian/changelog
This will return a few lines, but the first is the most important to us:
morph-browser (0.24+ubports2) xenial; urgency=medium
ສ່ວນທີ່ຢູ່ໃນວົງເລັບ (0.24+ubports2) ແມ່ນເລກເວີຊັນຂອງພວກເຮົາ. ມັນປະກອບດ້ວຍຫຼາຍພາກສ່ວນ:
0.24ແມ່ນ upstream version number, ເຊິ່ງແມ່ນເວີຊັນທີ່ຜູ້ຮັກສາໂຄງການຕົ້ນສະບັບມອບໃຫ້ກັບ release ທີ່ພວກເຮົາກຳລັງນຳໃຊ້. ສຳລັບໂຄງການ UBports ສ່ວນໃຫຍ່, repository ທີ່ທ່ານຈະເຮັດວຽກນັ້ນແມ່ນໂຄດຂອງໂຄງການຕົ້ນສະບັບ. ສິ່ງນີ້ເຮັດໃຫ້ UBports ເປັນ "upstream" ຂອງໂຄງການນັ້ນ.
If you are making large changes to the repository and UBports is the upstream, you should increment the first part of the version number before the plus (+) and reset the distribution suffix. In our example above, you would make this new version number:
0.25+ubports0
If you are making changes only to the package build (files in the debian/ folder), it is best to only increment the version suffix:
0.24+ubports3
Note
ຖ້າທ່ານພົບແພັກເກັດທີ່ເບິ່ງຄືວ່າບໍ່ໄດ້ປະຕິບັດຕາມຮູບແບບເວີຊັນຂ້າງເທິງ, ກະລຸນາຕິດຕໍ່ພວກເຮົາເພື່ອສອບຖາມວິທີດຳເນີນການ.
ຂຽນລາຍການ changelog¶
Now it is time to write your changelog entry! Start with the following template:
PACKAGE-NAME (VERSION) DISTRIBUTION; urgency=medium
* CHANGES
-- NAME <EMAIL> DATETIME
ຖ້າທ່ານເປີດໄຟລ໌ debian/changelog, ທ່ານຈະພົບວ່າທຸກໆລາຍການປະຕິບັດຕາມຮູບແບບນີ້. ສິ່ງນີ້ຊ່ວຍໃຫ້ທຸກຄົນ (ລວມທັງຄອມພິວເຕີ) ສາມາດອ່ານ ແລະ ເຂົ້າໃຈເນື້ອຫາໄດ້. ນີ້ຖືກນຳໃຊ້ ເພື່ອຕັ້ງຊື່ແພັກເກັດຂາອອກ (output package) ໃຫ້ຖືກຕ້ອງສຳລັບທຸກໆເວີຊັນຂອງແພັກເກັດ.
ສົມມຸດວ່າຂ້າພະເຈົ້າ, John Doe, ກຳລັງປ່ຽນແປງການຫຸ້ມຫໍ່ຂອງແພັກເກັດ morph-browser ສຳລັບ Ubuntu Touch. ຂ້າພະເຈົ້າຈະປ່ຽນແທນບ່ອນວາງຕົວພິມໃຫຍ່ທັງໝົດຂ້າງເທິງດ້ວຍວິທີຕໍ່ໄປນີ້:
PACKAGE-NAME ຖືກປ່ຽນແທນດ້ວຍ
morph-browserVERSION ຖືກປ່ຽນແທນດ້ວຍ
0.24+ubports3(ທີ່ພວກເຮົາກຳນົດໄວ້ຂ້າງເທິງ)DISTRIBUTION ຖືກປ່ຽນແທນດ້ວຍ
xenialCHANGES ຖືກປ່ຽນແທນດ້ວຍການປ່ຽນແປງທີ່ຂ້າພະເຈົ້າໄດ້ເຮັດໃນ release ນີ້. ນີ້ຈະລວມເອົາຂໍ້ມູນສະຫຼຸບຈາກຂໍ້ຄວາມ commit ພ້ອມກັບລາຍການ bugs ທີ່ໄດ້ຮັບການແກ້ໄຂ. ຖ້າແກ້ໄຂຫຼາຍ bugs, ໃຫ້ສ້າງເປັນຫຼາຍ bullet points.
NAME ຖືກປ່ຽນແທນດ້ວຍຊື່ຂອງຂ້າພະເຈົ້າ,
John DoeEMAIL ຖືກປ່ຽນແທນດ້ວຍອີເມວ,
john.doe@example.com.Note
ທ່ານບໍ່ຄວນໃຊ້ "noreply" e-mail ເປັນ EMAIL ຂອງທ່ານສຳລັບລາຍການ changelog ຂອງແພັກເກັດ.
DATETIME ຖືກປ່ຽນແທນດ້ວຍວັນທີ ແລະ ເວລາທີ່ສ້າງລາຍການ changelog ນີ້ໃນຮູບແບບ RFC2822/RFC5322. ວິທີທີ່ງ່າຍທີ່ສຸດແມ່ນການແລ່ນຄຳສັ່ງ
date -Rໃນ terminal.
ໃຫ້ສັງເກດວ່າ ບໍ່ຄວນມີແຖວໃດໃນລາຍການ changelog ຂອງທ່ານທີ່ຍາວກວ່າ 80 ຕົວອັກສອນ.
With that, my new changelog entry follows:
morph-browser (0.24+ubports3) xenial; urgency=medium
* Add the new "Hello world" script to the package. Fixes
https://github.com/ubports/morph-browser/issues/404.
* Fix whitespace and formatting in the format.qml file
-- John Doe <john.doe@example.com> Mon, 29 Oct 2018 12:53:08 -0500
ເພີ່ມລາຍການ changelog ໃໝ່ຂອງທ່ານໃສ່ທາງເທິງຂອງໄຟລ໌ debian/changelog ແລະ commit ດ້ວຍຂໍ້ຄວາມ "Update changelog". ຈາກນັ້ນ Push ການປ່ຽນແປງຂອງທ່ານ. ຕອນນີ້ທ່ານພ້ອມທີ່ຈະສ້າງ Pull Request ແລ້ວ!
ສ້າງ pull request ຂອງທ່ານ¶
Pull request ແມ່ນການຂໍໃຫ້ຜູ້ຮັກສາລະບົບ (maintainers) ຂອງ UBports ກວດສອບການປ່ຽນແປງໂຄດ ແລະ ເພີ່ມພວກມັນໃສ່ official repository. ພວກເຮົາຈະສ້າງມັນດຽວນີ້.
ເປີດ fork ຂອງ repository ຂອງທ່ານໃນ GitHub. ໄປທີ່ branch ທີ່ທ່ານຫາກໍ່ push ໄປຫາ ໂດຍນຳໃຊ້ຕົວເລືອກ "Branch":
ເມື່ອທ່ານເປີດ branch ທີ່ຕ້ອງການແລ້ວ, ໃຫ້ຄລິກປຸ່ມ "New pull request" ເພື່ອເລີ່ມຕົ້ນ. ທ່ານຈະຖືກນຳໄປໜ້າເວັບທີ່ສາມາດກວດສອບການປ່ຽນແປງ ແລະ ສ້າງ pull request ໄດ້.
ຕັ້ງຫົວຂໍ້ ແລະ ຄຳອະທິບາຍທີ່ຊັດເຈນໃຫ້ກັບ pull request ຂອງທ່ານ (ລວມທັງລິ້ງອ້າງອີງ bugs ຫຼື ຂໍ້ມູນອື່ນໆ). ຮັບປະກັນວ່າ "base" branch ແມ່ນອັນທີ່ທ່ານຕ້ອງການໃຫ້ໃຊ້ການປ່ຽນແປງ (ໂດຍທົ່ວໄປແມ່ນ xenial), ຈາກນັ້ນຄລິກ "Create pull request".
ເມື່ອສ້າງ pull request ແລ້ວ, ພວກເຮົາສາມາດກ້າວໄປສູ່ການທົດສອບການປ່ຽນແປງໂດຍນຳໃຊ້ UBports build service!
ທົດສອບການປ່ຽນແປງຂອງທ່ານ¶
ເມື່ອ pull request ຂອງທ່ານຖືກສ້າງສຳເລັດ (ເຄື່ອງໝາຍຖືກສີຂຽວປະກົດຂຶ້ນຖັດຈາກ commit ຫຼ້າສຸດ), ທ່ານພ້ອມທີ່ຈະທົດສອບການປ່ຽນແປງໃນອຸປະກອນແລ້ວ.
Note
ຖ້າເຄື່ອງໝາຍ "X" ສີແດງປະກົດຂຶ້ນ, ໝາຍຄວາມວ່າ pull request ຂອງທ່ານສ້າງບໍ່ສຳເລັດ. ຄລິກທີ່ເຄື່ອງໝາຍ "X" ເພື່ອເບິ່ງ build log. ທ່ານຕ້ອງແກ້ໄຂ build errors ໃຫ້ສຳເລັດກ່ອນ pull request ຈຶ່ງຈະສາມາດຕິດຕັ້ງ ຫຼື ໄດ້ຮັບການຍອມຮັບ.
ພວກເຮົາຈະໃຊ້ ubports-qa ເພື່ອຕິດຕັ້ງການປ່ຽນແປງ. ໃຫ້ຈົດໝາຍເລກ ID ຂອງ pull request ຂອງທ່ານ (ລະບຸເປັນ #number ຫຼັງຫົວຂໍ້) ແລະ ປະຕິບັດຕາມຂັ້ນຕອນເຫຼົ່ານີ້:
ຮັບປະກັນວ່າອຸປະກອນຂອງທ່ານກຳລັງນຳໃຊ້ Ubuntu Touch ເວີຊັນໃໝ່ສຸດຈາກ
develchannel.ເຂົ້າເຖິງ shell ຂອງອຸປະກອນໂດຍນຳໃຊ້ ການເຂົ້າເຖິງ Shell ຜ່ານ ADB ຫຼື ການເຂົ້າເຖິງ Shell ຜ່ານ SSH.
ແລ່ນຄຳສັ່ງ
sudo ubports-qa install REPOSITORY PR, ໂດຍປ່ຽນແທນREPOSITORYດ້ວຍຊື່ຂອງ repository ທີ່ທ່ານໄດ້ສົ່ງ PR ແລະ ປ່ຽນPRດ້ວຍໝາຍເລກ pull request (ບໍ່ຕ້ອງໃສ່#). ຕົວຢ່າງ: ແລ່ນsudo ubports-qa morph-browser 123ເພື່ອຕິດຕັ້ງ PR ໝາຍເລກ 123 ໄປຍັງ morph-browser repo.
ubports-qa ຈະເພີ່ມ repository ທີ່ມີຊອບແວທີ່ທ່ານປ່ຽນແປງໂດຍອັດຕະໂນມັດ ແລະ ເລີ່ມການຕິດຕັ້ງໃຫ້. ສິ່ງທີ່ທ່ານຕ້ອງເຮັດແມ່ນກວດເບິ່ງແພັກເກັດທີ່ລະບົບຖາມ ແລະ ຕອບ "yes" ຖ້າພວກມັນຖືກຕ້ອງ.
If ubports-qa fails to install your packages, run it again with the -v flag (for example, ubports-qa -v install ...). If it still fails, submit the entire log (starting from the $ before the ubports-qa command) to Ubuntu Pastebin and contact us for help.
ເມື່ອ ubports-qa ສຳເລັດ, ໃຫ້ທົດສອບເພື່ອຮັບປະກັນວ່າ bug ໄດ້ຮັບການແກ້ໄຂແລ້ວ. ເພີ່ມຄຳສັ່ງ ubports-qa ໃສ່ໃນ pull request, ຈາກນັ້ນສົ່ງລິ້ງໃຫ້ກັບນັກພັດທະນາ ແລະ ຜູ້ທົດສອບຄົນອື່ນໆ ເພື່ອໃຫ້ພວກເຂົາຊ່ວຍກວດສອບ.
ເມື່ອໄດ້ຮັບຄຳຕິຊົມຈາກຜູ້ທົດສອບ, ໃຫ້ເພີ່ມຂໍ້ມູນນັ້ນໃສ່ໃນ pull request ເພື່ອໃຫ້ທຸກຄົນໄດ້ຮັບຊາບສະຖານະຫຼ້າສຸດຂອງໂຄດ.
ທຸກຄັ້ງທີ່ທ່ານປ່ຽນແປງ ແລະ push ໄປ GitHub, ມັນຈະເຮັດການສ້າງ (build) ໃໝ່ໂດຍອັດຕະໂນມັດ. ທ່ານສາມາດແລ່ນ sudo ubports-qa update ເພື່ອຮັບການປ່ຽນແປງຫຼ້າສຸດ.
ສະຫຼອງໄດ້ເລີຍ!¶
ຖ້າທ່ານ ແລະ ຜູ້ທົດສອບພໍໃຈກັບຜົນທີ່ໄດ້ຮັບ, pull request ຈະຖືກ merged. ຫຼັງຈາກນັ້ນ, UBports build service ຈະສ້າງໂຄດ ແລະ deploy ໃຫ້ກັບຜູ້ໃຊ້ Ubuntu Touch ທົ່ວໂລກ.
ຂອບໃຈສຳລັບການປະກອບສ່ວນຂອງທ່ານໃຫ້ກັບ Ubuntu Touch!