Skip to content

shared-code-repo-different-from-build-repo.md - Moved to InnerSource as a term, changed formatting, shortened name #409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
May 12, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
## Title

Repo for Shared Code Different from Repo the Product Org Uses in its Build
Source Repo different from Deployment Chain

## Patlet

Deal with the overhead of having shared code in a separate repository that isn't the same as the project-specific one that is tied to production builds.

## Problem

Deal with the overhead of having shared code in a separate repository that isn't the same as the project-specific one that is tied to production builds.
The InnerSource code repo is different from the repos used in production builds. This causes friction each time changes are made to the InnerSource repo.

## Context

Shared code is kept in an accessible repository that is different from SCMs used by the products that use the shared code. Integration, testing and builds might be automated with the product SCM but not the shared code repo.

## Forces

When the shared code is in a separate repository, any use of it could result in forking modifications, leading to complications later when the source is changed by the owning organization. When starting an inner sourcing program, it is possible there are many SCM systems in use; and, frequently, a new SCM is used for the inner sourcing program. Migrating from one SCM to another is not trivial. Since the using organization has a copy, they might not be aware of changes to the shared code. It is difficult and expensive for the using organization to change their automated build process to use a foreign repo.
When the shared code is in a separate repository, any use of it could result in forking modifications, leading to complications later when the source is changed by the owning organization. When starting an InnerSource program, it is possible there are many source control management systems ([SCM](https://en.wikipedia.org/wiki/Version_control)) in use; and, frequently, a new SCM is used for the InnerSource program. Migrating from one SCM to another is not trivial. Since the using organization has a copy, they might not be aware of changes to the shared code. It is difficult and expensive for the using organization to change their automated build process to use a foreign repo.

## Solution

Continuous integration, not only to with testing but also in production (aligns with DevOps). Known marker that shows the code hasn't been modified. Improved communication between teams. Accountability when you screw up; hold people accountable. Publish good stats about the negative implications of errors and processes for making this everyone's problem.
* Continuous integration, not only for testing but also in production (aligns with DevOps).
* Known marker that shows the code hasn't been modified.
* Improved communication between teams.
* Accountability when you screw up; hold people accountable.
* Publish good stats about the negative implications of errors and processes for making this everyone's problem.

## Resulting Context

Expand Down