Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Page Properties


https://digit-discuss.atlassian.net/browse/
Target release2019-M1
Epic
Jira Legacy
serverSystem JIRA
serverIdf37df377-51a7-3f0b-bde6-77fa6960492d
keyEDOP-70
Document status
Status
colourYellow
titleINPROGRESS
Document owner


...

Repo StructureBranching StrategyReview Process

Core:  DONE

  • egov-accesscontrol
  • egov-common-masters
  • egov-common-workflow
  • egov-data-uploader
  • egov-filestore
  • egov-idgen
  • egov-indexer
  • egov-localization
  • egov-location
  • egov-mdms-service
  • egov-notification-mail
  • egov-notification-sms
  • egov-otp
  • egov-persister
  • egov-pg-service
  • egov-searcher
  • user-otp
  • egov-user
  • tenant
  • telemetry
  • telemetry-kafka-streams

New branching structure

  • Anything in MASTER is deploy-able, all CI/CD pipelines are only from master.
  • Developers are expected to have short-lived feature & hotfix branches which are then merged onto master via PR.
  • Forking workflow is a convenient way to share branches with 3rd party/open-source developers.
  • 3rd party developers follow Forking Workflow, they are pulled into developer’s local repository.

  • Everyone creates pull request and only code-owners checks & approves merge to master. Everyone else can still comment.
  • Can elect the code-owners based on tech/files or overall code base and architectural knowledge.
  • Code quality check with codacy is mandatory and runs as part of every pull request.
  • WIP: should be used when there are subsequent commits
  • JIRA ticket should be prefixed as a topic name for the PR
  • Anticipated PRs and the relevant discussions could be discussed on the daily SCRUM meetings.
- Authors, Reviewers, peers, approver

Business Modules:

New branching structure

  • Master branch holds the core code and will maintain it own release and review cycle.
  • Developers are expected to have short-lived feature & hotfix branches which are then merged onto master via PR.
  • Forking workflow is a convenient way to share branches with 3rd party/open-source developers.
  • 3rd party developers follow Forking Workflow, they are pulled into developer’s local repository.


  • Everyone creates pull request and only code-owners checks & approves merge to master. Everyone else can still comment.
  • Can elect the code-owners based on tech/files or overall code base and architectural knowledge.
  • Code quality check with codacy is mandatory and runs as part of every pull request.
  • WIP: should be used when there are subsequent commits
  • JIRA ticket should be prefixed as a topic name for the PR
  • Anticipated PRs and the relevant discussions could be discussed on the daily SCRUM meetings.
- Authors, Reviewers, peers, approver


Libraries:   DONE

  • mdms-client
  • tracer
  • services-common

New branching structure

  • Developers are expected to have short-lived feature & hotfix branches which are then merged onto master via PR.
  • The repository hosts common libraries which are used across core and business modules.
  • The modules hosted in the repo are usually built and artefacts published to Nexus / Artifactory which are then re-used by other modules.
  • Artefacts release and versioning strategies to be followed strictly. 


  • Everyone creates pull request and only code-owners checks & approves merge to master. Everyone else can still comment.
  • Can elect the code-owners based on tech/files or overall code base and architectural knowledge.
  • Code quality check with codacy is mandatory and runs as part of every pull request.
  • WIP: should be used when there are subsequent commits
  • JIRA ticket should be prefixed as a topic name for the PR
  • Anticipated PRs and the relevant discussions could be discussed on the daily SCRUM meetings.
- Authors, Reviewers, peers, approver

Municipal services:   DONE

  • Property Tax


  • Trade License


  • PGR



  • Modules are expected to have hooks through which state specific requirements can be met via sidecars rather than introducing the changes into the platform code-base itself.
  • Each of the feature module repos are to contain some sort of deployment packaging to help implementation teams / partners get up and running quickly. (Helm is one such)
  • States can opt to eject out from the platform's release by forking the repository and make any changes in forked repository and handle releases independently.
  • Such forked repositories can sync with upstream and stay up to date with the platform's releases.


  • Everyone creates pull request and only code-owners checks & approves merge to master. Everyone else can still comment.
  • Can elect the code-owners based on tech/files or overall code base and architectural knowledge.
  • Code quality check with codacy is mandatory and runs as part of every pull request.
  • WIP: should be used when there are subsequent commits
  • JIRA ticket should be prefixed as a topic name for the PR
  • Anticipated PRs and the relevant discussions could be discussed on the daily SCRUM meetings.
- Authors, Reviewers, peers, approver



InfraOps: (Private)   DONE

  • Kubernetes manifests
  • Infra configs
  • nginx config
  • kibana config
  • Dockerfiles
  • Jenkins


  • The repository will contain all devops related source code (GitOps) such as kubernetes manifests, configs etc.
  • State or individual deployments is handled by one file per deployment, which in turn affects all other manifests.
  • States can opt to eject out from the platform's release by forking the repository and make any changes in forked repository and handle releases independently.
  • Everyone creates pull request and only code-owners checks & approves merge to master. Everyone else can still comment.
  • Can elect state specific code-owners / implementation team who will be gatekeepers.

Doc:Swagger/Contracts/web  Done

  • Core
  • Business
  • Features
  • Web
  • Mob
  • Option to have it published in confluence


Frontend (UI):

  • citizen
  • employee
  • employee-tradelicence
  • ui-uploader
  • report

Frontend (Mobile):

  • PuraSeva, AP Municipal
  • PGR, mSeva


  • Modules are expected to have hooks through which state specific requirements can be met via sidecars rather than introducing the changes into the platform code-base itself.
  • States can opt to eject out from the platform's release by forking the repository and make any changes in forked repository and handle releases independently.
  • Such forked repositories can sync with upstream and stay up to date with the platform's releases.
  • States also have the option to use their own UI while using our APIs alone.
https://levelup.gitconnected.com/using-pre-commit-and-pre-push-git-hooks-in-a-react-project-6c83431ef2bd

Config-Files: (Common)

  • Seed files
  • Migration files 
  • Persister  – Service repo
  • Indexer - Service repo






...