Questions Manage source code with multiple clients

Sam924

Active member
  • Oct 10, 2014
    239
    191
    43
    අපි software එකක් හදල ඒකම වෙන client කෙනෙක්ට දාද්දී එයාට අනුව 5% - 10% වගේ පොඩි පොඩි වෙනස්කම් ටිකක් (Required customizations) එක්ක වෙනස් කරලා දානවනම් සම්පුර්ණ code base එක duplicate කරලා වෙනම client wise projects folders තියාගන්නේ නැතුව එ ඒ client ඉල්ලන customizations කරලා single code base එකක් maintain කරන් යන්න විදියක් තියෙනවද?
     

    Draco Malfoy

    Well-known member
  • Feb 9, 2019
    8,414
    16,614
    113
    Malfoy Manor, Wiltshire, England.
    good question.
    barida danna e features independent modules widiyata hadala connect karanna?
    ethakota eka module ekaka bug ekak thiyenawanam e bug eka fix kalama, e module eka use karana okkoma cleintslage e bug eka ain wenawane?
    git branches widiyata beduwoth eka karanna amarui neda branches bedila godak kal giya/progress una project ekak nam?
     
    • Like
    Reactions: Error365!

    Sam924

    Active member
  • Oct 10, 2014
    239
    191
    43
    Git branches widiyata giyoth production output ekedi (distribut exe) master ekath ekka merge karanna wenawa neda? ethakota aye master eka change wenawane


    good question.
    barida danna e features independent modules widiyata hadala connect karanna?
    Database triggers walin wage module ekai eka adala wena customer wai identify karannada?
     

    Draco Malfoy

    Well-known member
  • Feb 9, 2019
    8,414
    16,614
    113
    Malfoy Manor, Wiltshire, England.
    Database triggers walin wage module ekai eka adala wena customer wai identify karannada?
    mamath karala na mage adahasak kiwwe.
    mehemai oya kiwwa widiya neme, modules kiwwe nikan basic/core function ekata reusable solution ekak hadanawa (eg: payments handling) oke basic api set ekak denawa payment ekak karanna and db update wenna, payment receipt generate karanna wage.
    but user ge requirements anuwa me module eke changes karanawa.
    ethakota core module eke bug ekak nam eka fix kalama, e module eka use wela thiyena okkoma cleintslage payment module eke bug eka fix wenawa.

    ethakota kawruhari user kenek eyata payment one kiwwoth oya ara core payment module eka denawa, eyala ekata customisation illuwoth ekata user specific upgrades karanawa.

    module wise git project or repos hadala, user specific customization branches walin hadanawa. me branches wala loku samanakam thiyenna ba, ehema samana wenawanam ewa core module ekatama integrate karanawa.

    meka mata hithuna adahasak, meka practicle da, loku project waladi kela wenna puluwan architecture ekakda danna ithin.
     
    • Like
    Reactions: Sam924

    Thilantdm

    Well-known member
  • Sep 15, 2010
    22,598
    5,857
    113
    අද නම් හදට ආවා
    Git Branch karath 10% code change ekak kiynne tikak loku portion ekak neh?
    Business logic ekak change wenwa nm itn setting ekak wage based krn krnna one.
    but eka hari yanne na 10 customers 10 settings awoth monthly badu thama.

    mkda Git Branch eke mn hithnne na oya wage core parts walata branch karala merge krnna pluwan wei kiyla nm.
    balamu thawa hoda ans ekak kawru hari deida kiyla.

    mn nm hithnne each client wise repo eka maintain karana eka thama hodama.
     
    • Like
    Reactions: Sam924

    realpubba

    Junior member
  • Nov 25, 2020
    37
    64
    18
    Git branches walin karana projectsuth thiyenawa. Eth eka echchara honda solution ekak neme. Mokada branch diverge wela different history ekak thibbama passe dawasaka oka hena wathayak wenawa. (eg. client A ta dipu feature ekak client B kiwwoth matath one kiyala, how to merge? B ta A ge okkoma one na, just one feature. This gets extremely messy)

    Me wage ewa handle karanna use wenawa feature flags. Client configuration ekak thiyagena, eke define karanna enable karanna ona features for that client. Configuration eka deployment config ekak(env variables) or database eke config ekak widiyta thiyanna puluwan.