From f58c9ed8d4b8fd59275097735612d9189ed8bbcb Mon Sep 17 00:00:00 2001 From: lgcorzo Date: Sat, 11 Apr 2026 22:41:44 +0200 Subject: [PATCH 1/5] chore: update workflows and synchronize wiki folder --- .github/workflows/docs-to-wiki.yml | 118 ++++++++++++++++++ {Documents => wiki}/Base_stories.md | 0 {Documents => wiki}/Configs_stories.md | 0 {Documents => wiki}/Datasets_stories.md | 0 {Documents => wiki}/Evaluations_stories.md | 0 {Documents => wiki}/Explanations_stories.md | 0 {Documents => wiki}/Inference_stories.md | 0 {Documents => wiki}/Metrics_stories.md | 0 {Documents => wiki}/Models_stories.md | 0 {Documents => wiki}/OSvariables_stories.md | 0 {Documents => wiki}/Promotions_stories.md | 0 {Documents => wiki}/Regristries_stories.md | 0 {Documents => wiki}/Schemas_stories.md | 0 {Documents => wiki}/Scripts_stories.md | 0 {Documents => wiki}/Searchers_stories.md | 0 {Documents => wiki}/Services_stories.md | 0 {Documents => wiki}/Settings_stories.md | 0 {Documents => wiki}/Signers_stories.md | 0 {Documents => wiki}/Splitters_stories.md | 0 {Documents => wiki}/Trainning_stories.md | 0 {Documents => wiki}/Tuning_stories.md | 0 .../backlog_mlops_regresion.md | 0 ...classes_regression_model_template.plantuml | 0 ...ackages_regression_model_template.plantuml | 0 24 files changed, 118 insertions(+) create mode 100644 .github/workflows/docs-to-wiki.yml rename {Documents => wiki}/Base_stories.md (100%) rename {Documents => wiki}/Configs_stories.md (100%) rename {Documents => wiki}/Datasets_stories.md (100%) rename {Documents => wiki}/Evaluations_stories.md (100%) rename {Documents => wiki}/Explanations_stories.md (100%) rename {Documents => wiki}/Inference_stories.md (100%) rename {Documents => wiki}/Metrics_stories.md (100%) rename {Documents => wiki}/Models_stories.md (100%) rename {Documents => wiki}/OSvariables_stories.md (100%) rename {Documents => wiki}/Promotions_stories.md (100%) rename {Documents => wiki}/Regristries_stories.md (100%) rename {Documents => wiki}/Schemas_stories.md (100%) rename {Documents => wiki}/Scripts_stories.md (100%) rename {Documents => wiki}/Searchers_stories.md (100%) rename {Documents => wiki}/Services_stories.md (100%) rename {Documents => wiki}/Settings_stories.md (100%) rename {Documents => wiki}/Signers_stories.md (100%) rename {Documents => wiki}/Splitters_stories.md (100%) rename {Documents => wiki}/Trainning_stories.md (100%) rename {Documents => wiki}/Tuning_stories.md (100%) rename {Documents => wiki}/backlog_mlops_regresion.md (100%) rename {Documents => wiki}/classes_regression_model_template.plantuml (100%) rename {Documents => wiki}/packages_regression_model_template.plantuml (100%) diff --git a/.github/workflows/docs-to-wiki.yml b/.github/workflows/docs-to-wiki.yml new file mode 100644 index 0000000..c404757 --- /dev/null +++ b/.github/workflows/docs-to-wiki.yml @@ -0,0 +1,118 @@ +name: Wiki Content Sync + +on: + push: + branches: + - main + paths: + - "wiki/**" + repository_dispatch: + types: [docs] + workflow_dispatch: + gollum: + +env: + GIT_AUTHOR_NAME: GitHub Action + GIT_AUTHOR_EMAIL: action@github.com + +permissions: + contents: write + pull-requests: write + +jobs: + sync-content-to-wiki: + if: always() && format('refs/heads/{0}', github.event.repository.default_branch) == github.ref && github.event_name != 'gollum' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Sync repo wiki folder to wiki + run: | + # 1. Prepare wiki repository URL + WIKI_URL="https://x-access-token:${{ secrets.WIKI_PERSONAL_ACCESS_TOKEN }}@github.com/${{ github.repository }}.wiki.git" + + # 2. Clone the wiki to a temporary directory + git clone "$WIKI_URL" wiki_temp + + # 3. Clean all files in wiki_temp (except .git) + find wiki_temp -mindepth 1 -maxdepth 1 -not -name ".git" -exec rm -rf {} + + + # 4. Copy everything from 'wiki/' folder to wiki_temp root + cp -r wiki/* wiki_temp/ + + # 5. Commit and push changes + cd wiki_temp + git config user.name "${{ env.GIT_AUTHOR_NAME }}" + git config user.email "${{ env.GIT_AUTHOR_EMAIL }}" + git add . + + if [ -n "$(git status --porcelain)" ]; then + git commit -m "chore: sync documentation to wiki [skip ci]" + # Targeting master as the wiki repo default for display + git push origin HEAD:master || git push origin HEAD:main + else + echo "No changes to sync." + fi + shell: bash + + sync-wiki-to-repo: + if: github.event_name == 'gollum' + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + token: ${{ secrets.WIKI_PERSONAL_ACCESS_TOKEN }} + ref: ${{ github.event.repository.default_branch }} + - name: Verify Wiki Directory + id: safe + run: | + if [ -d "wiki" ]; then + echo "Wiki directory found." + else + echo "wiki directory not found. Please sync to wiki first." + exit 1 + fi + shell: bash + - name: Sync Wiki to Repo + id: sync + run: | + # 1. Prepare wiki repository URL + WIKI_URL="https://x-access-token:${{ secrets.WIKI_PERSONAL_ACCESS_TOKEN }}@github.com/${{ github.repository }}.wiki.git" + + # 2. Clone the wiki + git clone "$WIKI_URL" wiki_temp + + # 3. Create a new branch for the changes + SYNC_BRANCH="wiki-sync-$(date +%s)" + git checkout -b "$SYNC_BRANCH" + + # 4. Sync contents from wiki_temp to the local wiki/ folder + rm -rf wiki/* + cp -r wiki_temp/* wiki/ + rm -rf wiki/.git + + # 5. Cleanup and Push the new branch + rm -rf wiki_temp + git config user.name "${{ env.GIT_AUTHOR_NAME }}" + git config user.email "${{ env.GIT_AUTHOR_EMAIL }}" + git add wiki/ + + if [ -n "$(git status --porcelain wiki/)" ]; then + git commit -m "chore: sync wiki changes back to repository" + git push origin "$SYNC_BRANCH" + echo "branch_name=$SYNC_BRANCH" >> $GITHUB_OUTPUT + else + echo "No changes found." + exit 0 + fi + shell: bash + - name: Create Pull Request + if: steps.sync.outputs.branch_name != '' + uses: repo-sync/pull-request@v2 + with: + source_branch: ${{ steps.sync.outputs.branch_name }} + destination_branch: ${{ github.event.repository.default_branch }} + pr_title: "[Chore] - Syncing Wiki changes from Web UI into repository" + pr_body: ":crown: *An automated PR* This PR syncs changes made directly in the GitHub Wiki back to the repository's `wiki/` folder." + pr_label: "wiki,automation" + github_token: ${{ secrets.WIKI_PERSONAL_ACCESS_TOKEN }} diff --git a/Documents/Base_stories.md b/wiki/Base_stories.md similarity index 100% rename from Documents/Base_stories.md rename to wiki/Base_stories.md diff --git a/Documents/Configs_stories.md b/wiki/Configs_stories.md similarity index 100% rename from Documents/Configs_stories.md rename to wiki/Configs_stories.md diff --git a/Documents/Datasets_stories.md b/wiki/Datasets_stories.md similarity index 100% rename from Documents/Datasets_stories.md rename to wiki/Datasets_stories.md diff --git a/Documents/Evaluations_stories.md b/wiki/Evaluations_stories.md similarity index 100% rename from Documents/Evaluations_stories.md rename to wiki/Evaluations_stories.md diff --git a/Documents/Explanations_stories.md b/wiki/Explanations_stories.md similarity index 100% rename from Documents/Explanations_stories.md rename to wiki/Explanations_stories.md diff --git a/Documents/Inference_stories.md b/wiki/Inference_stories.md similarity index 100% rename from Documents/Inference_stories.md rename to wiki/Inference_stories.md diff --git a/Documents/Metrics_stories.md b/wiki/Metrics_stories.md similarity index 100% rename from Documents/Metrics_stories.md rename to wiki/Metrics_stories.md diff --git a/Documents/Models_stories.md b/wiki/Models_stories.md similarity index 100% rename from Documents/Models_stories.md rename to wiki/Models_stories.md diff --git a/Documents/OSvariables_stories.md b/wiki/OSvariables_stories.md similarity index 100% rename from Documents/OSvariables_stories.md rename to wiki/OSvariables_stories.md diff --git a/Documents/Promotions_stories.md b/wiki/Promotions_stories.md similarity index 100% rename from Documents/Promotions_stories.md rename to wiki/Promotions_stories.md diff --git a/Documents/Regristries_stories.md b/wiki/Regristries_stories.md similarity index 100% rename from Documents/Regristries_stories.md rename to wiki/Regristries_stories.md diff --git a/Documents/Schemas_stories.md b/wiki/Schemas_stories.md similarity index 100% rename from Documents/Schemas_stories.md rename to wiki/Schemas_stories.md diff --git a/Documents/Scripts_stories.md b/wiki/Scripts_stories.md similarity index 100% rename from Documents/Scripts_stories.md rename to wiki/Scripts_stories.md diff --git a/Documents/Searchers_stories.md b/wiki/Searchers_stories.md similarity index 100% rename from Documents/Searchers_stories.md rename to wiki/Searchers_stories.md diff --git a/Documents/Services_stories.md b/wiki/Services_stories.md similarity index 100% rename from Documents/Services_stories.md rename to wiki/Services_stories.md diff --git a/Documents/Settings_stories.md b/wiki/Settings_stories.md similarity index 100% rename from Documents/Settings_stories.md rename to wiki/Settings_stories.md diff --git a/Documents/Signers_stories.md b/wiki/Signers_stories.md similarity index 100% rename from Documents/Signers_stories.md rename to wiki/Signers_stories.md diff --git a/Documents/Splitters_stories.md b/wiki/Splitters_stories.md similarity index 100% rename from Documents/Splitters_stories.md rename to wiki/Splitters_stories.md diff --git a/Documents/Trainning_stories.md b/wiki/Trainning_stories.md similarity index 100% rename from Documents/Trainning_stories.md rename to wiki/Trainning_stories.md diff --git a/Documents/Tuning_stories.md b/wiki/Tuning_stories.md similarity index 100% rename from Documents/Tuning_stories.md rename to wiki/Tuning_stories.md diff --git a/Documents/backlog_mlops_regresion.md b/wiki/backlog_mlops_regresion.md similarity index 100% rename from Documents/backlog_mlops_regresion.md rename to wiki/backlog_mlops_regresion.md diff --git a/Documents/classes_regression_model_template.plantuml b/wiki/classes_regression_model_template.plantuml similarity index 100% rename from Documents/classes_regression_model_template.plantuml rename to wiki/classes_regression_model_template.plantuml diff --git a/Documents/packages_regression_model_template.plantuml b/wiki/packages_regression_model_template.plantuml similarity index 100% rename from Documents/packages_regression_model_template.plantuml rename to wiki/packages_regression_model_template.plantuml From 3cf9134f8b1ce64adc7b233bf1266743db480942 Mon Sep 17 00:00:00 2001 From: lgcorzo Date: Sat, 11 Apr 2026 22:42:32 +0200 Subject: [PATCH 2/5] docs: add wiki sidebar navigation --- wiki/_Sidebar.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 wiki/_Sidebar.md diff --git a/wiki/_Sidebar.md b/wiki/_Sidebar.md new file mode 100644 index 0000000..e33ae61 --- /dev/null +++ b/wiki/_Sidebar.md @@ -0,0 +1,37 @@ +# MLOps Python Package 📦 + +* [🏠 Home](Home) +* [📋 Backlog](backlog_mlops_regresion) + +## 🧠 Models & Data +* [Models](Models_stories) +* [Datasets](Datasets_stories) +* [Schemas](Schemas_stories) +* [Metrics](Metrics_stories) + +## 🚀 Lifecycle +* [Training](Trainning_stories) +* [Tuning](Tuning_stories) +* [Evaluations](Evaluations_stories) +* [Explanations](Explanations_stories) +* [Inference](Inference_stories) +* [Promotions](Promotions_stories) + +## 🛠️ Config & Tools +* [Configs](Configs_stories) +* [Settings](Settings_stories) +* [OS Variables](OSvariables_stories) +* [Scripts](Scripts_stories) + +## 🏛️ Registry & Services +* [Registries](Regristries_stories) +* [Services](Services_stories) +* [Signers](Signers_stories) + +## 🔧 Components +* [Base](Base_stories) +* [Searchers](Searchers_stories) +* [Splitters](Splitters_stories) + +--- +*Powered by MLOps Factory* From 22b462077d154f77a525b2f779dad2ea52b147c8 Mon Sep 17 00:00:00 2001 From: lgcorzo Date: Sat, 11 Apr 2026 22:52:29 +0200 Subject: [PATCH 3/5] fix: improve wiki sync workflow robustness and add branch trigger --- .github/workflows/docs-to-wiki.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs-to-wiki.yml b/.github/workflows/docs-to-wiki.yml index c404757..69353ca 100644 --- a/.github/workflows/docs-to-wiki.yml +++ b/.github/workflows/docs-to-wiki.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - wiki paths: - "wiki/**" repository_dispatch: @@ -21,7 +22,7 @@ permissions: jobs: sync-content-to-wiki: - if: always() && format('refs/heads/{0}', github.event.repository.default_branch) == github.ref && github.event_name != 'gollum' + if: always() && github.event_name != 'gollum' && (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) || github.ref == 'refs/heads/wiki') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -30,7 +31,13 @@ jobs: # 1. Prepare wiki repository URL WIKI_URL="https://x-access-token:${{ secrets.WIKI_PERSONAL_ACCESS_TOKEN }}@github.com/${{ github.repository }}.wiki.git" - # 2. Clone the wiki to a temporary directory + # 2. Check if wiki remote exists before cloning + if ! git ls-remote "$WIKI_URL" > /dev/null 2>&1; then + echo "::warning title=Wiki Not Found::The GitHub Wiki repository was not found. Please ensure the Wiki is enabled and at least one page exists (e.g. Home.md)." + exit 0 + fi + + # 3. Clone the wiki to a temporary directory git clone "$WIKI_URL" wiki_temp # 3. Clean all files in wiki_temp (except .git) From 365901c1a57d7656c96bba85e9a67115fc2ef8ef Mon Sep 17 00:00:00 2001 From: lgcorzo Date: Sat, 11 Apr 2026 22:58:27 +0200 Subject: [PATCH 4/5] docs: sanitize wiki links and add home page --- wiki/Base_stories.md | 2 +- wiki/Configs_stories.md | 2 +- wiki/Datasets_stories.md | 2 +- wiki/Evaluations_stories.md | 2 +- wiki/Explanations_stories.md | 2 +- wiki/Home.md | 16 +++++++++++++ wiki/Inference_stories.md | 2 +- wiki/Metrics_stories.md | 2 +- wiki/Models_stories.md | 2 +- wiki/OSvariables_stories.md | 2 +- wiki/Promotions_stories.md | 2 +- wiki/Regristries_stories.md | 2 +- wiki/Schemas_stories.md | 2 +- wiki/Scripts_stories.md | 2 +- wiki/Searchers_stories.md | 2 +- wiki/Services_stories.md | 2 +- wiki/Settings_stories.md | 2 +- wiki/Signers_stories.md | 2 +- wiki/Splitters_stories.md | 2 +- wiki/Trainning_stories.md | 2 +- wiki/Tuning_stories.md | 2 +- wiki/backlog_mlops_regresion.md | 40 ++++++++++++++++----------------- 22 files changed, 56 insertions(+), 40 deletions(-) create mode 100644 wiki/Home.md diff --git a/wiki/Base_stories.md b/wiki/Base_stories.md index 3ba16df..529f0df 100644 --- a/wiki/Base_stories.md +++ b/wiki/Base_stories.md @@ -1,4 +1,4 @@ -# US [High-Level Project Jobs](./backlog_mlops_regresion.md) : Manage the execution context for high-level project jobs with integrated services. +# US [High-Level Project Jobs](backlog_mlops_regresion) : Manage the execution context for high-level project jobs with integrated services. - [US High-Level Project Jobs : Manage the execution context for high-level project jobs with integrated services.](#us-high-level-project-jobs--manage-the-execution-context-for-high-level-project-jobs-with-integrated-services) - [classes relations](#classes-relations) diff --git a/wiki/Configs_stories.md b/wiki/Configs_stories.md index 0ed41b2..42ad0d0 100644 --- a/wiki/Configs_stories.md +++ b/wiki/Configs_stories.md @@ -1,4 +1,4 @@ -# US [Configs](./backlog_mlops_regresion.md) : Parse, Merge, and Convert Configuration Objects +# US [Configs](backlog_mlops_regresion) : Parse, Merge, and Convert Configuration Objects - [US Configs : Parse, Merge, and Convert Configuration Objects](#us-configs--parse-merge-and-convert-configuration-objects) - [methods uml diagram](#methods-uml-diagram) diff --git a/wiki/Datasets_stories.md b/wiki/Datasets_stories.md index 112584b..d5cba6f 100644 --- a/wiki/Datasets_stories.md +++ b/wiki/Datasets_stories.md @@ -1,4 +1,4 @@ -# US [Datasetes](./backlog_mlops_regresion.md) : Handle loading, preprocessing, and managing data sets for training, evaluation, and inference. +# US [Datasetes](backlog_mlops_regresion) : Handle loading, preprocessing, and managing data sets for training, evaluation, and inference. - [US Datasetes : Handle loading, preprocessing, and managing data sets for training, evaluation, and inference.](#us-datasetes---handle-loading-preprocessing-and-managing-data-sets-for-training-evaluation-and-inference) - [classes relations](#classes-relations) diff --git a/wiki/Evaluations_stories.md b/wiki/Evaluations_stories.md index 312e696..4ba8637 100644 --- a/wiki/Evaluations_stories.md +++ b/wiki/Evaluations_stories.md @@ -1,4 +1,4 @@ -# US [Model Evaluations Job](./backlog_mlops_regresion.md) : Evaluate a registered model version against a dataset. +# US [Model Evaluations Job](backlog_mlops_regresion) : Evaluate a registered model version against a dataset. - [US Model Evaluation Job : Define a job for evaluating registered models with given datasets.](#us-model-evaluation-job--define-a-job-for-evaluating-registered-models-with-given-datasets) - [classes relations](#classes-relations) diff --git a/wiki/Explanations_stories.md b/wiki/Explanations_stories.md index 940d984..1a1c31a 100644 --- a/wiki/Explanations_stories.md +++ b/wiki/Explanations_stories.md @@ -1,4 +1,4 @@ -# US [Model Explanations Job](./backlog_mlops_regresion.md) : Explain predictions for a registered model version and dataset. structure and decisions. +# US [Model Explanations Job](backlog_mlops_regresion) : Explain predictions for a registered model version and dataset. structure and decisions. - [US Model Explanations Job : Define a job for explaining the model structure and decisions.](#us-model-explanations-job--define-a-job-for-explaining-the-model-structure-and-decisions) - [classes relations](#classes-relations) diff --git a/wiki/Home.md b/wiki/Home.md new file mode 100644 index 0000000..c40e0ac --- /dev/null +++ b/wiki/Home.md @@ -0,0 +1,16 @@ +# Welcome to the MLOps Python Package Wiki 🚀 + +This wiki contains the complete documentation for the MLOps Python Package project, including feature stories, architectural overviews, and implementation details. + +## 📌 Quick Start + +* **[Backlog Overview](backlog_mlops_regresion)**: The central hub for all project features and user stories. +* **[Models & Data](Models_stories)**: Explore how models, datasets, and schemas are defined and managed. +* **[Lifecycle](Trainning_stories)**: Detailed guides on Training, Tuning, Evaluation, and Promotion. + +## 🏗️ Project Architecture + +The project follows a modular design focused on scalability and reproducibility in MLOps workflows. You can find detailed descriptions of each component in the sidebar. + +--- +*For technical details on individual modules, please refer to the [Sidebar](_Sidebar).* diff --git a/wiki/Inference_stories.md b/wiki/Inference_stories.md index c4ddbb6..e051b18 100644 --- a/wiki/Inference_stories.md +++ b/wiki/Inference_stories.md @@ -1,4 +1,4 @@ -# US [Model Inference Job](./backlog_mlops_regresion.md) : Define a job for generating batch predictions from a registered model. +# US [Model Inference Job](backlog_mlops_regresion) : Define a job for generating batch predictions from a registered model. - [US Model Inference Job : Define a job for generating batch predictions from a registered model.](#us-model-inference-job--define-a-job-for-generating-batch-predictions-from-a-registered-model) - [classes relations](#classes-relations) diff --git a/wiki/Metrics_stories.md b/wiki/Metrics_stories.md index e0b0b86..f1898eb 100644 --- a/wiki/Metrics_stories.md +++ b/wiki/Metrics_stories.md @@ -1,4 +1,4 @@ -# US [Metrics](./backlog_mlops_regresion.md) : Provide standardized measurements for model performance, accuracy, and evaluation +# US [Metrics](backlog_mlops_regresion) : Provide standardized measurements for model performance, accuracy, and evaluation Provide standardized measurements for model performance, accuracy, and evaluation. Useful for tracking improvement and identifying bottlenecks. diff --git a/wiki/Models_stories.md b/wiki/Models_stories.md index bd518ca..e51e2df 100644 --- a/wiki/Models_stories.md +++ b/wiki/Models_stories.md @@ -1,4 +1,4 @@ -# US [Models](./backlog_mlops_regresion.md) : Define the structure of machine learning models, including architectures and checkpoints, to standardize training and deployment +# US [Models](backlog_mlops_regresion) : Define the structure of machine learning models, including architectures and checkpoints, to standardize training and deployment - [US Models : Define the structure of machine learning models, including architectures and checkpoints, to standardize training and deployment](#us-models--define-the-structure-of-machine-learning-models-including-architectures-and-checkpoints-to-standardize-training-and-deployment) - [classes relations](#classes-relations) diff --git a/wiki/OSvariables_stories.md b/wiki/OSvariables_stories.md index 1823c07..67eb994 100644 --- a/wiki/OSvariables_stories.md +++ b/wiki/OSvariables_stories.md @@ -1,4 +1,4 @@ -# US [IO](./backlog_mlops_regresion.md) : Provide environment variables and system-level configurations for portability across various environments. +# US [IO](backlog_mlops_regresion) : Provide environment variables and system-level configurations for portability across various environments. - [US IO : Provide environment variables and system-level configurations for portability across various environments.](#us-io---provide-environment-variables-and-system-level-configurations-for-portability-across-various-environments) - [classes relations](#classes-relations) diff --git a/wiki/Promotions_stories.md b/wiki/Promotions_stories.md index 1dfb0a4..9889189 100644 --- a/wiki/Promotions_stories.md +++ b/wiki/Promotions_stories.md @@ -1,5 +1,5 @@ -# US [Model Promotion Job](./backlog_mlops_regresion.md) : Define a job for promoting a registered model version with an alias. +# US [Model Promotion Job](backlog_mlops_regresion) : Define a job for promoting a registered model version with an alias. - [US Model Promotion Job : Define a job for promoting a registered model version with an alias.](#us-model-promotion-job--define-a-job-for-promoting-a-registered-model-version-with-an-alias) - [classes relations](#classes-relations) diff --git a/wiki/Regristries_stories.md b/wiki/Regristries_stories.md index 25dc76c..0a3dd1d 100644 --- a/wiki/Regristries_stories.md +++ b/wiki/Regristries_stories.md @@ -1,4 +1,4 @@ -# US [Model Registries](./backlog_mlops_regresion.md) : Model registry logicading, and registering machine learning models using MLflow. +# US [Model Registries](backlog_mlops_regresion) : Model registry logicading, and registering machine learning models using MLflow. - [US Model Registry : Manage saving, loading, and registering machine learning models using MLflow.](#us-model-registry--manage-saving-loading-and-registering-machine-learning-models-using-mlflow) - [classes relations](#classes-relations) diff --git a/wiki/Schemas_stories.md b/wiki/Schemas_stories.md index f83095e..c3cbda3 100644 --- a/wiki/Schemas_stories.md +++ b/wiki/Schemas_stories.md @@ -1,4 +1,4 @@ -# US [Scchemas](./backlog_mlops_regresion.md) : Define structured data formats for input, output, and intermediate processes, ensuring consistency and validation throughout the pipeline +# US [Scchemas](backlog_mlops_regresion) : Define structured data formats for input, output, and intermediate processes, ensuring consistency and validation throughout the pipeline - [US Scchemas : Define structured data formats for input, output, and intermediate processes, ensuring consistency and validation throughout the pipeline](#us-scchemas--define-structured-data-formats-for-input-output-and-intermediate-processes-ensuring-consistency-and-validation-throughout-the-pipeline) - [classes relations](#classes-relations) diff --git a/wiki/Scripts_stories.md b/wiki/Scripts_stories.md index 4e58965..0a1b154 100644 --- a/wiki/Scripts_stories.md +++ b/wiki/Scripts_stories.md @@ -1,4 +1,4 @@ -# US [CLI Application for Running AI/ML Jobs](./backlog_mlops_regresion.md) : Scripts for the CLI application +# US [CLI Application for Running AI/ML Jobs](backlog_mlops_regresion) : Scripts for the CLI application - [US CLI Application for Running AI/ML Jobs : Scripts for the CLI application](#us-cli-application-for-running-aiml-jobs--scripts-for-the-cli-application) - [classes relations](#classes-relations) diff --git a/wiki/Searchers_stories.md b/wiki/Searchers_stories.md index 00cb562..73b13fe 100644 --- a/wiki/Searchers_stories.md +++ b/wiki/Searchers_stories.md @@ -1,4 +1,4 @@ -# US [Hyperparameter Searchers](./backlog_mlops_regresion.md) : Define functionalities for finding the best hyperparameters for a model. +# US [Hyperparameter Searchers](backlog_mlops_regresion) : Define functionalities for finding the best hyperparameters for a model. - [US Hyperparameter Searchers : Define functionalities for finding the best hyperparameters for a model.](#us-hyperparameter-searchers--define-functionalities-for-finding-the-best-hyperparameters-for-a-model) - [classes relations](#classes-relations) diff --git a/wiki/Services_stories.md b/wiki/Services_stories.md index b8534c2..525a408 100644 --- a/wiki/Services_stories.md +++ b/wiki/Services_stories.md @@ -1,5 +1,5 @@ -# US [Global Context Management](./backlog_mlops_regresion.md) : Manage global contexts during execution for logging, notifications, and MLflow tracking. +# US [Global Context Management](backlog_mlops_regresion) : Manage global contexts during execution for logging, notifications, and MLflow tracking. - [US Global Context Management : Manage global contexts during execution for logging, notifications, and MLflow tracking.](#us-global-context-management--manage-global-contexts-during-execution-for-logging-notifications-and-mlflow-tracking) - [classes relations](#classes-relations) diff --git a/wiki/Settings_stories.md b/wiki/Settings_stories.md index a11742e..9c1191f 100644 --- a/wiki/Settings_stories.md +++ b/wiki/Settings_stories.md @@ -1,4 +1,4 @@ -# US [Application Settings Management](./backlog_mlops_regresion.md) : Define settings for the application. +# US [Application Settings Management](backlog_mlops_regresion) : Define settings for the application. - [US Application Settings Management : Define settings for the application.](#us-application-settings-management--define-settings-for-the-application) - [classes relations](#classes-relations) diff --git a/wiki/Signers_stories.md b/wiki/Signers_stories.md index 1b3888c..f6c3d1b 100644 --- a/wiki/Signers_stories.md +++ b/wiki/Signers_stories.md @@ -1,4 +1,4 @@ -# US [Model Signature Generation](./backlog_mlops_regresion.md) : Generate signatures for AI/ML models. +# US [Model Signature Generation](backlog_mlops_regresion) : Generate signatures for AI/ML models. - [US Model Signature Generation : Generate signatures for AI/ML models.](#us-model-signature-generation--generate-signatures-for-aiml-models) - [classes relations](#classes-relations) diff --git a/wiki/Splitters_stories.md b/wiki/Splitters_stories.md index de8fbb3..6a36857 100644 --- a/wiki/Splitters_stories.md +++ b/wiki/Splitters_stories.md @@ -1,4 +1,4 @@ -# US [Data Splitting Functionality](./backlog_mlops_regresion.md) : Split dataframes into subsets for model training and evaluation. +# US [Data Splitting Functionality](backlog_mlops_regresion) : Split dataframes into subsets for model training and evaluation. - [US Data Splitting Functionality : Split dataframes into subsets for model training and evaluation.](#us-data-splitting-functionality--split-dataframes-into-subsets-for-model-training-and-evaluation) - [classes relations](#classes-relations) diff --git a/wiki/Trainning_stories.md b/wiki/Trainning_stories.md index 93d0dee..f0bbd9e 100644 --- a/wiki/Trainning_stories.md +++ b/wiki/Trainning_stories.md @@ -1,4 +1,4 @@ -# US [Model Training Job](./backlog_mlops_regresion.md) : Train, evaluate, and register a machine learning model. +# US [Model Training Job](backlog_mlops_regresion) : Train, evaluate, and register a machine learning model. - [US Model Training Job : Define a job for training and registering a single AI/ML model](#us-model-training-job--define-a-job-for-training-and-registering-a-single-aiml-model) - [classes relations](#classes-relations) - [**User Stories: Training Job Management**](#user-stories-training-job-management) diff --git a/wiki/Tuning_stories.md b/wiki/Tuning_stories.md index 9f42308..dea0ccf 100644 --- a/wiki/Tuning_stories.md +++ b/wiki/Tuning_stories.md @@ -1,4 +1,4 @@ -# US [Model Tuning Job](./backlog_mlops_regresion.md) : Perform hyperparameter tuning for a model. the best hyperparameters for a model +# US [Model Tuning Job](backlog_mlops_regresion) : Perform hyperparameter tuning for a model. the best hyperparameters for a model - [US Model Tuning Job : Define a job for finding the best hyperparameters for a model](#us-model-tuning-job--define-a-job-for-finding-the-best-hyperparameters-for-a-model) - [classes relations](#classes-relations) diff --git a/wiki/backlog_mlops_regresion.md b/wiki/backlog_mlops_regresion.md index fcd2bce..509c6d7 100644 --- a/wiki/backlog_mlops_regresion.md +++ b/wiki/backlog_mlops_regresion.md @@ -18,43 +18,43 @@ The foundational components of the system that ensure efficient functionality across various modules: -- **[US: Metrics](Metrics_stories.md)**: Provide standardized measurements for model performance, accuracy, and evaluation. Useful for tracking improvement and identifying bottlenecks. -- **[US: Models](Models_stories.md)**: Define the structure of machine learning models, including architectures and checkpoints, to standardize training and deployment. -- **[US: Schemas](Schemas_stories.md)**: Define structured data formats for input, output, and intermediate processes, ensuring consistency and validation throughout the pipeline. +- **[US: Metrics](Metrics_stories)**: Provide standardized measurements for model performance, accuracy, and evaluation. Useful for tracking improvement and identifying bottlenecks. +- **[US: Models](Models_stories)**: Define the structure of machine learning models, including architectures and checkpoints, to standardize training and deployment. +- **[US: Schemas](Schemas_stories)**: Define structured data formats for input, output, and intermediate processes, ensuring consistency and validation throughout the pipeline. ### **FE: Input Outputs** Handle configuration, data ingestion, and external environment variables for seamless integration: -- **[US: Config](Configs_stories.md)**: Store and manage configuration files to customize and control the behavior of different modules. -- **[US: Dataset](Datasets_stories.md)**: Handle loading, preprocessing, and managing data sets for training, evaluation, and inference. -- **[US: OSVariables](OSvariables_stories.md)**: Provide environment variables and system-level configurations for portability across various environments. -- **[US: Registries](Regristries_stories.md)**: Maintain a central repository for tracking artifacts like models, datasets, and configurations. -- **[US: Services](Services_stories.md)**: Connect and integrate external or internal services such as APIs, databases, and message brokers. +- **[US: Config](Configs_stories)**: Store and manage configuration files to customize and control the behavior of different modules. +- **[US: Dataset](Datasets_stories)**: Handle loading, preprocessing, and managing data sets for training, evaluation, and inference. +- **[US: OSVariables](OSvariables_stories)**: Provide environment variables and system-level configurations for portability across various environments. +- **[US: Registries](Regristries_stories)**: Maintain a central repository for tracking artifacts like models, datasets, and configurations. +- **[US: Services](Services_stories)**: Connect and integrate external or internal services such as APIs, databases, and message brokers. ### **FE: Jobs** Define and manage specific tasks and workflows for various stages in the machine learning lifecycle: -- **[US: Base](Base_stories.md)**: The foundational job configurations and implementations shared across all job types. -- **[US: Evaluations](Evaluations_stories.md)**: Execute performance tests and comparisons for models, ensuring they meet predefined criteria. -- **[US: Explanations](Explanations_stories.md)**: Generate explainability reports for machine learning models to provide insights into predictions and decisions. -- **[US: Inference](Inference_stories.md)**: Execute predictions using trained models, optimized for low latency and high throughput. +- **[US: Base](Base_stories)**: The foundational job configurations and implementations shared across all job types. +- **[US: Evaluations](Evaluations_stories)**: Execute performance tests and comparisons for models, ensuring they meet predefined criteria. +- **[US: Explanations](Explanations_stories)**: Generate explainability reports for machine learning models to provide insights into predictions and decisions. +- **[US: Inference](Inference_stories)**: Execute predictions using trained models, optimized for low latency and high throughput. - **US: KafkaInference**: Specialized inference jobs designed to integrate with Kafka for real-time data streaming applications. -- **[US: Promotion](Promotions_stories.md)**: Automate the promotion of models from development to production environments, ensuring governance and validation. -- **[US: Training](Trainning_stories.md)**: Handle the full model training process, including data preparation, model fitting, and checkpointing. -- **[US: Tuning](Tuning_stories.md)**: Optimize hyperparameters and configurations to improve model performance systematically. +- **[US: Promotion](Promotions_stories)**: Automate the promotion of models from development to production environments, ensuring governance and validation. +- **[US: Training](Trainning_stories)**: Handle the full model training process, including data preparation, model fitting, and checkpointing. +- **[US: Tuning](Tuning_stories)**: Optimize hyperparameters and configurations to improve model performance systematically. ### **FE: Utils** Auxiliary tools and configurations that enhance functionality and streamline development -- **[US: Searchers](Searchers_stories.md)**: Define functionalities for finding the best hyperparameters for a model. -- **[US: Signers](Signers_stories.md)**: Generate signatures for AI/ML models. -- **[US: Splitters](Splitters_stories.md)**: Split dataframes into subsets for model training and evaluation. +- **[US: Searchers](Searchers_stories)**: Define functionalities for finding the best hyperparameters for a model. +- **[US: Signers](Signers_stories)**: Generate signatures for AI/ML models. +- **[US: Splitters](Splitters_stories)**: Split dataframes into subsets for model training and evaluation. ### **FE: main** General execution scripts -- **[US. Scripts](Scripts_stories.md)**: Include utility scripts for automating tasks, data handling, and system management. -- **[US: Settings](Settings_stories.md)**: Centralize settings and constants used across different modules for consistency and maintainability. +- **[US. Scripts](Scripts_stories)**: Include utility scripts for automating tasks, data handling, and system management. +- **[US: Settings](Settings_stories)**: Centralize settings and constants used across different modules for consistency and maintainability. ### **FE: Tasks for CI/CD** From 4ace0fd89a6f915cef62ccdf34c84a7a169fb2c5 Mon Sep 17 00:00:00 2001 From: lgcorzo Date: Sat, 11 Apr 2026 23:35:46 +0200 Subject: [PATCH 5/5] ci: restrict production environment to main branch and add docker hub push --- .github/workflows/docs-to-wiki.yml | 2 ++ .github/workflows/publish.yml | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs-to-wiki.yml b/.github/workflows/docs-to-wiki.yml index 69353ca..33eb9b1 100644 --- a/.github/workflows/docs-to-wiki.yml +++ b/.github/workflows/docs-to-wiki.yml @@ -24,6 +24,7 @@ jobs: sync-content-to-wiki: if: always() && github.event_name != 'gollum' && (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) || github.ref == 'refs/heads/wiki') runs-on: ubuntu-latest + environment: ${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && 'production' || '' }} steps: - uses: actions/checkout@v4 - name: Sync repo wiki folder to wiki @@ -64,6 +65,7 @@ jobs: sync-wiki-to-repo: if: github.event_name == 'gollum' runs-on: ubuntu-latest + environment: production steps: - name: Checkout Repo uses: actions/checkout@v4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3ca341d..c06912f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -25,16 +25,24 @@ jobs: permissions: packages: write runs-on: ubuntu-latest + environment: production steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup - run: poetry install --with dev - run: poetry run invoke packages - - uses: docker/login-action@v3 + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Login to Docker Hub + if: github.event.release.target_commitish == 'main' || github.event_name == 'workflow_dispatch' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - uses: docker/setup-buildx-action@v3 - uses: docker/build-push-action@v6 with: @@ -45,3 +53,5 @@ jobs: tags: | ${{ env.DOCKER_IMAGE }}:latest ${{ env.DOCKER_IMAGE }}:${{ github.ref_name }} + ${{ secrets.DOCKER_HUB_USERNAME != '' && format('{0}/mlops-python-package:latest', secrets.DOCKER_HUB_USERNAME) || '' }} + ${{ secrets.DOCKER_HUB_USERNAME != '' && format('{0}/mlops-python-package:{1}', secrets.DOCKER_HUB_USERNAME, github.ref_name) || '' }}