Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
freirea committed Jan 22, 2025
0 parents commit 5d3174f
Show file tree
Hide file tree
Showing 75 changed files with 1,222 additions and 0 deletions.
77 changes: 77 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Publish to GitHub Pages

on:
pull_request:
workflow_dispatch:
push:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read
pages: write
id-token: write


jobs:
build:
name: Build Site
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master

- uses: actions/setup-node@v4
with:
node-version-file: package.json

- uses: actions/cache@v4
with:
path: |
~/.npm
.techradar
key: ${{ runner.os }}-techradar-${{ hashFiles('**/yarn.lock') }}

- name: Install Dependencies
run: yarn install

- name: Generate Site
run: yarn build

- run: if [ -n "$(git status --porcelain)" ]; then echo 'workspace is dirty after rebuilding' ; git status ; git diff ; exit 1 ; fi

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: build
path: build

publish:
name: Publish to GitHub Pages
if: github.ref_name == 'main'
needs: [ build ]
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: build
path: build

- name: Configure Pages
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5

- name: Upload Artifacts
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
with:
path: build

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e
69 changes: 69 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz
.npmrc

# testing
/coverage
**/jest-coverage
**/playwright/downloads*
**/playwright/assets/
coverage-reports/
monocart-report/
.v8-coverage

# next.js
/.next/
/out/
.swc/

# production
/build

# misc
.DS_Store
*.pem
.codesight
.techradar

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
**/.env


# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts

# eslint
**/.eslintcache

# playwright
**/instrumented/
**/.nyc_output/
**/integration-tests-coverage/
**/test-results
**/playwright/.cache/
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/

# intellij
.idea
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2020 tb.lx by Daimler Truck. Based on work by AOE GmbH.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
68 changes: 68 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# tb.lx Tech Radar

tb.lx Tech Radar is our technology portfolio management tool. It reflects both established and emerging technologies being evaluated, adopted, or deprecated within our company. This tool supports teams in choosing the right technologies for future products and projects, fostering informed and consistent decision-making.

Our Tech Radar concept draws inspiration from ThoughtWorks, and their well-known Technology Radar. In addition, our project builds upon the open-source tech-radar project developed by [AOE](https://github.com/AOEpeople/aoe_technology_radar) under the Apache License.

You can access our tech radar [here.]()

## Workflow
The tech radar is built on data entries specified in `/radar`.<br />
Below you find the ID(s) related to each status (ring) and category (quadrant):

| Ring | ID |
|------------|----------|
| Adopt | `adopt` |
| Trial | `trial` |
| Assess | `assess` |
| Hold | `hold` |


| Quadrant | ID |
|-----------------------------|---------------------------------|
| Languages & Frameworks | `languages-and-frameworks` |
| Platforms & Infrastructure | `platforms-and-infrastructure` |
| Developer Tools | `developer-tools` |
| Methods & Patterns | `methods-and-patterns` |


### Setting up new data
For a new entry, create a folder under `/radar/{date-of-entry}` with the name of the technology. The entry files must be in Markdown format (.md). Each file has a front-matter header with the attributes of the technology. E.g.:

```
---
title: React
quadrant: languages-and-frameworks
ring: adopt
tags: [frontend] <!--- tags are optional --->
---
# React
Description and context goes here.
[Link to ADR].
```

## Setup

### Prerequisites
- [Node.js](https://nodejs.org/en/)
- [yarn](https://classic.yarnpkg.com/en/docs/install/)

### Installation
- clone the repo
- `yarn` for dependencies installation

### Commands
- `yarn build` for building the initial tech radar
- `yarn dev` for launching the development server


## Versioning

We use [SemVer](http://semver.org/) for versioning.


## Licensing
This project is released under the MIT License. It depends on the code and ideas from the AOE tech-radar project © AOE GmbH.
95 changes: 95 additions & 0 deletions about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# How to use the Technology Radar

## Introduction
tb.lx Tech Radar is our technology portfolio management tool. It reflects both established and emerging technologies being evaluated, adopted, or deprecated within our company. This tool supports teams in choosing the right technologies for future products and projects, fostering informed and consistent decision-making.

These guidelines outline the process for maintaining and updating the Tech Radar, ensuring it remains relevant, transparent, and collaborative. They aim to:
- Keep the Tech Radar current and accurate.
- Promote transparency in tech decisions.
- Encourage open collaboration and contributions from all team members.
- Streamline decision-making through a structured review process.

---

## Roles and Responsibilities
- **Core Engineering Leadership Team:** Responsible for conducting a full review of the Tech Radar every 3 months. Provides final approval on significant changes.
- **Tech Radar Maintainers:** Principal Engineers are responsible for reviewing incoming Pull Requests (PRs). This group ensures that contributions comply with guidelines and maintain overall Radar quality.
- **Contributors:** All tblxers are encouraged to propose new technologies or suggest changes to existing technology statuses. Contributors submit PRs, following the repository's guidelines and providing the necessary supporting documentation.

---

## Technology Statuses and Adoption process
The Tech Radar classifies technologies into four categories, reflecting their maturity and adoption level within tb.lx:

- **ASSESS:**
- The technology is under evaluation by a team.
- An ADR is required to ensure the evaluation is transparent, aligned with engineering principles, and documented

- **TRIAL:**
- The technology is being tested in production by at least one product
- The goal is to determine if it should be promoted as a tb.lx standard.
- A proven track record in a production environment is essencial before advancing.

- **ADOPT:**
- The technology has demonstrated clear value in production use-cases.
- It is considered a tb.lx standard and is widely recommended for use.

- **HOLD:**
- The technology is being deprecated at tb.lx.
- Its usage is not recommended, and it should be phased out over time.
- A deprecation ADR is required.

---

## Technology Categories (Quadrants)
To help organize and understand our technology ecosystem, the Tech Radar is divided into quadrants. These quadrants group technologies by their primary purpose and domain:

- **1. Programming Languages & Frameworks:**
- General-purpose or domain specific languages used to write application code, alongside essential frameworks that implement common patterns and functionalities.
- Examples: TypeScript, Kotlin, Scala, Rust, React, Next.js, Spring Boot.

- **2. Platforms & Infrastructure:**
- Hosted environments, cloud services, container platforms, or foundational managed solutions upon which applications are deployed or run.
- Examples: AKS, Azure B2C, MongoDB Atlas, Node.js

- **3. Developer Tools:**
- Tools, services, or utilities that help us build, test, secure, and maintain our applications. Used mostly for development, CI/CD, monitoring, or operational tasks.
- Examples: Terraform, Docker, GitHub Actions, Grafana.

- **4. Methods & Patterns:**
- Key Software development methods and Design Patterns, covering everything from Continuous Integration and testing, to Architecture.
- Examples: TDD, DevSecOps, GitOps, Component-driven Development, etc.

---

## Contributing to the Tech Radar

- **Before Opening a PR:**
- Review the contributing guidelines in the repository's README file
- Determine the right category (quadrant) for your technology by reviewing the definitions above.
- Ensure your contribution does not contain sensitive or proprietary information, as the repository is public.

- **Adding a New Technology (ASSESS):**
- Submit a PR to introduce the technology as "ASSESS", in the relevant quadrant (e.g. Programming Languages, Frameworks & Libraries, etc.).
- The PR should include a description detailing why the technology is relevant.

- **Moving from ASSESS to TRIAL:**
- Only move a technology to "TRIAL" after it has been successfully evaluated and tested.
- The PR should include a summary of findings and a link to the ADR.

- **Moving from TRIAL to ADOPT:**
- Promote a technology to "ADOPT" once it has clearly proven its value in production environments.
- Include evidence of successful implementations, or other supporting data in the PR.

- **Marking a technology as HOLD:**
- If the technology no longer aligns with tb.lx goals or is being phase out, submit a PR to mark it as "HOLD".
- Provide a brief explanation for the decision to deprecate.

---

## Open-Source considerations
Since the Tech Radar is public, contributors must:
- Omit sensitive, internal, or private company information from all code submitted in PRs.
- When writing PR descriptions, consider providing only high-level rationales suitable for an external audience.

By following these guidelines, we ensure that tb.lx Tech Radar remains a reliable, and transparent tool that evolves with our technological landscape. All tblxers are encouraged to collaborate, contributing to a shared understanding of our engineering direction and helping drive informed, and strategic decisions. 
Loading

0 comments on commit 5d3174f

Please sign in to comment.