From 6dd22f0dbf6fdb6e0ea615d71fffdf36e1a0d505 Mon Sep 17 00:00:00 2001 From: McIntosh Date: Mon, 27 May 2019 09:56:21 -0400 Subject: [PATCH 01/35] Adding skeleton for document proposing official gccode support --- Content/OfficalGCCodeSupport.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 Content/OfficalGCCodeSupport.md diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md new file mode 100644 index 0000000..5227d45 --- /dev/null +++ b/Content/OfficalGCCodeSupport.md @@ -0,0 +1,20 @@ +## Summary + +ESDC's Developer Community has promoted GCCode as their preferred solution for a standardized source control + +http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation + +The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada + +## Background + +The use of source control is a foundational tool for development. As IT infrastructure and processes become ever more complex, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. In order to properly leverage this modern approach, a shared source control instance is vital. Many opportunities present themselves for individual departments (reference the ESDC Development Community`s GC Code Recommendation article), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. + +## Situation + +## Support + +| Department | Name | Title | +|--- |--- |--- | +| ESDC | Jayson McIntosh | Acting Manager / Technical Advisor | +| ESDC | Remy Bernard | Manager (on interchange) | \ No newline at end of file From bcff20d2c81242f754f2d7675ba8d1a6ca9310b4 Mon Sep 17 00:00:00 2001 From: Shaun Laughland Date: Mon, 27 May 2019 11:29:19 -0400 Subject: [PATCH 02/35] Adding content to Situation and Support --- Content/OfficalGCCodeSupport.md | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 5227d45..cc32dfe 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -1,20 +1,37 @@ ## Summary -ESDC's Developer Community has promoted GCCode as their preferred solution for a standardized source control - +ESDC's Developer Community has promoted GCCode as their preferred solution for a standardized source control. http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada ## Background -The use of source control is a foundational tool for development. As IT infrastructure and processes become ever more complex, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. In order to properly leverage this modern approach, a shared source control instance is vital. Many opportunities present themselves for individual departments (reference the ESDC Development Community`s GC Code Recommendation article), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. +The use of source control is a foundational tool for development. As IT infrastructure and processes become ever more complex, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. In order to properly leverage this modern approach, a shared source control instance is vital. Many opportunities present themselves for individual departments (reference the ESDC Development Community's GC Code Recommendation article), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. ## Situation +GCCode is a instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT licence, hosted by Shared Services Canada (SSC). GCCode is currently supported by SSC with a "when time permits" policy. It runs on production servers and has backups and recives simi-regular updates. GCCode is currently only avalibe within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. A number of departments are already storing a large amount of source code on GCCode as their main source control solution. + +### Improved Feature Support + +With the current (as is) configuration of GCCode, there are a few features that could be supported to increase the viablity of the tool. + +* **[Pages](https://about.gitlab.com/product/pages/)** could be used for hosting documents and guides on the software in development. +* **Shared [Runners](https://docs.gitlab.com/runner/)** could be capable of deploying directly into SSC infastructure to manage production and development enviornments. + +With the tool exposed to the internet, there are a few other features that could be used. + +* **[Runners](https://docs.gitlab.com/runner/)** could be capable of deploying to cloud infastructure to manage production and development enviornments. +* **3rd Party [Integrations](https://docs.gitlab.com/ce/integration/)** could be added to projects for a verity of services. +* **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** could be enabled for multi-government and citizen collaberation. + +With funding for the [GitLab Enterpise Eddition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be avaliable. The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements avaliable. + ## Support | Department | Name | Title | |--- |--- |--- | | ESDC | Jayson McIntosh | Acting Manager / Technical Advisor | -| ESDC | Remy Bernard | Manager (on interchange) | \ No newline at end of file +| ESDC | Remy Bernard | Manager (on interchange) | +| ESDC | Shaun Laughland | Programmer Analyst | From c51b1c0e9a41a5eea78722be6acab2deb615c32a Mon Sep 17 00:00:00 2001 From: Britt Hurley Date: Tue, 28 May 2019 11:38:13 -0400 Subject: [PATCH 03/35] add section on funding options added section on how the DevOpsLeague, or departments can financially support this recomendation. --- Content/OfficalGCCodeSupport.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index cc32dfe..98b1e9c 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -28,10 +28,15 @@ With the tool exposed to the internet, there are a few other features that could With funding for the [GitLab Enterpise Eddition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be avaliable. The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements avaliable. -## Support +## Potential Funding Options + +SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recomendation, it is likely that we will need to identify Departments interested in providing resources to support this recomendatiion. Below are some potential options: + +## Supporting members | Department | Name | Title | |--- |--- |--- | | ESDC | Jayson McIntosh | Acting Manager / Technical Advisor | | ESDC | Remy Bernard | Manager (on interchange) | | ESDC | Shaun Laughland | Programmer Analyst | +| PSPC | Brittany Hurley | Technical Advisor | From 0c3aaf3818a8cec45e13f7b8365c4e559dc7ad28 Mon Sep 17 00:00:00 2001 From: McIntosh Date: Tue, 28 May 2019 16:18:40 -0400 Subject: [PATCH 04/35] Adding links to other literature, minor reformatting, and expanding on the background --- Content/OfficalGCCodeSupport.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 98b1e9c..30dccee 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -1,18 +1,21 @@ -## Summary +## Existing literature -ESDC's Developer Community has promoted GCCode as their preferred solution for a standardized source control. -http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation +1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada -The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada +2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standarized source control solution and makes a case for GCCode. The proposed initiative from the article is an integration of GCcode within the GCTools suite ## Background -The use of source control is a foundational tool for development. As IT infrastructure and processes become ever more complex, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. In order to properly leverage this modern approach, a shared source control instance is vital. Many opportunities present themselves for individual departments (reference the ESDC Development Community's GC Code Recommendation article), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. +The use of source control is a foundational tool for development. As IT infrastructure and processes become ever more complex, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. In order to properly leverage this modern approach, a shared source control instance is vital. Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation)), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. By providing a common place to develop and share development projects and solutions, there is an opportunity to reuse the same platform across departments in most cases. Presently many redundancies exist within departments as they each host and support local instances of varying source control solutions. + ## Situation GCCode is a instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT licence, hosted by Shared Services Canada (SSC). GCCode is currently supported by SSC with a "when time permits" policy. It runs on production servers and has backups and recives simi-regular updates. GCCode is currently only avalibe within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. A number of departments are already storing a large amount of source code on GCCode as their main source control solution. + +## Business case + ### Improved Feature Support With the current (as is) configuration of GCCode, there are a few features that could be supported to increase the viablity of the tool. @@ -32,6 +35,10 @@ With funding for the [GitLab Enterpise Eddition (EE)](https://gitlab.com/gitlab- SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recomendation, it is likely that we will need to identify Departments interested in providing resources to support this recomendatiion. Below are some potential options: +- Each department which leverages GCCode provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance + +- A flat fee per user per department is charged to those departments using the service + ## Supporting members | Department | Name | Title | From 667b16de2b7ed08a8b7b5ba8828b95b3977546b9 Mon Sep 17 00:00:00 2001 From: Shaun Laughland Date: Thu, 30 May 2019 12:48:07 -0400 Subject: [PATCH 05/35] Adding offical stats on GCCode --- Content/OfficalGCCodeSupport.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 30dccee..df5f8e6 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -13,6 +13,23 @@ The use of source control is a foundational tool for development. As IT infrastr GCCode is a instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT licence, hosted by Shared Services Canada (SSC). GCCode is currently supported by SSC with a "when time permits" policy. It runs on production servers and has backups and recives simi-regular updates. GCCode is currently only avalibe within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. A number of departments are already storing a large amount of source code on GCCode as their main source control solution. +### GCCode Stats + +**As of May 29th, 2019** GCCode has a record of: + +* 3,614 projects +* 2,998 users +* 2,996 active users +* 507 groups +* 317 forks +* 741 milestones +* 17,280 issues +* 8,778 merge requests +* 155,596 notes +* 394 snippets +* 300 SSH Keys +* 50 distinct email domains (aka GC Organizations) + ## Business case From b44d7127ca5b74f98d14c0f236c8693bb1eeeee2 Mon Sep 17 00:00:00 2001 From: Eric Wu Date: Fri, 31 May 2019 10:50:35 -0400 Subject: [PATCH 06/35] Adding my name --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index df5f8e6..c4162f4 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -63,4 +63,5 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | ESDC | Jayson McIntosh | Acting Manager / Technical Advisor | | ESDC | Remy Bernard | Manager (on interchange) | | ESDC | Shaun Laughland | Programmer Analyst | +| ESDC | Eric Wu | Technical Advisor | | PSPC | Brittany Hurley | Technical Advisor | From 9228b6bca6124d6b64ef83bc4344823b345a7fca Mon Sep 17 00:00:00 2001 From: Shaun Laughland Date: Fri, 31 May 2019 13:15:36 -0400 Subject: [PATCH 07/35] Fix Speeling - Adding Support from Francois Fixing spelling issues identified by Francois and adding his support. --- Content/OfficalGCCodeSupport.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index c4162f4..f8abb61 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -2,7 +2,7 @@ 1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada -2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standarized source control solution and makes a case for GCCode. The proposed initiative from the article is an integration of GCcode within the GCTools suite +2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GCCode. The proposed initiative from the article is an integration of GCcode within the GCTools suite ## Background @@ -11,7 +11,7 @@ The use of source control is a foundational tool for development. As IT infrastr ## Situation -GCCode is a instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT licence, hosted by Shared Services Canada (SSC). GCCode is currently supported by SSC with a "when time permits" policy. It runs on production servers and has backups and recives simi-regular updates. GCCode is currently only avalibe within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. A number of departments are already storing a large amount of source code on GCCode as their main source control solution. +GCCode is an instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT license, hosted by Shared Services Canada (SSC). GCCode is currently supported by SSC with a "when time permits" policy. It runs on production servers and has backups and receives semi-regular updates. GCCode is currently only available within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. A number of departments are already storing a large amount of source code on GCCode as their main source control solution. ### GCCode Stats @@ -35,22 +35,22 @@ GCCode is a instance of [GitLab Community Edition (CE)](https://gitlab.com/gitla ### Improved Feature Support -With the current (as is) configuration of GCCode, there are a few features that could be supported to increase the viablity of the tool. +With the current (as is) configuration of GCCode, there are a few features that could be supported to increase the viability of the tool. * **[Pages](https://about.gitlab.com/product/pages/)** could be used for hosting documents and guides on the software in development. -* **Shared [Runners](https://docs.gitlab.com/runner/)** could be capable of deploying directly into SSC infastructure to manage production and development enviornments. +* **Shared [Runners](https://docs.gitlab.com/runner/)** could be capable of deploying directly into SSC infrastructure to manage production and development environments. With the tool exposed to the internet, there are a few other features that could be used. -* **[Runners](https://docs.gitlab.com/runner/)** could be capable of deploying to cloud infastructure to manage production and development enviornments. +* **[Runners](https://docs.gitlab.com/runner/)** could be capable of deploying to cloud infrastructure to manage production and development environments. * **3rd Party [Integrations](https://docs.gitlab.com/ce/integration/)** could be added to projects for a verity of services. -* **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** could be enabled for multi-government and citizen collaberation. +* **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** could be enabled for multi-government and citizen collaboration. -With funding for the [GitLab Enterpise Eddition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be avaliable. The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements avaliable. +With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be available. The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements available. ## Potential Funding Options -SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recomendation, it is likely that we will need to identify Departments interested in providing resources to support this recomendatiion. Below are some potential options: +SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. Below are some potential options: - Each department which leverages GCCode provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance @@ -65,3 +65,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | ESDC | Shaun Laughland | Programmer Analyst | | ESDC | Eric Wu | Technical Advisor | | PSPC | Brittany Hurley | Technical Advisor | +| ESDC | François Brillant | Director | From a1d0fa9936b6d59ceff7ba2b368469da755ac0a8 Mon Sep 17 00:00:00 2001 From: Jayson Date: Fri, 31 May 2019 13:20:59 -0400 Subject: [PATCH 08/35] Adding Mathieu Fortin With his permission, adding Mathieu Fortin as a supporter of making gccode officially supported --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index f8abb61..cbbc53b 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -66,3 +66,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | ESDC | Eric Wu | Technical Advisor | | PSPC | Brittany Hurley | Technical Advisor | | ESDC | François Brillant | Director | +| SSC | Mathieu Fortin | Director, Partner Enterprise Architecture Liaison | From c45cf13516cc7a20bee1cc4b8d3b413db143e933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20B?= <33963001+remyb2canada@users.noreply.github.com> Date: Fri, 31 May 2019 13:22:11 -0400 Subject: [PATCH 09/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index cbbc53b..6139ce8 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -1,3 +1,6 @@ +## Purpose +To bring [GCCode](https://gccode.ssc-spc.gc.ca) as an officially supported source control solution within the Government of Canada's developer community. + ## Existing literature 1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada From 3319e15adbb31b9fe8beb06bab3a08a9fbb302ae Mon Sep 17 00:00:00 2001 From: Luc Schulz Date: Fri, 31 May 2019 14:48:06 -0400 Subject: [PATCH 10/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 6139ce8..5ecad84 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -70,3 +70,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | PSPC | Brittany Hurley | Technical Advisor | | ESDC | François Brillant | Director | | SSC | Mathieu Fortin | Director, Partner Enterprise Architecture Liaison | +| IRCC | Luc Schulz | Business Solutions | From d965832690b1165716cff92d2c789424653f7474 Mon Sep 17 00:00:00 2001 From: Roy Angelo Saavedra Date: Fri, 31 May 2019 14:56:32 -0400 Subject: [PATCH 11/35] Update OfficalGCCodeSupport.md Added Roy Saavedra --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 5ecad84..bb0b0e3 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -71,3 +71,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | ESDC | François Brillant | Director | | SSC | Mathieu Fortin | Director, Partner Enterprise Architecture Liaison | | IRCC | Luc Schulz | Business Solutions | +| TBS | Roy Saavedra | Research Analyst | From 2a41babfec4ef24371901a082e5a4d5c591d74ad Mon Sep 17 00:00:00 2001 From: Vivian Nobrega <43480681+ShadeWyrm@users.noreply.github.com> Date: Fri, 31 May 2019 15:16:56 -0400 Subject: [PATCH 12/35] Update OfficalGCCodeSupport.md Adding myself as supporting member. --- Content/OfficalGCCodeSupport.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index bb0b0e3..a671cef 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -72,3 +72,5 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | SSC | Mathieu Fortin | Director, Partner Enterprise Architecture Liaison | | IRCC | Luc Schulz | Business Solutions | | TBS | Roy Saavedra | Research Analyst | +| TC | Vivian Nobrega | Technical Advisor | + From c946a4762e46091f1b0fbb8aec584962b1fd1a8a Mon Sep 17 00:00:00 2001 From: nikhilsebastian <51246394+nikhilsebastian@users.noreply.github.com> Date: Fri, 31 May 2019 16:06:11 -0400 Subject: [PATCH 13/35] Add user to supporting members table --- Content/OfficalGCCodeSupport.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index a671cef..4318a79 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -73,4 +73,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | IRCC | Luc Schulz | Business Solutions | | TBS | Roy Saavedra | Research Analyst | | TC | Vivian Nobrega | Technical Advisor | - +| CRA | Nikhil Sebastian | A/IT Specialist | From 0f70b01f05e9e8b5bc2d17f1cb60c15ff4c057cb Mon Sep 17 00:00:00 2001 From: Steve Trotman Date: Mon, 3 Jun 2019 09:09:54 -0400 Subject: [PATCH 14/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 4318a79..2cdb65e 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -74,3 +74,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | TBS | Roy Saavedra | Research Analyst | | TC | Vivian Nobrega | Technical Advisor | | CRA | Nikhil Sebastian | A/IT Specialist | +| PSPC | Steve Trotman | Programmer Analyst | From c06f3905bf2fa0f0804538cc4953e1cbe24d240d Mon Sep 17 00:00:00 2001 From: Stephen Bakalian Date: Mon, 3 Jun 2019 09:10:38 -0400 Subject: [PATCH 15/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 2cdb65e..63a5b7f 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -75,3 +75,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | TC | Vivian Nobrega | Technical Advisor | | CRA | Nikhil Sebastian | A/IT Specialist | | PSPC | Steve Trotman | Programmer Analyst | +| TC | Stephen Bakalian | Programmer Analyst | From 7ee4319c6e08f565b5b4a049deba13c06e47f81b Mon Sep 17 00:00:00 2001 From: Manz Alam <31262523+ManzAlam@users.noreply.github.com> Date: Mon, 3 Jun 2019 10:04:50 -0400 Subject: [PATCH 16/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 63a5b7f..8abb2e5 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -76,3 +76,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | CRA | Nikhil Sebastian | A/IT Specialist | | PSPC | Steve Trotman | Programmer Analyst | | TC | Stephen Bakalian | Programmer Analyst | +| PSC | Md Alam | Middleware Operations | From 43c3c9678333eb2716ed70b9e913aa1d2492a680 Mon Sep 17 00:00:00 2001 From: Daniel Ricard Date: Mon, 3 Jun 2019 12:01:50 -0300 Subject: [PATCH 17/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 8abb2e5..7624deb 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -77,3 +77,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | PSPC | Steve Trotman | Programmer Analyst | | TC | Stephen Bakalian | Programmer Analyst | | PSC | Md Alam | Middleware Operations | +| DFO | Daniel Ricard | Senior Biologist | From 05c5bd12d80a333b9025f37cfca5dc8eb2107d6d Mon Sep 17 00:00:00 2001 From: Jeff Barnes Date: Mon, 3 Jun 2019 12:38:24 -0230 Subject: [PATCH 18/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 7624deb..8d93e57 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -78,3 +78,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | TC | Stephen Bakalian | Programmer Analyst | | PSC | Md Alam | Middleware Operations | | DFO | Daniel Ricard | Senior Biologist | +| SSC | Jeff Barnes | Senior Advisor | From 453697f304907595a8cf888b1229e6afccd87c56 Mon Sep 17 00:00:00 2001 From: davjfish <34521117+davjfish@users.noreply.github.com> Date: Mon, 3 Jun 2019 13:37:36 -0300 Subject: [PATCH 19/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 8d93e57..15d5beb 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -79,3 +79,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | PSC | Md Alam | Middleware Operations | | DFO | Daniel Ricard | Senior Biologist | | SSC | Jeff Barnes | Senior Advisor | +| DFO | David Fishman | Data Manager | From c979c8dca7d0596dc34a801890fe08926d49eed9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20M=C3=A9tivier?= Date: Mon, 3 Jun 2019 13:31:32 -0400 Subject: [PATCH 20/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 15d5beb..3b58f22 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -80,3 +80,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | DFO | Daniel Ricard | Senior Biologist | | SSC | Jeff Barnes | Senior Advisor | | DFO | David Fishman | Data Manager | +| CEDQ | Sebastien Metivier | Team Lead - Integration | From c01eb44c51ae1cb5700ab6114ce6f02684d50bdd Mon Sep 17 00:00:00 2001 From: Todd McDonald Date: Mon, 3 Jun 2019 14:19:46 -0400 Subject: [PATCH 21/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 3b58f22..75fcd75 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -81,3 +81,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | SSC | Jeff Barnes | Senior Advisor | | DFO | David Fishman | Data Manager | | CEDQ | Sebastien Metivier | Team Lead - Integration | +| NRCan | Todd McDonald | Senior Programmer | From 97f39e0750116371b3b21d9c1f09fe062b92092f Mon Sep 17 00:00:00 2001 From: Guillaume Charest Date: Tue, 4 Jun 2019 09:51:09 -0400 Subject: [PATCH 22/35] Add my signature --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 75fcd75..ac55624 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -82,3 +82,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | DFO | David Fishman | Data Manager | | CEDQ | Sebastien Metivier | Team Lead - Integration | | NRCan | Todd McDonald | Senior Programmer | +| TBS | Guillaume Charest | Advisor, Open Source Software | From 94526f3eec373346b5b118902079f62070dbfd36 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 4 Jun 2019 09:54:57 -0400 Subject: [PATCH 23/35] added new section of Why GCCode and not GitHub --- Content/OfficalGCCodeSupport.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index ac55624..e9c9467 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -1,4 +1,4 @@ -## Purpose +## Purpose To bring [GCCode](https://gccode.ssc-spc.gc.ca) as an officially supported source control solution within the Government of Canada's developer community. ## Existing literature @@ -51,6 +51,18 @@ With the tool exposed to the internet, there are a few other features that could With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be available. The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements available. +### Why GCCode and not GitHub? +There are arguments to support the adoption of GitHub over GCCode. Mainly: + +* **Leveraging the GitHub's infrastructure**. The GC will not be able to compete with GitHub's resources and its ability to stay current, so it would be best to use GitHub from the get go and inherit its sustainability capability. +* **Work in complete openness**. GitHub allows GC employees to work in complete openness with the rest of the world. Turning repositories private only when needed. + +However, this proposal counters these arguments to the favour of GCCode for the following reasons: +* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)**. Having a hosted version of GitLab allows the GC to contribute more directly to the GitLab open source project. +* **Increase comfort level to openness**. Some GC employees and IT Security personnel are currently reluctant to use GitHub due to security risks (e.g. [accidently adding sensitive information like API keys in the repos](https://www.theregister.co.uk/2018/02/07/uber_quit_github_for_custom_code_after_2016_data_breach/)). Using GCCode is expected to augment the GC developer's community best practices around source control and, as such, increase assurance around management and IT Security personnel for open source project meant to be released to the public. +* **Vendor lock in risk management**. GitHub roadmap is determined based on industry funding, not by the GC's interests. Having it's own GitLab instance reduces vendor lock in by allowing GitHub repositories a second home. + + ## Potential Funding Options SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. Below are some potential options: From 782643f611ef3960bda41fdd662987cb7fb8232f Mon Sep 17 00:00:00 2001 From: Terence Doerksen Date: Tue, 4 Jun 2019 08:05:45 -0600 Subject: [PATCH 24/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index e9c9467..0f4b77b 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -95,3 +95,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | CEDQ | Sebastien Metivier | Team Lead - Integration | | NRCan | Todd McDonald | Senior Programmer | | TBS | Guillaume Charest | Advisor, Open Source Software | +| ESDC | Terry Doerksen | Programmer Analyst | From 1831c3f8c5ca8dc9e25d4604238e2c1f96c67ee2 Mon Sep 17 00:00:00 2001 From: Calvin Rodo Date: Tue, 4 Jun 2019 11:30:03 -0400 Subject: [PATCH 25/35] Adding my name ot the list. --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 0f4b77b..603aee9 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -96,3 +96,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | NRCan | Todd McDonald | Senior Programmer | | TBS | Guillaume Charest | Advisor, Open Source Software | | ESDC | Terry Doerksen | Programmer Analyst | +| ESDC | Calvin Rodo | Senior Advisor - Application Development From 8d866bce7fbec64f99e36fe15f78d53446f63d3b Mon Sep 17 00:00:00 2001 From: Chinook-Keta <51379163+Chinook-Keta@users.noreply.github.com> Date: Tue, 4 Jun 2019 11:56:40 -0700 Subject: [PATCH 26/35] Added name (#12) --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 603aee9..4f9c5de 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -97,3 +97,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | TBS | Guillaume Charest | Advisor, Open Source Software | | ESDC | Terry Doerksen | Programmer Analyst | | ESDC | Calvin Rodo | Senior Advisor - Application Development +| DFO | Diana McHugh | Stock Assessment Biologist | From e6eb89c22ec00d60c2567a0b71c73ec32f8ebb92 Mon Sep 17 00:00:00 2001 From: pevweb <38890162+pevweb@users.noreply.github.com> Date: Tue, 4 Jun 2019 15:57:18 -0300 Subject: [PATCH 27/35] Update OfficalGCCodeSupport.md (#13) --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 4f9c5de..b9052d9 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -92,6 +92,7 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | DFO | Daniel Ricard | Senior Biologist | | SSC | Jeff Barnes | Senior Advisor | | DFO | David Fishman | Data Manager | +| DFO | Pablo Vergara | Data Manager | | CEDQ | Sebastien Metivier | Team Lead - Integration | | NRCan | Todd McDonald | Senior Programmer | | TBS | Guillaume Charest | Advisor, Open Source Software | From d5c62905d61f21e33c1f88c9675f202d3eacac16 Mon Sep 17 00:00:00 2001 From: franRob <37939179+jmjp775@users.noreply.github.com> Date: Wed, 5 Jun 2019 11:16:44 -0400 Subject: [PATCH 28/35] Update OfficalGCCodeSupport.md (#14) Added my name to the list. --- Content/OfficalGCCodeSupport.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index b9052d9..ae635c9 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -99,3 +99,4 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | ESDC | Terry Doerksen | Programmer Analyst | | ESDC | Calvin Rodo | Senior Advisor - Application Development | DFO | Diana McHugh | Stock Assessment Biologist | +| ESDC | Josée Paquette | Programmer Analyst | From bbfe3b22b95861e01c52445f70fe6990abcd04c5 Mon Sep 17 00:00:00 2001 From: Guillaume Charest Date: Wed, 5 Jun 2019 20:47:21 -0400 Subject: [PATCH 29/35] Fix lint --- Content/OfficalGCCodeSupport.md | 52 +++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index ae635c9..c46b85b 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -3,18 +3,30 @@ To bring [GCCode](https://gccode.ssc-spc.gc.ca) as an officially supported sourc ## Existing literature -1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada +1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. +The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada -2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GCCode. The proposed initiative from the article is an integration of GCcode within the GCTools suite +2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GCCode. +The proposed initiative from the article is an integration of GCcode within the GCTools suite ## Background -The use of source control is a foundational tool for development. As IT infrastructure and processes become ever more complex, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. In order to properly leverage this modern approach, a shared source control instance is vital. Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation)), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. By providing a common place to develop and share development projects and solutions, there is an opportunity to reuse the same platform across departments in most cases. Presently many redundancies exist within departments as they each host and support local instances of varying source control solutions. - +The use of source control is a fotoundational tool for development. +As IT infrastructure and processes become ever more complex, new tools and roles are emerging. +Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. +In order to properly leverage this modern approach, a shared source control instance is vital. +Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation)), though for the Government of Canada as a whole as well. +With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. +By providing a common place to develop and share development projects and solutions, there is an opportunity to reuse the same platform across departments in most cases. +Presently many redundancies exist within departments as they each host and support local instances of varying source control solutions. ## Situation -GCCode is an instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT license, hosted by Shared Services Canada (SSC). GCCode is currently supported by SSC with a "when time permits" policy. It runs on production servers and has backups and receives semi-regular updates. GCCode is currently only available within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. A number of departments are already storing a large amount of source code on GCCode as their main source control solution. +GCCode is an instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT license, hosted by Shared Services Canada (SSC). +GCCode is currently supported by SSC with a "when time permits" policy. +It runs on production servers and has backups and receives semi-regular updates. +GCCode is currently only available within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. +A number of departments are already storing a large amount of source code on GCCode as their main source control solution. ### GCCode Stats @@ -49,25 +61,35 @@ With the tool exposed to the internet, there are a few other features that could * **3rd Party [Integrations](https://docs.gitlab.com/ce/integration/)** could be added to projects for a verity of services. * **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** could be enabled for multi-government and citizen collaboration. -With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be available. The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements available. +With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be available. +The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements available. ### Why GCCode and not GitHub? -There are arguments to support the adoption of GitHub over GCCode. Mainly: +There are arguments to support the adoption of GitHub over GCCode. +Mainly: -* **Leveraging the GitHub's infrastructure**. The GC will not be able to compete with GitHub's resources and its ability to stay current, so it would be best to use GitHub from the get go and inherit its sustainability capability. -* **Work in complete openness**. GitHub allows GC employees to work in complete openness with the rest of the world. Turning repositories private only when needed. +* **Leveraging the GitHub's infrastructure**. +The GC will not be able to compete with GitHub's resources and its ability to stay current, so it would be best to use GitHub from the get go and inherit its sustainability capability. +* **Work in complete openness**. +GitHub allows GC employees to work in complete openness with the rest of the world, turning repositories private only when needed. However, this proposal counters these arguments to the favour of GCCode for the following reasons: -* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)**. Having a hosted version of GitLab allows the GC to contribute more directly to the GitLab open source project. -* **Increase comfort level to openness**. Some GC employees and IT Security personnel are currently reluctant to use GitHub due to security risks (e.g. [accidently adding sensitive information like API keys in the repos](https://www.theregister.co.uk/2018/02/07/uber_quit_github_for_custom_code_after_2016_data_breach/)). Using GCCode is expected to augment the GC developer's community best practices around source control and, as such, increase assurance around management and IT Security personnel for open source project meant to be released to the public. -* **Vendor lock in risk management**. GitHub roadmap is determined based on industry funding, not by the GC's interests. Having it's own GitLab instance reduces vendor lock in by allowing GitHub repositories a second home. - +* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)**. +Having a hosted version of GitLab allows the GC to contribute more directly to the GitLab open source project. +* **Increase comfort level to openness**. +Some GC employees and IT Security personnel are currently reluctant to use GitHub due to security risks (e.g.: [accidently adding sensitive information like API keys in the repos](https://www.theregister.co.uk/2018/02/07/uber_quit_github_for_custom_code_after_2016_data_breach/)). +Using GCCode is expected to augment the GC developer's community best practices around source control and, as such, increase assurance around management and IT Security personnel for open source project meant to be released to the public. +* **Vendor lock in risk management**. +GitHub roadmap is determined based on industry funding, not by the GC's interests. +Having it's own GitLab instance reduces vendor lock in by allowing GitHub repositories a second home. ## Potential Funding Options -SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. Below are some potential options: +SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. +In order to move forward on this recommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. +Below are some potential options: -- Each department which leverages GCCode provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance +- Each department which leverages GCCode provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance - A flat fee per user per department is charged to those departments using the service From 09bcd004bd2f32f048ffd4c479c789495ef92e80 Mon Sep 17 00:00:00 2001 From: Guillaume Charest Date: Wed, 5 Jun 2019 21:03:36 -0400 Subject: [PATCH 30/35] Move paragraph and change intro and context --- Content/OfficalGCCodeSupport.md | 44 +++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index c46b85b..46d7f2a 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -1,25 +1,35 @@ -## Purpose -To bring [GCCode](https://gccode.ssc-spc.gc.ca) as an officially supported source control solution within the Government of Canada's developer community. +# Official GCCode Support -## Existing literature +## Purpose -1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. -The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada +To recommend the adoption of a decentralized version control system for all IT personnel in order to enable wider collaboration within the Government of Canada as well as support advanced and modern DevOps capabilities. -2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GCCode. -The proposed initiative from the article is an integration of GCcode within the GCTools suite +## Context + +The latest updates to the Directive on Management of IT have clearly identified three main requirements changes related to source code management in the GoC: + +1. If a custom-built application is the appropriate option, **by default any source code written by the government must be released in an open format via Government of Canada websites and services designated by the Treasury Board of Canada Secretariat** [(C.2.3.8.3)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.3); +2. **All source code must be released under an appropriate open source software license** [(C.2.3.8.4)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.4); +3. Share code publicly when appropriate, and when not, **share within the Government of Canada** [(C.2.3.9.5)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.9.5). -## Background +The use of source code version control is indeed a foundational tool for software development but each department currently manages its own source code independently. Moreso, there are even instances where multiple methods and solutions are in place to manage source code versioning within a single organisation. + +However, as IT infrastructure, environments and processes become more complex and abstract, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application, not only through the coding phase. +In order to properly leverage this modern approach, a decentralized version control system with collaborative capabilities is vital. -The use of source control is a fotoundational tool for development. -As IT infrastructure and processes become ever more complex, new tools and roles are emerging. -Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application. -In order to properly leverage this modern approach, a shared source control instance is vital. Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation)), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. By providing a common place to develop and share development projects and solutions, there is an opportunity to reuse the same platform across departments in most cases. Presently many redundancies exist within departments as they each host and support local instances of varying source control solutions. +## Existing literature + +1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. +The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada +2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GCCode. +The proposed initiative from the article is an integration of GCcode within the GCTools suite +3. The Government of Canada Open Source Advisory Board started writing a business case for a Source Code Platform in order to enable + ## Situation GCCode is an instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT license, hosted by Shared Services Canada (SSC). @@ -48,6 +58,8 @@ A number of departments are already storing a large amount of source code on GCC ## Business case +To bring [GCCode](https://gccode.ssc-spc.gc.ca) as an officially supported source control solution within the Government of Canada's developer community. + ### Improved Feature Support With the current (as is) configuration of GCCode, there are a few features that could be supported to increase the viability of the tool. @@ -85,10 +97,10 @@ Having it's own GitLab instance reduces vendor lock in by allowing GitHub reposi ## Potential Funding Options -SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. -In order to move forward on this recommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. -Below are some potential options: - +do soh are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. +do socommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. +do so +do so - Each department which leverages GCCode provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance - A flat fee per user per department is charged to those departments using the service From db4a5798fefbd60033c1faeb4fa88bb872cfc65c Mon Sep 17 00:00:00 2001 From: Gabriel Cossette Date: Mon, 10 Jun 2019 17:17:32 -0400 Subject: [PATCH 31/35] Change name to GC/Code and various changes --- Content/OfficalGCCodeSupport.md | 104 ++++++++++++++++---------------- 1 file changed, 51 insertions(+), 53 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 46d7f2a..f035081 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -1,4 +1,4 @@ -# Official GCCode Support +# Official GC/Code Support ## Purpose @@ -6,7 +6,7 @@ To recommend the adoption of a decentralized version control system for all IT p ## Context -The latest updates to the Directive on Management of IT have clearly identified three main requirements changes related to source code management in the GoC: +The latest updates to the [Directive on Management of IT](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249) have clearly identified 3 main requirements changes related to source code management in the GoC: 1. If a custom-built application is the appropriate option, **by default any source code written by the government must be released in an open format via Government of Canada websites and services designated by the Treasury Board of Canada Secretariat** [(C.2.3.8.3)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.3); 2. **All source code must be released under an appropriate open source software license** [(C.2.3.8.4)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.4); @@ -18,29 +18,29 @@ However, as IT infrastructure, environments and processes become more complex an In order to properly leverage this modern approach, a decentralized version control system with collaborative capabilities is vital. Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation)), though for the Government of Canada as a whole as well. -With initiatives such as the OneGov movement from TBS, having a collaborative tool with powerful automation features available, will deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern useable tools to Canadians. -By providing a common place to develop and share development projects and solutions, there is an opportunity to reuse the same platform across departments in most cases. +With initiatives such as the OneGov movement and the GCTools from TBS, having a collaborative tool with powerful automation features available would deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern services to Canadians. +By providing a common place to develop and share development projects and solutions, there is an exceptional opportunity to reuse the same platform across departments in most cases. Presently many redundancies exist within departments as they each host and support local instances of varying source control solutions. ## Existing literature -1. ESDC's Developer Community has [written an article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GCCode as their preferred solution for a standardized source control. -The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada -2. [A wiki article](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GCCode. -The proposed initiative from the article is an integration of GCcode within the GCTools suite -3. The Government of Canada Open Source Advisory Board started writing a business case for a Source Code Platform in order to enable +1. ESDC's Developer Community has written an [article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GC/Code as their preferred solution for a standardized source control. +The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada +2. A [wiki page](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GC/Code. +The proposed initiative from the article is an integration of GC/Code within the GCTools suite +3. The Government of Canada Open Source Advisory Board started writing a [business case](https://github.com/canada-ca/OS-Advisory_Conseil-SO/blob/master/en/Working_Group_Tools/gc-source-code-repo.md) for a Source Code Platform to enable central hosting and sharing of source code. -## Situation +## Situation -GCCode is an instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT license, hosted by Shared Services Canada (SSC). -GCCode is currently supported by SSC with a "when time permits" policy. +GC/Code is an instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT license, hosted by Shared Services Canada (SSC). +GC/Code is currently unofficially supported by SSC with a "when time permits" policy. It runs on production servers and has backups and receives semi-regular updates. -GCCode is currently only available within the GoC Intranet, which does block the solution from access 3rd party add-ons and some native features. -A number of departments are already storing a large amount of source code on GCCode as their main source control solution. +GC/Code is currently only available within the GoC Intranet, which does block the solution from access to 3rd party add-ons and some native features. +A number of departments are already storing a large amount of source code on GC/Code as their main source control solution. -### GCCode Stats +### GC/Code Stats -**As of May 29th, 2019** GCCode has a record of: +**As of May 29th, 2019** GC/Code has a record of: * 3,614 projects * 2,998 users @@ -55,62 +55,59 @@ A number of departments are already storing a large amount of source code on GCC * 300 SSH Keys * 50 distinct email domains (aka GC Organizations) +## Business case -## Business case - -To bring [GCCode](https://gccode.ssc-spc.gc.ca) as an officially supported source control solution within the Government of Canada's developer community. +To bring [GC/Code](https://gccode.ssc-spc.gc.ca) as an officially supported source control solution for the Government of Canada's developer community. ### Improved Feature Support -With the current (as is) configuration of GCCode, there are a few features that could be supported to increase the viability of the tool. +With the current (as is) configuration of GC/Code, there are a few additional features that could be enabled to increase the viability of the tool: + +* **[Pages](https://about.gitlab.com/product/pages/)** - To host documents and guides on the software in development, and even static websites including ones with GoC official theme. +* **Shared [Runners](https://docs.gitlab.com/runner/)** - For deployment directly to SSC infrastructure to manage production and development environments. -* **[Pages](https://about.gitlab.com/product/pages/)** could be used for hosting documents and guides on the software in development. -* **Shared [Runners](https://docs.gitlab.com/runner/)** could be capable of deploying directly into SSC infrastructure to manage production and development environments. +With the tool exposed to the internet, there are a few other features that could be leveraged: -With the tool exposed to the internet, there are a few other features that could be used. +* **[Runners](https://docs.gitlab.com/runner/)** - For deployment to cloud infrastructure to manage production and development environments. +* **3rd Party [Integrations](https://docs.gitlab.com/ce/integration/)** - To add a variety of services to projects. +* **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** - For multi-government and citizen collaboration. -* **[Runners](https://docs.gitlab.com/runner/)** could be capable of deploying to cloud infrastructure to manage production and development environments. -* **3rd Party [Integrations](https://docs.gitlab.com/ce/integration/)** could be added to projects for a verity of services. -* **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** could be enabled for multi-government and citizen collaboration. +With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more [features](https://about.gitlab.com/pricing/self-managed/feature-comparison/) could be available. -With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more features could be available. -The [feature list](https://about.gitlab.com/pricing/self-managed/feature-comparison/) details the improvements available. +### Why GC/Code and not GitHub? -### Why GCCode and not GitHub? -There are arguments to support the adoption of GitHub over GCCode. -Mainly: +There are arguments to support the adoption of GitHub over GC/Code. Mainly: -* **Leveraging the GitHub's infrastructure**. -The GC will not be able to compete with GitHub's resources and its ability to stay current, so it would be best to use GitHub from the get go and inherit its sustainability capability. -* **Work in complete openness**. +* **Leveraging the GitHub's infrastructure** +The GC will not be able to compete with GitHub's resources and its ability to stay current, so it would be best to use GitHub from the get go and benefit from its sustainability capability. +* **Work in complete openness** GitHub allows GC employees to work in complete openness with the rest of the world, turning repositories private only when needed. -However, this proposal counters these arguments to the favour of GCCode for the following reasons: -* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)**. +However, this proposal counters these arguments to the favour of GC/Code for the following reasons: + +* **Increase comfort level to openness** +Some GC employees and IT Security personnel are reluctant to use GitHub due to security risks (e.g.: [accidently adding sensitive information like API keys in the repos](https://www.theregister.co.uk/2018/02/07/uber_quit_github_for_custom_code_after_2016_data_breach/)). +Using GC/Code is expected to augment the GC developer's community best practices around source control and, as such, increase assurance around management and IT Security personnel for open source project meant to be released to the public. +* **Vendor lock-in risk management** +GitHub roadmap is determined based on industry funding, not by the GC's interests. Having our own internal instance reduces vendor lock-in by allowing GitHub repositories a second home. +* **Potential Cost Savings** +Although a more fullsome cost evaluation should be performed when this proposal is adopted, it is believed that maintaining an internal instance would result in cost savings due to the requirement to host private repositories at the GC level. +* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)** Having a hosted version of GitLab allows the GC to contribute more directly to the GitLab open source project. -* **Increase comfort level to openness**. -Some GC employees and IT Security personnel are currently reluctant to use GitHub due to security risks (e.g.: [accidently adding sensitive information like API keys in the repos](https://www.theregister.co.uk/2018/02/07/uber_quit_github_for_custom_code_after_2016_data_breach/)). -Using GCCode is expected to augment the GC developer's community best practices around source control and, as such, increase assurance around management and IT Security personnel for open source project meant to be released to the public. -* **Vendor lock in risk management**. -GitHub roadmap is determined based on industry funding, not by the GC's interests. -Having it's own GitLab instance reduces vendor lock in by allowing GitHub repositories a second home. ## Potential Funding Options -do soh are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. -do socommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. -do so -do so -- Each department which leverages GCCode provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance +SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. Below are some potential options: -- A flat fee per user per department is charged to those departments using the service +* Each department which leverages GC/Code provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance +* A flat fee per user per department is charged to those departments using the service ## Supporting members -| Department | Name | Title | -|--- |--- |--- | -| ESDC | Jayson McIntosh | Acting Manager / Technical Advisor | -| ESDC | Remy Bernard | Manager (on interchange) | +| Department | Name | Title | +|--- |--- |--- | +| ESDC | Jayson McIntosh | Acting Manager / Technical Advisor | +| ESDC | Remy Bernard | Manager (on interchange) | | ESDC | Shaun Laughland | Programmer Analyst | | ESDC | Eric Wu | Technical Advisor | | PSPC | Brittany Hurley | Technical Advisor | @@ -130,7 +127,8 @@ do so | CEDQ | Sebastien Metivier | Team Lead - Integration | | NRCan | Todd McDonald | Senior Programmer | | TBS | Guillaume Charest | Advisor, Open Source Software | -| ESDC | Terry Doerksen | Programmer Analyst | +| ESDC | Terry Doerksen | Programmer Analyst | | ESDC | Calvin Rodo | Senior Advisor - Application Development | DFO | Diana McHugh | Stock Assessment Biologist | | ESDC | Josée Paquette | Programmer Analyst | +| ESDC | Gabriel Cossette | Senior Advisor | From 01ecfe863e06d8823adc50179d9390dc42959178 Mon Sep 17 00:00:00 2001 From: Jayson Date: Tue, 11 Jun 2019 11:26:55 -0400 Subject: [PATCH 32/35] Update OfficalGCCodeSupport.md --- Content/OfficalGCCodeSupport.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index f035081..61aa5a3 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -132,3 +132,5 @@ SSC and PSPC-Digital Services Branch are two Departments mandated with providing | DFO | Diana McHugh | Stock Assessment Biologist | | ESDC | Josée Paquette | Programmer Analyst | | ESDC | Gabriel Cossette | Senior Advisor | +| ESDC | Martin Mondor | Director of Strategy, Architecture and Business Relationships | +| ESDC | Michael Murphy | Director of Project Portfolio Management | From be6c94c32e04f452183ff07d969e1ab71e7b2bd6 Mon Sep 17 00:00:00 2001 From: Shaun Laughland Date: Fri, 14 Jun 2019 11:57:58 -0400 Subject: [PATCH 33/35] Updating links Links to GCCode recommendation by ESDC --- Content/OfficalGCCodeSupport.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 61aa5a3..ae2dc89 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -17,14 +17,14 @@ The use of source code version control is indeed a foundational tool for softwar However, as IT infrastructure, environments and processes become more complex and abstract, new tools and roles are emerging. Information Technology world leaders and best practices promote the use of automation and development tools throughout the lifecycle of an application, not only through the coding phase. In order to properly leverage this modern approach, a decentralized version control system with collaborative capabilities is vital. -Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation)), though for the Government of Canada as a whole as well. +Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](https://github.com/esdc-edsc/Welcome/blob/master/Recommendations/GCcode.md)), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement and the GCTools from TBS, having a collaborative tool with powerful automation features available would deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern services to Canadians. By providing a common place to develop and share development projects and solutions, there is an exceptional opportunity to reuse the same platform across departments in most cases. Presently many redundancies exist within departments as they each host and support local instances of varying source control solutions. ## Existing literature -1. ESDC's Developer Community has written an [article](http://www.gcpedia.gc.ca/wiki/ESDC_Development_Community_-_GC_Code_Recommendation) promoting GC/Code as their preferred solution for a standardized source control. +1. ESDC's Developer Community has written an [article](https://github.com/esdc-edsc/Welcome/blob/master/Recommendations/GCcode.md) promoting GC/Code as their preferred solution for a standardized source control. The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada 2. A [wiki page](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GC/Code. The proposed initiative from the article is an integration of GC/Code within the GCTools suite From 01511cb71d896c9aca256450be10a0843c03b5fe Mon Sep 17 00:00:00 2001 From: Gabriel Cossette Date: Mon, 17 Jun 2019 16:16:17 -0400 Subject: [PATCH 34/35] Summarized Stats, Refined Potential Scenarios section Signed-off-by: Gabriel Cossette --- Content/OfficalGCCodeSupport.md | 60 +++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index ae2dc89..4fb8013 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -40,8 +40,9 @@ A number of departments are already storing a large amount of source code on GC/ ### GC/Code Stats -**As of May 29th, 2019** GC/Code has a record of: - +As of May 2019, GC/Code has a record of ≈3600 projects and ≈3000 users (350+ being from ESDC) from 50 GC organizations, with more than 17k issues and 8k merge requests having been created. + + ## Business case @@ -63,14 +65,14 @@ To bring [GC/Code](https://gccode.ssc-spc.gc.ca) as an officially supported sour With the current (as is) configuration of GC/Code, there are a few additional features that could be enabled to increase the viability of the tool: -* **[Pages](https://about.gitlab.com/product/pages/)** - To host documents and guides on the software in development, and even static websites including ones with GoC official theme. -* **Shared [Runners](https://docs.gitlab.com/runner/)** - For deployment directly to SSC infrastructure to manage production and development environments. +* **[Pages](https://about.gitlab.com/product/pages/)** – To host documents and guides on the software in development, and even static websites including ones with GoC official theme. +* **[Shared Runners](https://docs.gitlab.com/runner/)** – For deployment directly to SSC infrastructure to manage production and development environments. With the tool exposed to the internet, there are a few other features that could be leveraged: -* **[Runners](https://docs.gitlab.com/runner/)** - For deployment to cloud infrastructure to manage production and development environments. -* **3rd Party [Integrations](https://docs.gitlab.com/ce/integration/)** - To add a variety of services to projects. -* **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** - For multi-government and citizen collaboration. +* **[Runners](https://docs.gitlab.com/runner/)** – For deployment to cloud infrastructure to manage production and development environments. +* **[3rd Party Integrations](https://docs.gitlab.com/ce/integration/)** – To add a variety of services to projects. +* **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** – For multi-government and citizen collaboration. With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab-org/gitlab-ee), even more [features](https://about.gitlab.com/pricing/self-managed/feature-comparison/) could be available. @@ -78,29 +80,51 @@ With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab- There are arguments to support the adoption of GitHub over GC/Code. Mainly: -* **Leveraging the GitHub's infrastructure** +* **Leveraging the GitHub's infrastructure**
The GC will not be able to compete with GitHub's resources and its ability to stay current, so it would be best to use GitHub from the get go and benefit from its sustainability capability. -* **Work in complete openness** +* **Work in complete openness**
GitHub allows GC employees to work in complete openness with the rest of the world, turning repositories private only when needed. However, this proposal counters these arguments to the favour of GC/Code for the following reasons: -* **Increase comfort level to openness** +* **Increase comfort level to openness**
Some GC employees and IT Security personnel are reluctant to use GitHub due to security risks (e.g.: [accidently adding sensitive information like API keys in the repos](https://www.theregister.co.uk/2018/02/07/uber_quit_github_for_custom_code_after_2016_data_breach/)). Using GC/Code is expected to augment the GC developer's community best practices around source control and, as such, increase assurance around management and IT Security personnel for open source project meant to be released to the public. -* **Vendor lock-in risk management** +* **Vendor lock-in risk management**
GitHub roadmap is determined based on industry funding, not by the GC's interests. Having our own internal instance reduces vendor lock-in by allowing GitHub repositories a second home. -* **Potential Cost Savings** -Although a more fullsome cost evaluation should be performed when this proposal is adopted, it is believed that maintaining an internal instance would result in cost savings due to the requirement to host private repositories at the GC level. -* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)** +* **Potential Cost Savings**
+Although a more fulsome cost evaluation should be performed when this proposal is adopted, it is believed that maintaining an internal instance would result in cost savings due to the requirement to host private repositories at the GC level. +* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)**
Having a hosted version of GitLab allows the GC to contribute more directly to the GitLab open source project. -## Potential Funding Options +## Potential Scenarios + +### Owner + +In order to move forward with this recommendation, an owner interested in evolving the platform needs to be found. Potential candidates could be: + +1. **SSC CIO** – Application Development and Database Administration team (current owner); +2. **TBS GCTools** – Under the Open Accessible Digital Workspace project; +3. **PSPC Digital Services** – Due to mandate in providing these types of services; and +4. **ESDC IIT** – As ESDC's Development Community standardized on GC/Code. + +### Business Model + +A sustainable business model also needs to be determined, which would most likely involve user departments to contribute to the platform in some way, e.g.: + +* **In-kind** – Each department provides 1 employee who is responsible 1 day/week to contribute toward the maintenance and constant improvement of the GitLab instance; and +* **Funding** – A flat fee per user per department is charged to those departments using the service. + +### Costing + +Finally, the cost required for the owner to host, support and evolve the platform will be dependent upon factors such as: -SSC and PSPC-Digital Services Branch are two Departments mandated with providing these types of services to other Government Departments, however both SSC and PSPC-DSB exist within a cost recovery funding model. In order to move forward on this recommendation, it is likely that we will need to identify Departments interested in providing resources to support this recommendation. Below are some potential options: +* **Support Level** – E.g. Period, Response time; +* **Hosting location** – SSC Data Centre or Public Cloud Provider; +* **Platform** – GitLab free or paid edition, or other options such as GitHub Enterprise; and +* **Maintenance** – E.g. Supported integrations, Frequency of updates, Monitoring. -* Each department which leverages GC/Code provides one employee who is responsible one day a week to contribute towards the maintenance and constant improvement of the GitLab instance -* A flat fee per user per department is charged to those departments using the service +All these potential scenarios will be further investigated once the proposal has been adopted. ## Supporting members From bfa798ea6e4928b88f0ffab8c349008fafbf8cd9 Mon Sep 17 00:00:00 2001 From: Gabriel Cossette Date: Wed, 17 Jul 2019 16:04:15 -0400 Subject: [PATCH 35/35] Change Potential Scenarios in Recommendation + fixes --- Content/OfficalGCCodeSupport.md | 73 ++++++++++++--------------------- 1 file changed, 26 insertions(+), 47 deletions(-) diff --git a/Content/OfficalGCCodeSupport.md b/Content/OfficalGCCodeSupport.md index 4fb8013..3737ebd 100644 --- a/Content/OfficalGCCodeSupport.md +++ b/Content/OfficalGCCodeSupport.md @@ -8,9 +8,9 @@ To recommend the adoption of a decentralized version control system for all IT p The latest updates to the [Directive on Management of IT](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249) have clearly identified 3 main requirements changes related to source code management in the GoC: -1. If a custom-built application is the appropriate option, **by default any source code written by the government must be released in an open format via Government of Canada websites and services designated by the Treasury Board of Canada Secretariat** [(C.2.3.8.3)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.3); -2. **All source code must be released under an appropriate open source software license** [(C.2.3.8.4)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.4); -3. Share code publicly when appropriate, and when not, **share within the Government of Canada** [(C.2.3.9.5)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.9.5). +1. If a custom-built application is the appropriate option, **by default any source code written by the government must be released** in an open format via Government of Canada websites and services designated by the Treasury Board of Canada Secretariat [(C.2.3.8.3)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.3); +2. All source code must be released under an appropriate **open source software license** [(C.2.3.8.4)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.8.4); +3. Share code **publicly** when appropriate, and when not, share **within** the Government of Canada [(C.2.3.9.5)](https://www.tbs-sct.gc.ca/pol/doc-eng.aspx?id=15249#claC.2.3.9.5). The use of source code version control is indeed a foundational tool for software development but each department currently manages its own source code independently. Moreso, there are even instances where multiple methods and solutions are in place to manage source code versioning within a single organisation. @@ -20,23 +20,18 @@ In order to properly leverage this modern approach, a decentralized version cont Many opportunities present themselves for individual departments (reference the [ESDC Development Community's GC Code Recommendation article](https://github.com/esdc-edsc/Welcome/blob/master/Recommendations/GCcode.md)), though for the Government of Canada as a whole as well. With initiatives such as the OneGov movement and the GCTools from TBS, having a collaborative tool with powerful automation features available would deliver great benefits to our development communities, who are increasingly responsible for ensuring the delivery of modern services to Canadians. By providing a common place to develop and share development projects and solutions, there is an exceptional opportunity to reuse the same platform across departments in most cases. -Presently many redundancies exist within departments as they each host and support local instances of varying source control solutions. +Presently, many redundancies exist within departments as they each host and support local instances of varying source control solutions. ## Existing literature -1. ESDC's Developer Community has written an [article](https://github.com/esdc-edsc/Welcome/blob/master/Recommendations/GCcode.md) promoting GC/Code as their preferred solution for a standardized source control. -The main set back of the tool is that it is unofficially supported, though given its benefits, ESDCs IT Strategy recommends that it should become the officially supported standard for all of the Government of Canada -2. A [wiki page](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GC/Code. -The proposed initiative from the article is an integration of GC/Code within the GCTools suite +1. ESDC's Developer Community has written an [article](https://github.com/esdc-edsc/Welcome/blob/master/Recommendations/GCcode.md) providing guidelines on how to manage ESDC's projects in GC/Code. +2. A [wiki page](https://wiki.gccollab.ca/GCcode/ConceptCase) was written supporting the move towards a government wide standardized source control solution and makes a case for GC/Code. The proposed initiative from the article is an integration of GC/Code within the GCTools suite. 3. The Government of Canada Open Source Advisory Board started writing a [business case](https://github.com/canada-ca/OS-Advisory_Conseil-SO/blob/master/en/Working_Group_Tools/gc-source-code-repo.md) for a Source Code Platform to enable central hosting and sharing of source code. ## Situation GC/Code is an instance of [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/), free open source software (FOSS) under the MIT license, hosted by Shared Services Canada (SSC). -GC/Code is currently unofficially supported by SSC with a "when time permits" policy. -It runs on production servers and has backups and receives semi-regular updates. -GC/Code is currently only available within the GoC Intranet, which does block the solution from access to 3rd party add-ons and some native features. -A number of departments are already storing a large amount of source code on GC/Code as their main source control solution. +GC/Code is currently unofficially supported by SSC with a "best effort" policy. It runs on production servers and has backups and receives semi-regular updates. GC/Code is currently only available within the GoC Intranet, which blocks the solution from access to 3rd party add-ons and some native features. A number of departments are already storing a large amount of source code on GC/Code. ### GC/Code Stats @@ -66,11 +61,11 @@ To bring [GC/Code](https://gccode.ssc-spc.gc.ca) as an officially supported sour With the current (as is) configuration of GC/Code, there are a few additional features that could be enabled to increase the viability of the tool: * **[Pages](https://about.gitlab.com/product/pages/)** – To host documents and guides on the software in development, and even static websites including ones with GoC official theme. -* **[Shared Runners](https://docs.gitlab.com/runner/)** – For deployment directly to SSC infrastructure to manage production and development environments. +* **[Internal Runners](https://docs.gitlab.com/runner/)** – For deployment directly to SSC infrastructure to manage production and development environments. With the tool exposed to the internet, there are a few other features that could be leveraged: -* **[Runners](https://docs.gitlab.com/runner/)** – For deployment to cloud infrastructure to manage production and development environments. +* **[Cloud Runners](https://docs.gitlab.com/runner/)** – For deployment to cloud infrastructure to manage production and development environments. * **[3rd Party Integrations](https://docs.gitlab.com/ce/integration/)** – To add a variety of services to projects. * **[Repository mirroring](https://docs.gitlab.com/ce/workflow/repository_mirroring.html)** – For multi-government and citizen collaboration. @@ -80,51 +75,35 @@ With funding for the [GitLab Enterprise Edition (EE)](https://gitlab.com/gitlab- There are arguments to support the adoption of GitHub over GC/Code. Mainly: -* **Leveraging the GitHub's infrastructure**
+* **Leveraging the GitHub's infrastructure** The GC will not be able to compete with GitHub's resources and its ability to stay current, so it would be best to use GitHub from the get go and benefit from its sustainability capability. -* **Work in complete openness**
+* **Work in complete openness** GitHub allows GC employees to work in complete openness with the rest of the world, turning repositories private only when needed. However, this proposal counters these arguments to the favour of GC/Code for the following reasons: -* **Increase comfort level to openness**
+* **Increase comfort level to openness** Some GC employees and IT Security personnel are reluctant to use GitHub due to security risks (e.g.: [accidently adding sensitive information like API keys in the repos](https://www.theregister.co.uk/2018/02/07/uber_quit_github_for_custom_code_after_2016_data_breach/)). Using GC/Code is expected to augment the GC developer's community best practices around source control and, as such, increase assurance around management and IT Security personnel for open source project meant to be released to the public. -* **Vendor lock-in risk management**
-GitHub roadmap is determined based on industry funding, not by the GC's interests. Having our own internal instance reduces vendor lock-in by allowing GitHub repositories a second home. -* **Potential Cost Savings**
+* **Vendor lock-in risk management** +GitHub roadmap is determined based on industry funding, not by the GC's interests. Having our own internal instance running on open source software reduces vendor lock-in by allowing GitHub repositories a second home. +* **Potential Cost Savings** Although a more fulsome cost evaluation should be performed when this proposal is adopted, it is believed that maintaining an internal instance would result in cost savings due to the requirement to host private repositories at the GC level. -* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)**
+* **Contribute to [GitLab Community Edition (CE)](https://gitlab.com/gitlab-org/gitlab-ce/)** Having a hosted version of GitLab allows the GC to contribute more directly to the GitLab open source project. -## Potential Scenarios +## Recommendation -### Owner +We recommend that GC/Code becomes the official internal version control platform for the GC and that ESDC contributes toward this goal (e.g. funding through MOU) as it directly benefits from the platform. -In order to move forward with this recommendation, an owner interested in evolving the platform needs to be found. Potential candidates could be: +We anticipate that the following work will be needed: -1. **SSC CIO** – Application Development and Database Administration team (current owner); -2. **TBS GCTools** – Under the Open Accessible Digital Workspace project; -3. **PSPC Digital Services** – Due to mandate in providing these types of services; and -4. **ESDC IIT** – As ESDC's Development Community standardized on GC/Code. - -### Business Model - -A sustainable business model also needs to be determined, which would most likely involve user departments to contribute to the platform in some way, e.g.: - -* **In-kind** – Each department provides 1 employee who is responsible 1 day/week to contribute toward the maintenance and constant improvement of the GitLab instance; and -* **Funding** – A flat fee per user per department is charged to those departments using the service. - -### Costing - -Finally, the cost required for the owner to host, support and evolve the platform will be dependent upon factors such as: - -* **Support Level** – E.g. Period, Response time; -* **Hosting location** – SSC Data Centre or Public Cloud Provider; -* **Platform** – GitLab free or paid edition, or other options such as GitHub Enterprise; and -* **Maintenance** – E.g. Supported integrations, Frequency of updates, Monitoring. - -All these potential scenarios will be further investigated once the proposal has been adopted. +1. Kick off discussions with SSC CIO ADDA (Application Development and Database Administration) team responsible for the current service; +2. Determine and plan evolution of the service (e.g. business model, service levels, hosting environment, additional features); +3. Present to relevant committees; +4. Set funding agreement(s) with ESDC and other departments as required; +5. Implement technical changes and formalize a support team within SSC; and +6. Rebrand the platform accordingly. ## Supporting members @@ -144,8 +123,8 @@ All these potential scenarios will be further investigated once the proposal has | PSPC | Steve Trotman | Programmer Analyst | | TC | Stephen Bakalian | Programmer Analyst | | PSC | Md Alam | Middleware Operations | -| DFO | Daniel Ricard | Senior Biologist | | SSC | Jeff Barnes | Senior Advisor | +| DFO | Daniel Ricard | Senior Biologist | | DFO | David Fishman | Data Manager | | DFO | Pablo Vergara | Data Manager | | CEDQ | Sebastien Metivier | Team Lead - Integration |