From 235ac1045159c95fd7106c28292e802dc4e58222 Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Thu, 25 Jun 2020 16:19:44 -0400 Subject: [PATCH 1/9] #181 add: definition of OSS or ISS project --- README.md | 1 + definintion-of-oss-or-iss-project.md | 49 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 definintion-of-oss-or-iss-project.md diff --git a/README.md b/README.md index e0cf3339a..20327a782 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ The below lists all known patterns. They are grouped into four stages of maturit * [30 Day Warranty](30-day-warranty.md) - *a pattern for getting a reluctant code-owning team to accept code submissions from outside their team.* * [Common Requirements](common-requirements.md) - *Common code in a shared repository isn't meeting the needs of all the project-teams that want to use it; this is solved through requirements alignment and refactoring.* * [Contracted Contributor](contracted-contributor.md) - *Associates wanting to contribute to InnerSource are discouraged from doing so by their line management. Relief is provided by formal contracts and agreements.* +* [Definition of an OpenSource or InnerSource Project]() * [Dedicated Community Leader](dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.* * [Gig Marketplace](gig-marketplace.md) - *Establish a marketplace by creating an intranet website that lists specific InnerSource project needs as "Gigs" with explicit time and skill requirements. This will enable managers to better understand their employee’s time commitment and professional benefits thereby increasing the likelihood of garnering approval to make InnerSource contributions.* * [InnerSource License](innersource-license.md) - *Two legal entities that belong to the same organization want to share software source code with each other but they are concerned about the implications in terms of legal liabilities or cross-company accounting. An **InnerSource License** provides a reusable legal framework for the sharing of source code within the organization. This opens up new collaboration options, and makes the rights and obligations of the involved legal entities explicit.* diff --git a/definintion-of-oss-or-iss-project.md b/definintion-of-oss-or-iss-project.md new file mode 100644 index 000000000..72aef1e39 --- /dev/null +++ b/definintion-of-oss-or-iss-project.md @@ -0,0 +1,49 @@ +# Title + +The Definition of an Open Source Software (OSS) or Inner Source Software (ISS) Project. + +## Definition(s) + +The following are the components are essential for a project to be declared an Open Source Software +or Inner Source Software project. Note, the distinction between Open Source and Inner Source is merely +the network topology surrounding the source control management system instance. If the world at large +can view the code base, the project Open Source. On the other hand if any portion of the project's source +code lives on a restricted network topology such that it is not available to be read by the world at +large then we deem it Inner Source. + +We will use the term "population" in the following definitions +to reference the user base that has readership based upon the respective network topology. Further, we +will use the term "owner" to refer to one who has privileges to delete the code base; we will refer to anyone +who has commits in a repository or documentation or issue list as a "contributor"; we will refer to any person who can +push code to the repository a “committer”; we call any person using the repository a “user.” Naturally, the progression +of trust follows (most to least trusted) as + +1. Owners (commonly referred to as project committee members) +2. Committers +3. Contributors +4. Users + +### Tenents of an OSS/ISS Project + +#### Code Base +For a project to be considered OSS/ISS, it's code base must be entirely browsable by the population +of users on a given network. It may or may not be hosted in a source code management system. That +is left up to the project owners. + +#### Distributions +Clearly a project must be distributed for it to be used. The mechanics of how a project releases its +distributions is left to the owners whether it be the source itself or more formally packaged convenience binaries. + +#### Website +Without a project website there is unlikely to ever be any users. However, a considerable number of projects use +the features of the GitHub (or source control management system more generally) user interface as the project’s +primary website. + +#### Asychronous Communications +Project communication is a must. There may be singlly owned projects that can be OSS/ISS, but they are few and far +between. More often than not, other people are involved. Thus, a mechanism of communication is a requirement. +Furthermore, one’s user base may live in a different time-zone. Thus, we find it a requirement for a project to be +able to call itself OSS/ISS that it have an asychronous communication paradigm. For example, many projects use GitHub +issues, while others use messaging applications, and some rely on plain old email. Although, we have yet to stumble +upon a project solely relying upon paper mail as its communication mechanism, such a communication mechanism indeed +falls within our definitions. \ No newline at end of file From c81588015e092c58e193b437f6801346b21ffc8e Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Thu, 25 Jun 2020 16:28:42 -0400 Subject: [PATCH 2/9] #181 fix: nits with my forgotten formatting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 20327a782..1103d2e3f 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ The below lists all known patterns. They are grouped into four stages of maturit * [30 Day Warranty](30-day-warranty.md) - *a pattern for getting a reluctant code-owning team to accept code submissions from outside their team.* * [Common Requirements](common-requirements.md) - *Common code in a shared repository isn't meeting the needs of all the project-teams that want to use it; this is solved through requirements alignment and refactoring.* * [Contracted Contributor](contracted-contributor.md) - *Associates wanting to contribute to InnerSource are discouraged from doing so by their line management. Relief is provided by formal contracts and agreements.* -* [Definition of an OpenSource or InnerSource Project]() +* [Definition of an OpenSource or InnerSource Project](definintion-of-oss-or-iss-project.md) - What are the core elements that make up an Open Source or InnerSource Software project? * [Dedicated Community Leader](dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.* * [Gig Marketplace](gig-marketplace.md) - *Establish a marketplace by creating an intranet website that lists specific InnerSource project needs as "Gigs" with explicit time and skill requirements. This will enable managers to better understand their employee’s time commitment and professional benefits thereby increasing the likelihood of garnering approval to make InnerSource contributions.* * [InnerSource License](innersource-license.md) - *Two legal entities that belong to the same organization want to share software source code with each other but they are concerned about the implications in terms of legal liabilities or cross-company accounting. An **InnerSource License** provides a reusable legal framework for the sharing of source code within the organization. This opens up new collaboration options, and makes the rights and obligations of the involved legal entities explicit.* From 2485023aa715db70c597312983471920cb43f2cd Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Thu, 25 Jun 2020 16:30:05 -0400 Subject: [PATCH 3/9] #181 fix: Inner Source -> InnerSource --- definintion-of-oss-or-iss-project.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/definintion-of-oss-or-iss-project.md b/definintion-of-oss-or-iss-project.md index 72aef1e39..d52929b7f 100644 --- a/definintion-of-oss-or-iss-project.md +++ b/definintion-of-oss-or-iss-project.md @@ -1,15 +1,15 @@ # Title -The Definition of an Open Source Software (OSS) or Inner Source Software (ISS) Project. +The Definition of an Open Source Software (OSS) or InnerSource Software (ISS) Project. ## Definition(s) The following are the components are essential for a project to be declared an Open Source Software -or Inner Source Software project. Note, the distinction between Open Source and Inner Source is merely +or InnerSource Software project. Note, the distinction between Open Source and InnerSource is merely the network topology surrounding the source control management system instance. If the world at large can view the code base, the project Open Source. On the other hand if any portion of the project's source code lives on a restricted network topology such that it is not available to be read by the world at -large then we deem it Inner Source. +large then we deem it InnerSource. We will use the term "population" in the following definitions to reference the user base that has readership based upon the respective network topology. Further, we From db1cdea89b550380c63f6b856f3315953321436c Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Thu, 25 Jun 2020 16:59:21 -0400 Subject: [PATCH 4/9] #181 fix: spelling Tenents -> Tenets --- definintion-of-oss-or-iss-project.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/definintion-of-oss-or-iss-project.md b/definintion-of-oss-or-iss-project.md index d52929b7f..ca6d8c150 100644 --- a/definintion-of-oss-or-iss-project.md +++ b/definintion-of-oss-or-iss-project.md @@ -23,7 +23,7 @@ of trust follows (most to least trusted) as 3. Contributors 4. Users -### Tenents of an OSS/ISS Project +### Tenets of an OSS/ISS Project #### Code Base For a project to be considered OSS/ISS, it's code base must be entirely browsable by the population From 45f5c762298456ccc921ea80730d5b29185869ae Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Sat, 1 Aug 2020 08:59:03 -0400 Subject: [PATCH 5/9] (update) #181 edit for suggestions --- ...roject.md => definintion-of-iss-project.md | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) rename definintion-of-oss-or-iss-project.md => definintion-of-iss-project.md (57%) diff --git a/definintion-of-oss-or-iss-project.md b/definintion-of-iss-project.md similarity index 57% rename from definintion-of-oss-or-iss-project.md rename to definintion-of-iss-project.md index ca6d8c150..c5a97f458 100644 --- a/definintion-of-oss-or-iss-project.md +++ b/definintion-of-iss-project.md @@ -1,22 +1,31 @@ # Title -The Definition of an Open Source Software (OSS) or InnerSource Software (ISS) Project. +The Definition of an InnerSource Software (ISS) Project. We will largely take the ideas that follow +from the definition of an Open Source Software (OSS) Project. Note, the definition of an OSS Project +follows from [opensource.com's definition](https://opensource.com/resources/what-open-source). Further, +[RedHat also supplies a defintion of OSS project](https://www.redhat.com/en/topics/open-source/what-is-open-source). + +Our goal here is to mimic the [open source way that opensource.com](https://opensource.com/open-source-way) +provides. In doing this, we foster collaboration and community inside our enterprises. ## Definition(s) -The following are the components are essential for a project to be declared an Open Source Software -or InnerSource Software project. Note, the distinction between Open Source and InnerSource is merely +The following are the components are essential for a project to be declared an InnerSource Software +project. Note, the distinction between Open Source and InnerSource is merely the network topology surrounding the source control management system instance. If the world at large -can view the code base, the project Open Source. On the other hand if any portion of the project's source +can view the code base, the project is Open Source. On the other hand if any portion of the project's source code lives on a restricted network topology such that it is not available to be read by the world at -large then we deem it InnerSource. +large then we deem it InnerSource, and refer to it as "private." Also, most OSS projects contain a +[license (list taken from opensource.com)](https://opensource.com/law/13/1/which-open-source-software-license-should-i-use). +The licenses are legal parameters that developers and users adhere to for the development and consumption +of the project. Luckily we need not worry about licensing because we are concerned with "private" repositories. We will use the term "population" in the following definitions to reference the user base that has readership based upon the respective network topology. Further, we will use the term "owner" to refer to one who has privileges to delete the code base; we will refer to anyone who has commits in a repository or documentation or issue list as a "contributor"; we will refer to any person who can push code to the repository a “committer”; we call any person using the repository a “user.” Naturally, the progression -of trust follows (most to least trusted) as +of trust follows (most to least trusted) as: 1. Owners (commonly referred to as project committee members) 2. Committers @@ -26,7 +35,7 @@ of trust follows (most to least trusted) as ### Tenets of an OSS/ISS Project #### Code Base -For a project to be considered OSS/ISS, it's code base must be entirely browsable by the population +For a project to be considered ISS, it's code base must be entirely browsable by the population of users on a given network. It may or may not be hosted in a source code management system. That is left up to the project owners. @@ -40,10 +49,10 @@ the features of the GitHub (or source control management system more generally) primary website. #### Asychronous Communications -Project communication is a must. There may be singlly owned projects that can be OSS/ISS, but they are few and far +Project communication is a must. There may be singlly owned projects that can be ISS, but they are few and far between. More often than not, other people are involved. Thus, a mechanism of communication is a requirement. Furthermore, one’s user base may live in a different time-zone. Thus, we find it a requirement for a project to be -able to call itself OSS/ISS that it have an asychronous communication paradigm. For example, many projects use GitHub +able to call itself ISS that it have an asychronous communication paradigm. For example, many projects use GitHub issues, while others use messaging applications, and some rely on plain old email. Although, we have yet to stumble upon a project solely relying upon paper mail as its communication mechanism, such a communication mechanism indeed -falls within our definitions. \ No newline at end of file +falls within our definitions. From e34f80417cd7b6b497dfa2face9a8ebda2ace2c3 Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Sun, 2 Aug 2020 05:40:15 -0400 Subject: [PATCH 6/9] (fix) README.md link and description defns --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1103d2e3f..cde73c46b 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ The below lists all known patterns. They are grouped into four stages of maturit * [30 Day Warranty](30-day-warranty.md) - *a pattern for getting a reluctant code-owning team to accept code submissions from outside their team.* * [Common Requirements](common-requirements.md) - *Common code in a shared repository isn't meeting the needs of all the project-teams that want to use it; this is solved through requirements alignment and refactoring.* * [Contracted Contributor](contracted-contributor.md) - *Associates wanting to contribute to InnerSource are discouraged from doing so by their line management. Relief is provided by formal contracts and agreements.* -* [Definition of an OpenSource or InnerSource Project](definintion-of-oss-or-iss-project.md) - What are the core elements that make up an Open Source or InnerSource Software project? +* [Definition of an InnerSource Project](definintion-of-iss-project.md) - What are the core elements that make up an InnerSource Software project? * [Dedicated Community Leader](dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.* * [Gig Marketplace](gig-marketplace.md) - *Establish a marketplace by creating an intranet website that lists specific InnerSource project needs as "Gigs" with explicit time and skill requirements. This will enable managers to better understand their employee’s time commitment and professional benefits thereby increasing the likelihood of garnering approval to make InnerSource contributions.* * [InnerSource License](innersource-license.md) - *Two legal entities that belong to the same organization want to share software source code with each other but they are concerned about the implications in terms of legal liabilities or cross-company accounting. An **InnerSource License** provides a reusable legal framework for the sharing of source code within the organization. This opens up new collaboration options, and makes the rights and obligations of the involved legal entities explicit.* From ee3fc2f4b8a3e088152a015bf75df08a79bef4ad Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Wed, 9 Dec 2020 11:24:21 -0500 Subject: [PATCH 7/9] (fix) put the proper link to the open source project definition --- definintion-of-iss-project.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/definintion-of-iss-project.md b/definintion-of-iss-project.md index c5a97f458..9f003cc90 100644 --- a/definintion-of-iss-project.md +++ b/definintion-of-iss-project.md @@ -2,7 +2,7 @@ The Definition of an InnerSource Software (ISS) Project. We will largely take the ideas that follow from the definition of an Open Source Software (OSS) Project. Note, the definition of an OSS Project -follows from [opensource.com's definition](https://opensource.com/resources/what-open-source). Further, +follows from [opensource.com's definition](https://opensource.org/osd). Further, [RedHat also supplies a defintion of OSS project](https://www.redhat.com/en/topics/open-source/what-is-open-source). Our goal here is to mimic the [open source way that opensource.com](https://opensource.com/open-source-way) From b1f4edd0af9f362e265f0edc75ea4b34ec0ae996 Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Wed, 9 Dec 2020 11:34:32 -0500 Subject: [PATCH 8/9] (update) move definition to structured --- README.md | 2 +- .../2-structured/definintion-of-iss-project.md | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename definintion-of-iss-project.md => patterns/2-structured/definintion-of-iss-project.md (100%) diff --git a/README.md b/README.md index 8bf02dddd..efa0307f2 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ The below lists all known patterns. They are grouped into three [maturity levels * [Common Requirements](patterns/2-structured/common-requirements.md) - *Common code in a shared repository isn't meeting the needs of all the project-teams that want to use it; this is solved through requirements alignment and refactoring.* * [Contracted Contributor](patterns/2-structured/contracted-contributor.md) - *Associates wanting to contribute to InnerSource are discouraged from doing so by their line management. Relief is provided by formal contracts and agreements.* * [Dedicated Community Leader](patterns/2-structured/dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.* -* [Definition of an InnerSource Project](definintion-of-iss-project.md) - What are the core elements that make up an InnerSource Software project? +* [Definition of an InnerSource Project](patterns/2-structured/definintion-of-iss-project.md) - What are the core elements that make up an InnerSource Software project? * [Gig Marketplace](patterns/2-structured/gig-marketplace.md) - *Establish a marketplace by creating an intranet website that lists specific InnerSource project needs as "Gigs" with explicit time and skill requirements. This will enable managers to better understand their employee’s time commitment and professional benefits thereby increasing the likelihood of garnering approval to make InnerSource contributions.* * [Maturity Model](patterns/2-structured/maturity-model.md) - *Teams have started adopting InnerSource. The practice is spreading to multiple departments. Understanding of what constitutes an InnerSource project are wide spread though. The solution is to provide a maturity model to allow for teams to go through a self check and discover patterns and practices that they are not yet aware of.* * [InnerSource License](patterns/2-structured/innersource-license.md) - *Two legal entities that belong to the same organization want to share software source code with each other but they are concerned about the implications in terms of legal liabilities or cross-company accounting. An **InnerSource License** provides a reusable legal framework for the sharing of source code within the organization. This opens up new collaboration options, and makes the rights and obligations of the involved legal entities explicit.* diff --git a/definintion-of-iss-project.md b/patterns/2-structured/definintion-of-iss-project.md similarity index 100% rename from definintion-of-iss-project.md rename to patterns/2-structured/definintion-of-iss-project.md From a6ac507740a7ebbe99e0339fb4e798baacb8fb61 Mon Sep 17 00:00:00 2001 From: Rob Tompkins Date: Wed, 9 Dec 2020 11:52:35 -0500 Subject: [PATCH 9/9] (fix) use simpler licenses page --- patterns/2-structured/definintion-of-iss-project.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patterns/2-structured/definintion-of-iss-project.md b/patterns/2-structured/definintion-of-iss-project.md index 9f003cc90..3c8e73447 100644 --- a/patterns/2-structured/definintion-of-iss-project.md +++ b/patterns/2-structured/definintion-of-iss-project.md @@ -16,7 +16,7 @@ the network topology surrounding the source control management system instance. can view the code base, the project is Open Source. On the other hand if any portion of the project's source code lives on a restricted network topology such that it is not available to be read by the world at large then we deem it InnerSource, and refer to it as "private." Also, most OSS projects contain a -[license (list taken from opensource.com)](https://opensource.com/law/13/1/which-open-source-software-license-should-i-use). +[license (list taken from opensource.com)](https://opensource.org/licenses). The licenses are legal parameters that developers and users adhere to for the development and consumption of the project. Luckily we need not worry about licensing because we are concerned with "private" repositories.