From 052abdb7f670126a1e400338b347738c7f9bf070 Mon Sep 17 00:00:00 2001 From: Nicola Coretti Date: Mon, 12 Aug 2024 12:23:48 +0200 Subject: [PATCH 1/2] WIP: Add basic talk layout and files --- talk/.gitignore | 1 + talk/00-metadata.yml | 6 +++ talk/01-why.md | 22 +++++++++++ talk/10-vision.md | 38 +++++++++++++++++++ talk/20-current-status.md | 23 +++++++++++ talk/30-the-path.md | 6 +++ talk/80-open-questions.md | 4 ++ talk/90-questions-and-feedback.md | 1 + talk/flake.nix | 37 ++++++++++++++++++ talk/images/logo.png | Bin 0 -> 38590 bytes talk/justfile | 34 +++++++++++++++++ talk/slides.css | 61 ++++++++++++++++++++++++++++++ 12 files changed, 233 insertions(+) create mode 100644 talk/.gitignore create mode 100644 talk/00-metadata.yml create mode 100644 talk/01-why.md create mode 100644 talk/10-vision.md create mode 100644 talk/20-current-status.md create mode 100644 talk/30-the-path.md create mode 100644 talk/80-open-questions.md create mode 100644 talk/90-questions-and-feedback.md create mode 100644 talk/flake.nix create mode 100644 talk/images/logo.png create mode 100644 talk/justfile create mode 100644 talk/slides.css diff --git a/talk/.gitignore b/talk/.gitignore new file mode 100644 index 000000000..bbae6a083 --- /dev/null +++ b/talk/.gitignore @@ -0,0 +1 @@ +python-toolbox.html diff --git a/talk/00-metadata.yml b/talk/00-metadata.yml new file mode 100644 index 000000000..6554c7f10 --- /dev/null +++ b/talk/00-metadata.yml @@ -0,0 +1,6 @@ +--- +title: 🔧 Python-Toolbox +subtitle: A Vision of a Better Future +author: Nicola Coretti +date: 2024-??-?? +--- diff --git a/talk/01-why.md b/talk/01-why.md new file mode 100644 index 000000000..587b7e624 --- /dev/null +++ b/talk/01-why.md @@ -0,0 +1,22 @@ +# Why? + +## Why This Talk? + +Align vision and understanding of common project- setup & management + +::: notes +At least on the usage side, ideally on usage + impl +::: + +## Why the Toolbox? +* 35+ Python projects, and the number still is increasing 😮‍💨 + * Reduce complexity by having common set of tools + * Reduce complexity by hiding unecessary parts of common tools + * Minimize/reduce cognitive overhead. + * Provide a "central" place for project maintenance knowledge. + * Simplify future changes/transitions (e.g., pylint/ruff, black/ruff-fmt). + +::: notes +* The Integration Team has 35+ Python projects, and the number still increases 😮‍💨. +Add revised version of design document with learnings and adjustments to documentation +::: diff --git a/talk/10-vision.md b/talk/10-vision.md new file mode 100644 index 000000000..1d426e470 --- /dev/null +++ b/talk/10-vision.md @@ -0,0 +1,38 @@ +# Vision + +## Principles +* Should run locally and in CI +* ... + +## Adoption + +### New Projects +* Cookiecutter + +### Old Projects +* Helpers ? + +::: notes +Not to much effort this will hopefully go away over time +::: + +## Tasks + +* Test(s) + - Unit + - Integration +* Checks + - Typecheck + - Linting + - Security + - Licences + - ... +* Release & Publish +* Reporting + + +## Worflows (CI & Co.) + +## Custumization + +## Auto Update/Upgrade diff --git a/talk/20-current-status.md b/talk/20-current-status.md new file mode 100644 index 000000000..87bf64d33 --- /dev/null +++ b/talk/20-current-status.md @@ -0,0 +1,23 @@ +# Where We Are At + +## Pre Conditions +* poetry +* pypi +* nox + +## New Projects + +## Old Projects + +## Reporting + +## Release support + +## Publish Support + +## CI & CD + +## Testing + +## Plugins + diff --git a/talk/30-the-path.md b/talk/30-the-path.md new file mode 100644 index 000000000..7619027b4 --- /dev/null +++ b/talk/30-the-path.md @@ -0,0 +1,6 @@ +# Walking the Path + +## What needs to be done + +* Regular effort +* Minimizing "new legacy" diff --git a/talk/80-open-questions.md b/talk/80-open-questions.md new file mode 100644 index 000000000..485a9c0d3 --- /dev/null +++ b/talk/80-open-questions.md @@ -0,0 +1,4 @@ +# Open Questions + +* Consider PR's over issue(s) especially for small things +* Single project repos (combinatory explosion and overhead) diff --git a/talk/90-questions-and-feedback.md b/talk/90-questions-and-feedback.md new file mode 100644 index 000000000..d3c0b5aeb --- /dev/null +++ b/talk/90-questions-and-feedback.md @@ -0,0 +1 @@ +# Questions & Feedback ? diff --git a/talk/flake.nix b/talk/flake.nix new file mode 100644 index 000000000..a3c62fc6c --- /dev/null +++ b/talk/flake.nix @@ -0,0 +1,37 @@ +{ + description = "A nix flake containing the dev stack for the python-toolbox talk slides"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.05"; + }; + + outputs = { self, nixpkgs }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + with pkgs; + { + devShell = { + x86_64-linux = pkgs.mkShell { + buildInputs = [ + pkgs.starship + pkgs.fish + pkgs.pandoc + pkgs.just + pkgs.nodejs_18 + pkgs.docker + pkgs.maven + pkgs.antlr4_9 + pkgs.jq + ]; + shellHook = '' + if [ -n "$PS1" ]; then + exec fish + fi + ''; + }; + }; + }; +} + diff --git a/talk/images/logo.png b/talk/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1eee21b0a0a04cb98832189eaec7c797799f8fe2 GIT binary patch literal 38590 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 +:root { + --r-background-color: #fff; + --r-main-color: #56565A; + --r-heading-color: #76BC1C; + --r-link-color: #589BD4; + --r-link-color-hover: #EEE65D; +/** --r-main-font: #{$mainFont}; + --r-main-font-size: #{$mainFontSize}; + --r-block-margin: #{$blockMargin}; + --r-heading-margin: #{$headingMargin}; + --r-heading-font: #{$headingFont}; + --r-heading-line-height: #{$headingLineHeight}; + --r-heading-letter-spacing: #{$headingLetterSpacing}; + --r-heading-text-transform: #{$headingTextTransform}; + --r-heading-text-shadow: #{$headingTextShadow}; + --r-heading-font-weight: #{$headingFontWeight}; + --r-heading1-text-shadow: #{$heading1TextShadow}; + --r-heading1-size: #{$heading1Size}; + --r-heading2-size: #{$heading2Size}; + --r-heading3-size: #{$heading3Size}; + --r-heading4-size: #{$heading4Size}; + --r-code-font: #{$codeFont}; + --r-link-color: #{$linkColor}; + --r-link-color-dark: #{darken($linkColor , 15% )}; + --r-link-color-hover: #{$linkColorHover}; + --r-selection-background-color: #{$selectionBackgroundColor}; + --r-selection-color: #{$selectionColor}; + --r-overlay-element-bg-color: #{$overlayElementBgColor}; + --r-overlay-element-fg-color: #{$overlayElementFgColor}; */ +} + +.reveal-viewport { + background-image: url(logo.png); + background-size: 5%; + background-repeat: no-repeat; + background-position: 3% 97%; +} + +.slides { + font-size: 0.75em; +} + +img { + max-height: 350px !important; +} + +figcaption { + font-size: 0.6em !important; + font-style: italic !important; +} + +.subtitle { + font-style: italic !important; + font-size: 0.75em; +} + +.date { + font-size: 0.75em !important; +} + From 1ee43d9ad2dd05c61697511d4eefd536f7041acf Mon Sep 17 00:00:00 2001 From: Nicola Coretti Date: Mon, 2 Sep 2024 15:01:37 +0200 Subject: [PATCH 2/2] Add flake.lock --- talk/flake.lock | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 talk/flake.lock diff --git a/talk/flake.lock b/talk/flake.lock new file mode 100644 index 000000000..c880ee71e --- /dev/null +++ b/talk/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1723556749, + "narHash": "sha256-+CHVZnTnIYRLYsARInHYoWkujzcRkLY/gXm3s5bE52o=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "4a92571f9207810b559c9eac203d1f4d79830073", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +}