Mama nam karanne, each PR ekak master branch ekata merge wenakota build eka run karawanawa. (PR build ekak thawama dala ne)Machan la mata kawru hari explain karanna puluwan da source code eka kohomada manage karanne kiyala . kohomada branches kadenne. Uat live yanakam kohomada code eka manage karanne kiyala process eka.
Mata Dana ganna one Mula indala machan. Main eka production code. Ethokota eken dev branch ekak thiyanawa e dev branch eken feature branch ekak hadanawa aluthen development apuwahama feature eken developers la branches kadagannawa ita passe development eka iwara unahama feature ekata push karanawa onna oya wage mulu process ekama machoMama nam karanne, each PR ekak master branch ekata merge wenakota build eka run karawanawa. (PR build ekak thawama dala ne)
ee build ekema okkoma test run karawananawa.
eeta passe Docker container eka build karanawa. 1 Docker image for all environments.
Build eka success nam, ehemmama dev env ekata deploy karanawa. Anith env walata manual trigger karala deploy karanawa.
eka eka aya eka eka branching strategies use karanawa.Mata Dana ganna one Mula indala machan. Main eka production code. Ethokota eken dev branch ekak thiyanawa e dev branch eken feature branch ekak hadanawa aluthen development apuwahama feature eken developers la branches kadagannawa ita passe development eka iwara unahama feature ekata push karanawa onna oya wage mulu process ekama macho
Thanks machoeka eka aya eka eka branching strategies use karanawa.
meka thamay harima widiha kiyala ekak ne, team ekata kemathi widihata thamay okkoma wenne,
me mage strategy eka.
ape repos okkomage thiyenne eka main branch ekaya (master)
anith ookoma feature branches. api hema thissema ape master eka full clean thiyagannawa, hema features branch PR ekakadima full build and test (junit, component, contract, integration) run karanawa. hema feature branch merge ekakadima(to master), apahu build and hema test ekakma run karawanawa .
Api docker images build karana nisa, wenama release strategy ekak ne.
Oyata oyage artifacts, release karanna oni nam, dev, master branches 2 k thiyaganna eka thamay honda.
feature_one kiyana branch eke .devla ekkenada weda karanne. hithamu dennek weda karanawa kiyala. ethokota feature_one barnch ekatama dennek weda karanawada nattam. feature_one eken tawa branches dekak kadanawada user1 user2 kiyala ethokota me users la denna wena wenama weda karala feature_one ekata push karanawada ? kohomada eka wenne.Main br - Prodution
CI or Beta branch - Test environment
dev br
other feature branches.
Mama den ubata example ekakin kiyannam..
Hithapan mama developer,
Denata thiyena latest code eka thiyenne dev br eke.
Den mama dev eken feature br ekak kadanawa. Br name - feature_one.
Mama e feature br ekata daily or mata one welawata push karanwa.
wede iwara unama feature_one --> dev ekata pull request ekak danawa. PR eka review karanna tech lead or kata hari assign karanwa.
TL pr eka balala accept or comment danawa. Accept nam mama dev ekata pr eka merge karanwa, comment dalanam ewa hadala aye push karanwa feature_one ekata. Then TL will accept.
Den ube change eka dev eke thiyenawa.
Eka test karanna QA testing danna onenam CI branch ekata dev eka merge karanna one.
dev --> CI pr danawa. Meka bohowita nitharama karanne na feaures set ekak ekathu unama thamai CI ekata yawanne.
Me PR eka TL accept kalama CI ekata merge karanwa. CI eka auto build wenawa.
Now QA can test.
Okkoma harinam Main ekata PR dala production release ekak karanwa.
Bohowita eka br ekaka ekkenai weda karanne.. Mokada dethun denek weda karanakota godak merge conflicts enawa.Thanks macho
feature_one kiyana branch eke .devla ekkenada weda karanne. hithamu dennek weda karanawa kiyala. ethokota feature_one barnch ekatama dennek weda karanawada nattam. feature_one eken tawa branches dekak kadanawada user1 user2 kiyala ethokota me users la denna wena wenama weda karala feature_one ekata push karanawada ? kohomada eka wenne.
Methana kiyala thiyenawa mama kiyapu ekama. Mama eka type kalata passe dekke. Mewata ehema 100% hari kiyala neethiyak na neda machan. Main flow eka hariyata thiyennai one.මේ තියෙන්නේ ස්ප්රින්ට් එකක කැල්ලක් .
![]()
එක ස්ප්රින්ට් එකකට User stories ගොඩක් ඇදලා දාල ස්ප්රින්ට් එක ප්ලැන් කරගනන්ව, එකේ දිටෙල් දන්නේ නැත්නම් අහපන්
අංක 1 කියන්නේ ඒ වගේ දාපු User stories එකක්. දෙවෙනි අංක 1 න කියන්නේ ඒ User stories එක එකපෑන්ඩ් කලාම එන විව් එක. එක User stories යටතේ task/bug ගොඩක් තියෙනවා. User stories යේ ටාස්ක් කඩන්නේ එකට එක කොලප්ස් වෙන්නේ නැති වෙන්න. ඒ කියන්නේ එකම ටාස්ක් එකේ දෙන්නෙක් වැඩ කරන්නේ නැති වෙන්න. User stories යක ඕනේ තරමක් වැඩ කරන්න පුළුවන් එත් task/bug එකේ වැඩ කරන්නේ එකයි.
දැන් මේ ටාස්ක් එකට අපි බ්රාන්ච් එකක් හදනවා. මේක හදන්නේ අපේ dev බ්රාන්ච් එකෙන්. එක feature or bug කියන කාණ්ඩ වලට අයිති වෙන්න පුළුවන්. දැන් ඒ බ්රාන්ච් එකේ වැඩ කරන්නේ ටෙක්නිකලි එක්කෙනයි. ඇයි ? අපි ස්ප්රින්ට් ප්ලැන් එකේ ටාස්ක් කදාගන්නේ එහෙම . හැබැයි කෙස් එකක් ගියොත් වෙන එකෙක්ට උබේ වැඩේ බලන්න එකම බ්රාන්ච් එක ශෙයා වෙනවා. එහෙම උනාම එක්කෝ උබ උබේ දේවල් කමිට් කරලා දෙන්නේ. නැත්නම් stash පාරක් ගහලා දෙන්නේ.
ඊට පස්සේ බ්රාන්ච් එකට තමා PR එකක් හදන්නේ. ඒ PR එක මොකෙක් හරි එකෙක් බලලා ඉවර වෙලා ඇප්රුව් කරනවා. සමහර විට 1 හෝ වැඩි ගානක් ඇප්රුව් කරන්න ඕනේ. එක සෙටින්ග් හදලා තියන විදිහට තමා. PR එක ඇප්රුව් කරලා කම්ප්ලිට් කලාම යන්නේ dev බ්රාන්ච් එකට. ඔය ටික අර උඩ @Software_Eng කිව්ව ටිකම තමා.
machan prashna tikak thiyanawaමේ තියෙන්නේ ස්ප්රින්ට් එකක කැල්ලක් .
![]()
එක ස්ප්රින්ට් එකකට User stories ගොඩක් ඇදලා දාල ස්ප්රින්ට් එක ප්ලැන් කරගනන්ව, එකේ දිටෙල් දන්නේ නැත්නම් අහපන්
අංක 1 කියන්නේ ඒ වගේ දාපු User stories එකක්. දෙවෙනි අංක 1 න කියන්නේ ඒ User stories එක එකපෑන්ඩ් කලාම එන විව් එක. එක User stories යටතේ task/bug ගොඩක් තියෙනවා. User stories යේ ටාස්ක් කඩන්නේ එකට එක කොලප්ස් වෙන්නේ නැති වෙන්න. ඒ කියන්නේ එකම ටාස්ක් එකේ දෙන්නෙක් වැඩ කරන්නේ නැති වෙන්න. User stories යක ඕනේ තරමක් වැඩ කරන්න පුළුවන් එත් task/bug එකේ වැඩ කරන්නේ එකයි.
දැන් මේ ටාස්ක් එකට අපි බ්රාන්ච් එකක් හදනවා. මේක හදන්නේ අපේ dev බ්රාන්ච් එකෙන්. එක feature or bug කියන කාණ්ඩ වලට අයිති වෙන්න පුළුවන්. දැන් ඒ බ්රාන්ච් එකේ වැඩ කරන්නේ ටෙක්නිකලි එක්කෙනයි. ඇයි ? අපි ස්ප්රින්ට් ප්ලැන් එකේ ටාස්ක් කදාගන්නේ එහෙම . හැබැයි කෙස් එකක් ගියොත් වෙන එකෙක්ට උබේ වැඩේ බලන්න එකම බ්රාන්ච් එක ශෙයා වෙනවා. එහෙම උනාම එක්කෝ උබ උබේ දේවල් කමිට් කරලා දෙන්නේ. නැත්නම් stash පාරක් ගහලා දෙන්නේ.
ඊට පස්සේ බ්රාන්ච් එකට තමා PR එකක් හදන්නේ. ඒ PR එක මොකෙක් හරි එකෙක් බලලා ඉවර වෙලා ඇප්රුව් කරනවා. සමහර විට 1 හෝ වැඩි ගානක් ඇප්රුව් කරන්න ඕනේ. එක සෙටින්ග් හදලා තියන විදිහට තමා. PR එක ඇප්රුව් කරලා කම්ප්ලිට් කලාම යන්නේ dev බ්රාන්ච් එකට. ඔය ටික අර උඩ @Software_Eng කිව්ව ටිකම තමා.
machan api ethokota dev branch eken branch ekak kadaganne task ekakatada neda? story ekakata neme neda?Bohowita eka br ekaka ekkenai weda karanne.. Mokada dethun denek weda karanakota godak merge conflicts enawa.
Goda denek weda karanna one kiyala kiyanne me feature eka loku wedak. Ethakota karanne feature eka podi podi kotas walata kadanawa. Kadala eka eka developer e wena wena task wala weda karanwa. (sub tasks).. Ita passe feature_one kiyana br ekata push karanwa.
Mewata hariyatama neethi na machan. Den me devs la karana podi podi task kelinma dev ekata giyata awlak wenne nethnam ara feature_one kiyala branch ekak onawenne na. Kelinma dev ekata dathaki. Hebei eka CI testing yawaddi okoma branches wala changes tika dev ekata awilla thiyenna one.
Bohowita me branching simple thiyeganna eka thamai lesima. Nethnma manage karanna amarui.
Methana kiyala thiyenawa mama kiyapu ekama. Mama eka type kalata passe dekke. Mewata ehema 100% hari kiyala neethiyak na neda machan. Main flow eka hariyata thiyennai one.
------ Post added on Jul 19, 2022 at 1:04 PM
Eka thama machan mama kiyala thiyennemachan api ethokota dev branch eken branch ekak kadaganne task ekakatada neda? story ekakata neme neda?
hithamu web page ekak thiyanawa eke dawas ganaka weda thiyanawa . eke dennek ta weda karanna denna barida ekama branch eke ?
macho me wage ekakdi mokada karanneEka thama machan mama kiyala thiyenne
User story / Epic/ Feature thama high level. e yatathe thama Task or Bugs watenne
Task Or bug ekkata thama normally branch ekak kadanne
Story ekak ganne ekko TL ekenek nathna Project manager kenek thamamachan prashna tikak thiyanawa
1) machan ex: story ekakata danne Order module ekak kiyamu. me order module eke order Add page, order Edit page ethokota me deka task dekak wenne. mama harida ?
ethokota developers lata assign karanne tasks neda? ekama story eka athule task dekak users la dennek ta assign wela thibboth story eka assign karanne katada?
machan api ethokota dev branch eken branch ekak kadaganne task ekakatada neda? story ekakata neme neda?
feature branch ekak kiyanne task ekakta neda?
hithamu web page ekak thiyanawa eke dawas ganaka weda thiyanawa . eke dennek ta weda karanna denna barida ekama branch eke?
mata theruna widiya machan explain karannam poddak harida balanna,Story ekak ganne ekko TL ekenek nathna Project manager kenek thama
U eka personally balanawa. Task tika iwara unama Story eka wahanne u thama
Yes Eka Task ekak or bug ekak normally yanne ekekta
But oka company eke policy matha sahenna wenas wenawa
And Ground up dev wena SW ekak ha Alrady Running wena dekakath wenas widihata yanne
feature branch ekak kiyana normally kiyanne Oya eka story ekak iwara wela eken QA or Staging Branch ekakata danna ganna ekak
Simple seen eka thama feature branch ekak yanne Environment athara Source eka yawanna
Environment: Dev , QA ,Staging ,Prod
Web page eka 2k karanawa nam Task 4 ka danna wenawamacho me wage ekakdi mokada karanne
hithamu web page ekak thiyanawa eke dawas ganaka weda thiyanawa . ekata developers la dennek ta weda karanna denna barida ekama branch eke .ekama page eke weda karanna kihipa denak ta denna branch karanne kohomada .
No 2 lagata enna onemata theruna widiya machan explain karannam poddak harida balanna,
1.dev eken task ekakata anuwa branch ekak kadanawa.
2 .task eke development complete unahama pull request ekak danawa dev branch ekata.eken code merge karanawa
3. story ekak iwara wenakam task okkogema branch karapu okkotama pull request yawala dev ekata merge karanawa.
4 dev branch eken feature branch ekak hadanawa. eken QA walata release ekak denawa.
ita passe eke bug ekak thibboth ithri tika kohomada wenne.
Task 2 k Jira board එකේ දාගන්න. ඒ tasks 2, වෙන වෙනම මොනවද කරන්න තියෙන්නෙ කියලා දාන්න. ඒ කිව්වෙ dev1 මොනවද කරන්නෙ කියලා එක task එකකත්, dev2 මොනවද කරන්නෙ කියලා අනිත් task එකෙත් දාන්න.macho me wage ekakdi mokada karanne
hithamu web page ekak thiyanawa eke dawas ganaka weda thiyanawa . ekata developers la dennek ta weda karanna denna barida ekama branch eke .ekama page eke weda karanna kihipa denak ta denna branch karanne kohomada .
ඒ දෙක අන්තිමට ඉන්ටෙග්රේට් කරන්න තව ටාස්ක් එකක් දාගන්න එක වටිනවා වගේ. එකෙන් තම ෆිනල් එක පුෂ් කරන්න ඕනේ. දෙන්නා කල වැඩ ටික මාස්ටර් එකේ තියනවනේ. ඒක බලල ඔය පර්මිෂන් ඇඩ් කරනවා වගේ housekeeping වැඩ ටික කරලා මාස්ටර් දාල QA PR කළා නම් වටිනවා වගේTask 2 k Jira board එකේ දාගන්න. ඒ tasks 2, වෙන වෙනම මොනවද කරන්න තියෙන්නෙ කියලා දාන්න. ඒ කිව්වෙ dev1 මොනවද කරන්නෙ කියලා එක task එකකත්, dev2 මොනවද කරන්නෙ කියලා අනිත් task එකෙත් දාන්න.
ඊට පස්සෙ dev branch එකෙන් වෙනම feature branch එකක් අරගෙන, ඒ feature branch එකෙන් task 2 ට අදාලව වෙන වෙනම branches හදලා developers ල දෙන්නට ඒ branches 2 වෙන වෙනම වැඩ කරන්න කියන්න.
ඉවර උනාට පස්සෙ, PR එකක් හදලා approve කරගෙන අර මුලින් හදපු feature branch එකට merge කරන්න.
ඊට පස්සෙ ඒ feature branch එක test කරලා dev එකට merge කරන්න.
මේ strategy එකට යන්න හේතුව developers ල දෙන්නම එකම page එකේ වැඩ කරන නිසා. Direct dev එකට merge කරොත් dev එක pollute වෙන්න chance එක වැඩියි unfinished වැඩ තිබ්බොත්.