Skip to content

Commit 8fc5ff7

Browse files
author
Bertrand Thomas
committed
Merge branch 'feature/gitguardian-updates' into 'main'
Feature/migrate everyday cheatsheets See merge request devpro-labs/enablement/tech-notes!5
2 parents 73c16c6 + da92f03 commit 8fc5ff7

File tree

299 files changed

+8612
-634
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

299 files changed

+8612
-634
lines changed

β€Ž.editorconfigβ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
root = true
22

33
[*]
4-
indent_style = space
5-
indent_size = 2
6-
end_of_line = lf
74
charset = utf-8
8-
trim_trailing_whitespace = true
5+
end_of_line = lf
6+
indent_size = 2
7+
indent_style = space
98
insert_final_newline = true
9+
trim_trailing_whitespace = true
1010

1111
[*.md]
1212
trim_trailing_whitespace = false

β€Ž.gitlab-ci.ymlβ€Ž

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
workflow:
2+
rules:
3+
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
4+
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
5+
- if: $CI_PIPELINE_SOURCE == "web"
6+
17
stages:
28
- build
39

β€ŽCONTRIBUTING.mdβ€Ž

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Contributing
22

3+
## Lint locally the files (before committing)
4+
35
```bash
46
mkdir -p .gitlab/runner/local
57
docker run --rm --name gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock -v $PWD/.gitlab/runner/local/config:/etc/gitlab-runner -v $PWD:$PWD --workdir $PWD gitlab/gitlab-runner exec docker lint-markdown

β€ŽREADME.mdβ€Ž

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
1-
# Information Technology Guide
1+
# Devpro Tech Notes
22

3-
[![GitHub Action CI status](https://github.com/devpro/information-technology-guide/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/devpro/information-technology-guide/actions/workflows/ci.yml)
4-
[![GitLab Pipeline Status](https://gitlab.com/devpro-labs/enablement/information-technology-guide/badges/main/pipeline.svg)](https://gitlab.com/devpro-labs/enablement/information-technology-guide/-/pipelines)
3+
<!-- [![GitHub Action CI status](https://github.com/devpro/information-technology-guide/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/devpro/information-technology-guide/actions/workflows/ci.yml) -->
4+
[![GitLab Pipeline Status](https://gitlab.com/devpro-labs/enablement/tech-notes/badges/main/pipeline.svg)](https://gitlab.com/devpro-labs/enablement/tech-notes/-/pipelines)
55
<!-- [![GitLab Pipeline Status](https://img.shields.io/gitlab/pipeline/devpro-labs/docs/information-technology-guide/main?label=Pipeline&logo=gitlab)](https://gitlab.com/devpro-labs/docs/information-technology-guide/-/pipelines) -->
66

77
Resources to help you learn about Information Technology (IT).
88

9-
🚧 This website is under active construction (last update February 2025)
9+
🚧 This website is under active construction (last update September 2025)
1010

11-
## Content
11+
## Sections
1212

13+
* [Architecture Decision Records](docs/adr/adr.md)
1314
* [Communities](docs/communities/communities.md)
1415
* [Companies](docs/companies/companies.md)
1516
* [Foundations](docs/foundations/foundations.md)
17+
* [Infrastructure](docs/infrastructure/infrastructure.md)
1618
* [Institutions](docs/institutions/institutions.md)
19+
* [Practices](docs/practices/practices.md)
20+
* [Scripts](docs/scripts/scripts.md)
21+
* [Independent projects](docs/independent-projects/independent-projects.md)
1722
* [Standards](docs/standards/standards.md)
23+
* [Workstations](docs/workstations/workstations.md)
24+
25+
<!-- https://wiki-tech.io/ -->

β€Ždocs/adr/adr.mdβ€Ž

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Architecture Decision Records (ADR)
2+
3+
## About
4+
5+
Look at [ADR GitHub organization](https://adr.github.io/).
6+
7+
## Content
8+
9+
### Current
10+
11+
* [Configured Development Environment (2024)](docs/adr/configured-development-environment-2024.md)
12+
* [Markdown code execution (2024)](docs/adr/markdown-code-execution-2024.md)
13+
* [Virtual lab platform (2024)](docs/adr/virtual-lab-platform-2024.md)
14+
15+
### Archive
16+
17+
* [Automated web testing (2023)](docs/adr/automated-web-testing-2023.md)
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Automated web testing ADR - February, 2023
2+
3+
## Context and problem statement
4+
5+
What technical solution for end-2-end (e2e) testing on web applications to start with?
6+
7+
## Requirements
8+
9+
* Tests can be run from the command line, with no link to an external service (no SaaS)
10+
* Test reports can be generated in HTML format
11+
* Language must be part of: .NET, Go, TypeScript
12+
* (Optional) Pipelines for code lifecycle & test execution are easy to make
13+
14+
## Considered options
15+
16+
* **Tools**
17+
* [Cucumber](https://cucumber.io/) ([GitHub org](https://github.com/cucumber))
18+
* [Godog](https://github.com/cucumber/godog) _official_: active development
19+
* [GoBDD](https://github.com/go-bdd/gobdd) _unofficial_ ([docs](https://go-bdd.github.io/gobdd/)): no release since 2021
20+
* [Cypress](https://www.cypress.io/) ([docs](https://docs.cypress.io/), [sources](https://github.com/cypress-io/cypress) _β˜… 42.6k_)
21+
* Guides: [Page Object Model by BrowserStack](https://www.browserstack.com/guide/cypress-page-object-model), [Cucumber](https://testersdock.com/cypress-cucumber-bdd/)
22+
* [Jest](https://jestjs.io/) ([docs](https://jestjs.io/docs/getting-started), [sources](https://github.com/facebook/jest) _β˜… 41.4k_)
23+
* [Playwright](https://playwright.dev/) ([docs](https://playwright.dev/docs/intro), [sources](https://github.com/microsoft/playwright) _β˜… 47.7k_)
24+
* Guides: [Page Object Models](https://playwright.dev/docs/pom), [BDD](https://dev.to/jankaritech/behavior-driven-development-bdd-using-playwright-n1o)
25+
* [Selenium](https://www.selenium.dev/) ([docs](https://www.selenium.dev/documentation/), [sources](https://github.com/SeleniumHQ/selenium) _β˜… 25.8k_)
26+
* [tebeka/selenium](https://github.com/tebeka/selenium): no update since 2021
27+
* [sourcegraph/go-selenium](https://github.com/sourcegraph/go-selenium): no update since 2017
28+
* [Taiko](https://taiko.dev/) ([sources](https://github.com/getgauge/taiko) _β˜… 3.2k_)
29+
* **Patterns**
30+
* Page Object
31+
* BDD (Behavior-Driven Development)
32+
* Gherkin language
33+
34+
## Decision outcome
35+
36+
* 🟑 **Cypress** is an proven solution but there is a risk the company change its open source strategy over time (and restrict for example the featureset or license model)
37+
* 🟠 **Jest** is very interesting for unit/integration testing, maybe not well suited for e2e testing.
38+
* 🟒 **Playwright** has a very good documentation and featureset, not linked to a company ← _we have our winner!_
39+
* 🟠 **Selenium** has no strong drivers in Go (as of today) and doesn't have the modern features the recent technologies have
40+
* πŸ”΄ **Taiko** doesn't have the same audience as the other massively used tools
41+
42+
## Implementation examples
43+
44+
* [hobbyfarm/e2e-testing](https://github.com/hobbyfarm/e2e-testing)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Configured development environment ADR - September, 2024
2+
3+
This study is strongly related to the subject of Cloud Development Environment (CDE).
4+
5+
## Context and problem statement
6+
7+
As a trainer, I need to provide a configured development environment to the trainees so the training sessions can be efficient.
8+
9+
As a manager, I want to enforce recommended code & security practices so the developer's time is optimized and the risk of losing sensitive information is minimized.
10+
11+
## Requirements
12+
13+
* Development dependencies can be configured (SDK, runtimes)
14+
* Container can be executed with a managed lifecycle
15+
* IDE (Integrated Development Environment), such as Visual Studio Code can be used in the web or locally
16+
17+
## Considered options
18+
19+
Name | Sources | Deployment | Free tier
20+
------------------------------------------------------------|-------------------------------------------------------------|-------------------------|--------------------------
21+
[Coder](https://coder.com/) | [:octocat:](https://github.com/coder/code-server) _β˜… 67.6k_ | Kubernetes | Community version
22+
[CodeSandbox](https://codesandbox.io/) | 🚫 | SaaS | 40 hours/month
23+
[Devbox](https://www.jetify.com/devbox) | [:octocat:](https://github.com/jetify-com/devbox) _β˜… 8.3k_ | Shell script | No restriction/limitation
24+
[devenv](https://devenv.sh/) | [:octocat:](https://github.com/cachix/devenv) _β˜… 4k_ | Shell script | No restriction/limitation
25+
[DevPod](https://devpod.sh/) | [:octocat:](https://github.com/loft-sh/devpod) _β˜… 8.6k_ | Desktop & CLI apps | No restriction/limitation
26+
[GitHub Codespaces](https://github.com/features/codespaces) | 🚫 | SaaS | 30 hours/month (4 cores)
27+
[Gitpod](https://www.gitpod.io/) | [:octocat:](https://github.com/gitpod-io/gitpod) _β˜… 12.7k_ | SaaS / AWS (Enterprise) | 50 hours/month
28+
[Strong Network](https://strong.network/) | 🚫 | SaaS / Kubenertes | 5 users (free community edition)
29+
30+
## Decision outcome
31+
32+
β›΅ Experimentation in progress!
33+
34+
* πŸ”΄ **DevPod** doesn't work with Docker on Windows 10 + Ubuntu 20.04 (WSL)
35+
* 🟠 **GitHub Codespaces** can quickly be expensive with a limited featureset
36+
* 🟒 **Strong Network** works well and offers the most advanced professional features (security, user management, collaboration)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# .NET Console design ADR - August, 2023
2+
3+
## Context and Problem Statement
4+
5+
What is the best way to create a nice console application in .NET?
6+
7+
## Requirements
8+
9+
* Interactive console
10+
* Read HTTP stream (read file content in GitHub)
11+
* Deserialize YAML file
12+
13+
## Considered Options
14+
15+
* **.NET framework classes**
16+
* `System.Diagnostics.Process`
17+
* **NuGet Packages**
18+
* `CommandLineParser` ([code](https://github.com/commandlineparser/commandline) _β˜… 4.1k_))
19+
* `KubernetesClient` ([code](https://github.com/kubernetes-client/csharp) _β˜… 0.9k_)
20+
* `Sharprompt` ([code](https://github.com/shibayan/Sharprompt) _β˜… 0.6k_)
21+
* `Spectre.Console` ([docs](https://spectreconsole.net/), [code](https://github.com/spectreconsole/spectre.console) _β˜… 7.3k_)
22+
* `Terminal.Gui` ([code](https://github.com/gui-cs/Terminal.Gui) _β˜… 8.4k_)
23+
24+
## Decision Outcome
25+
26+
TODO
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Markdown code execution ADR - September, 2024
2+
3+
## Context and problem statement
4+
5+
As a technical writer, I want to be able to execute the code blocks included in a Markdown page so that I can improve the user experience of the person that will be following the documentation.
6+
7+
## Requirements
8+
9+
* Execute in one click the code in a terminal that would have been opened and selected before
10+
* Must work in Visual Studio Code or integrated in a solution to provide the HTML from the Markdown
11+
* Technical solution must be free of charge
12+
13+
## Considered options
14+
15+
Name | Sources | IDE
16+
---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|-------------------
17+
[Runme](https://docs.runme.dev/) | [:octocat:](https://github.com/coder/code-server) _β˜… 1.1k_ | Visual Studio Code
18+
[Code Runner](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner) | [:octocat:](https://github.com/formulahendry/vscode-code-runner) _β˜… 2.2k_ | Visual Studio Code
19+
20+
## Decision outcome
21+
22+
β›΅ Experimentation in progress!
23+
24+
* 🟠 **Runme** looks cool and brings the concept of Notebook, but is limited and has some bugs
25+
* πŸ”΄ **Code Runner** is only for code in a sandbox, not on an actual terminal
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Virtual lab platform ADR - June, 2024
2+
3+
## Context and problem statement
4+
5+
As a technical writer, I would like to have a platform (similar to what was Katacoda) to create content so that I can provide workshops and exercises.
6+
7+
## Requirements
8+
9+
* Scenarios are written is Markdown files, stored in a git repository
10+
* A CLI makes possible to automate the content lifecycle
11+
* A web interface gives access to the instructions and multiple terminals (similar to what Katacoda was providing, with instructions on a side and a terminal on the other side)
12+
* Labs can be executed in Virtual Machines, that are created when a user starts and automatically destroyed when the user completes or after a given period
13+
* A web application, running in the labs, can be accessed from the user browser
14+
15+
## Considered options
16+
17+
Name | Sources | Deployment | Free tier
18+
-------------------------------------------|-------------------------------------------|------------|--------------------------------------------
19+
[HobbyFarm](https://github.com/hobbyfarm) | [:octocat:](https://github.com/hobbyfarm) | Kubernetes | No restriction/limitation
20+
[instruqt](https://instruqt.com/) | 🚫 | SaaS | None
21+
[iximiuz Labs](https://labs.iximiuz.com/) | 🚫 | SaaS | 2h/day w/ limitations
22+
[Killercoda](https://killercoda.com/learn) | 🚫 | SaaS | Free membership but slow performance
23+
[KodeKloud](https://kodekloud.com/) | 🚫 | SaaS | None (but some content is open to everyone)
24+
25+
## Decision outcome
26+
27+
β›΅ Experimentation in progress!
28+
29+
* 🟠 **HobbyFarm** is the only open-source solution but the attempt to install it failed and small project with unclear governance, poor documentation & unsure about code quality
30+
* 🟒 **Instruqt** works well, is used by most IT companies (_de facto_ industry standard), follows IT standard, fair pricing but no free tier nor self-hosted option
31+
* 🟑 **iximiuz Labs** is a great initiative of knowledge sharing, very nice UI but the templates are not working (cannot create content)
32+
* 🟑 **Killercoda** is used by the community (Kubernetes project) but is only for public content
33+
* πŸ”΄ **KodeKloud** is an excellent e-learning platform but not opened for contribution

0 commit comments

Comments
Β (0)