diff --git a/.github/workflows/05.1.readme_sync.yml b/.github/workflows/05.1.readme_sync.yml index 11cc9ac4..a648888f 100644 --- a/.github/workflows/05.1.readme_sync.yml +++ b/.github/workflows/05.1.readme_sync.yml @@ -58,31 +58,39 @@ jobs: run: | git config --global user.name "Nubenetes Bot" git config --global user.email "bot@nubenetes.com" + export PYTHONPATH=$PYTHONPATH:. + # Pull latest before committing to shrink the conflict window + git pull --no-rebase origin develop + # Re-run updater so metrics reflect the latest remote state + python src/readme_updater.py + python src/safety_readme.py git add README.md if git diff --staged --quiet; then echo "No changes in README.md to commit." - else - git commit -m "docs: automated README metric synchronization [skip ci]" - # Pull, rebase, and push with automatic resolution of README.md conflicts - for i in {1..5}; do - if git pull origin develop --rebase; then - if git push origin develop; then - exit 0 - fi - else - echo "Rebase conflict detected, attempting self-healing..." - # Discard local conflicting changes to README.md and accept remote - git checkout --ours README.md || git checkout --theirs README.md - git add README.md - # Continue rebase - GIT_EDITOR=true git rebase --continue || { git rebase --abort; git pull origin develop; } - # Re-run README sync to update metrics with remote state incorporated - python -m src.readme_updater - python -m src.safety_readme - git add README.md - git commit --amend --no-edit - fi - sleep 5 - done - git push origin develop + exit 0 fi + git commit -m "docs: automated README metric synchronization [skip ci]" + # Push-first loop: try push, then merge-pull on rejection (not rebase) + # Using merge avoids --ours/--theirs confusion that plagued the rebase approach + for i in {1..5}; do + echo "Push attempt $i/5..." + if git push origin develop; then + echo "Push succeeded on attempt $i." + exit 0 + fi + echo "Attempt $i rejected — integrating remote changes via merge..." + git fetch origin develop + if ! git merge --no-edit -X ours origin/develop; then + # Merge could not auto-resolve; keep bot's README and continue + git checkout --ours README.md + git add README.md + GIT_EDITOR=true git merge --continue + fi + # Re-compute metrics on the merged state (idempotent) + python src/readme_updater.py + python src/safety_readme.py + git add README.md + git diff --staged --quiet || git commit --amend --no-edit + sleep $((i * 3)) + done + git push origin develop diff --git a/CHANGELOG.md b/CHANGELOG.md index 14008057..43e2d38d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [[2.9.10]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.10) - 2026-06-19 + +### Fixed +- **README Sync Push Loop**: Rewrote the `05.1.readme_sync.yml` retry logic to use a push-first / merge-on-rejection loop instead of a pull-first / rebase loop. The old rebase loop never attempted a push after self-healing — it cycled back to `git pull --rebase`, hitting a fresh conflict on every iteration (×5) because a concurrent V2 sync workflow kept advancing `develop`. Additionally, `--ours` during a rebase refers to the *upstream* side, so the bot's README metrics were silently discarded each round. The fix: pull latest before committing (shrinks conflict window), then retry with `git merge -X ours` (correct semantics) after each rejected push. +- **Digest Table Broken by Pipe in Title**: Titles containing ` | ` (e.g. "Neo, Now in the Terminal | Pulumi Blog") broke the Markdown table in `tech-digest.md` because the unescaped pipe was parsed as a column separator. Root cause in `v2_optimizer.py`: the `why` column escaped pipes (`.replace("|", "-")`) but the link title `t` did not. Fixed with `.replace("|", r"\|")` on the title. The 4 already-rendered broken entries in `tech-digest.md` are corrected directly. + ## [[2.9.9]](https://github.com/nubenetes/awesome-kubernetes/releases/tag/v2.9.9) - 2026-06-19 ### Changed diff --git a/README.md b/README.md index 8141c806..5e02741e 100644 --- a/README.md +++ b/README.md @@ -142,7 +142,7 @@ Additionally, as of May 2026, Nubenetes has reached the **Platinum Operational T | :--- | :--- | | **Total Technical Resources (Links)** | **18647+** | | **Specialized MD Pages** | **162** | -| **Total Commits** | **6162+** | +| **Total Commits** | **6175+** | | **Primary AI Engine** | **Google Gemini (Agentic)** | @@ -180,7 +180,7 @@ The growth of Nubenetes reflects the acceleration of the Cloud Native ecosystem. | 6 | 2023 | 30 | 123 | Maintenance & Refinement | | 7 | 2024 | 53 | 218 | Curation Strategy Pivot | | 8 | 2025 | 5 | 20 | Stability & Research Phase | -| 9 | 2026 | 2603 | 10,750 | **Agentic AI Surge** (May 2026 Inception) | +| 9 | 2026 | 2616 | 10,804 | **Agentic AI Surge** (May 2026 Inception) | @@ -196,8 +196,8 @@ xychart-beta title "Nubenetes Annual Growth Metrics (2018–2026)" x-axis ["2018", "2019", "2020", "2021", "2022", "2023", "2024", "2025", "2026"] y-axis "Volume (Commits / Estimated New Refs)" 0 --> 11000 - bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 10750] - bar [350, 142, 2046, 531, 402, 30, 53, 5, 2603] + bar [1445, 586, 8449, 2193, 1660, 123, 218, 20, 10804] + bar [350, 142, 2046, 531, 402, 30, 53, 5, 2616] ``` @@ -207,7 +207,7 @@ xychart-beta | :--- | :---: | :---: | :--- | | 2026-04 | 25 | 103 | Active Curation | | 2026-05 | 2101 | 8,677 | **Agentic Inception (Gemini Era)** | -| 2026-06 | 477 | 1,970 | Active Curation | +| 2026-06 | 490 | 2,023 | Active Curation | ### 2.4. Content Distribution and Semantic Clustering diff --git a/src/v2_optimizer.py b/src/v2_optimizer.py index a34ee9c6..0385ab13 100644 --- a/src/v2_optimizer.py +++ b/src/v2_optimizer.py @@ -983,7 +983,7 @@ class V2VisionEngine: md += " | :--- | :--- | :---: | :--- |\n" for item in items: impact_badge = {"critical": "🔴", "high": "🟡", "medium": "🔵"}.get(item.get("impact", "medium"), "🔵") - t = nuclear_strip(item.get("title", "Unknown")) + t = nuclear_strip(item.get("title", "Unknown")).replace("|", r"\|") why = (item.get("why", "") or "").replace("|", "-").replace("\n", " ") md += f' | {item.get("date", "")} | [{t}]({item.get("url", "#")}) | {impact_badge} {item.get("impact", "medium")} | {why} |\n' md += "\n" diff --git a/v2-docs/tech-digest.md b/v2-docs/tech-digest.md index 9caa292e..8e59494a 100644 --- a/v2-docs/tech-digest.md +++ b/v2-docs/tech-digest.md @@ -3,7 +3,7 @@ search: boost: 2 --- -# 📊 Nubenetes Tech & Cloud Intelligence Digest +# Nubenetes Tech and Cloud Intelligence Digest !!! tip "Nubenetes Intelligence Digest" AI-curated ranking of the most impactful resources, updated monthly. @@ -165,10 +165,10 @@ search: | Date | Resource | Impact | Why It Matters | | :--- | :--- | :---: | :--- | | 2026-06-02 | [OpenTofu 1.12: the Feature Terraform Never Shipped](https://www.infoq.com/news/2026/05/opentofu-release-terraform) | 🔴 critical | OpenTofu 1.12 solves a major historical limitation of upstream Terraform by introducing dynamic, modular configurations, representing a significant milestone for the open-source fork. | - | 2026-06-02 | [The Agentic Infrastructure Era | Pulumi Releases](https://www.pulumi.com/releases/agentic-infrastructure-era) | 🔴 critical | This release marks a fundamental paradigm shift in cloud engineering toward autonomous, agent-driven infrastructure provisioning and self-healing environments. | + | 2026-06-02 | [The Agentic Infrastructure Era \| Pulumi Releases](https://www.pulumi.com/releases/agentic-infrastructure-era) | 🔴 critical | This release marks a fundamental paradigm shift in cloud engineering toward autonomous, agent-driven infrastructure provisioning and self-healing environments. | | 2026-06-02 | [New in Terraform 1.15: Dynamic sources, variable deprecation, and more](https://www.hashicorp.com/en/blog/new-in-terraform-115-dynamic-sources-variable-deprecation-and-more) | 🟡 high | The introduction of native dynamic module sources and version parsing in Terraform 1.15 directly improves how enterprises manage and inject variable configurations into upstream dependencies. | | 2026-05-29 | [github.com/terraform-aws-modules/terraform-aws-eks: AWS EKS Terraform module](https://github.com/terraform-aws-modules/terraform-aws-eks) | 🟡 high | As the industry-standard module for deploying AWS EKS, this resource remains a critical foundational component for cloud-native Kubernetes infrastructure. | - | 2026-06-02 | [Neo, Now in the Terminal | Pulumi Blog](https://www.pulumi.com/blog/pulumi-neo-cli) | 🟡 high | Bringing the Neo AI assistant directly into the terminal interface introduces a highly novel, agentic UX for local infrastructure generation and debugging. | + | 2026-06-02 | [Neo, Now in the Terminal \| Pulumi Blog](https://www.pulumi.com/blog/pulumi-neo-cli) | 🟡 high | Bringing the Neo AI assistant directly into the terminal interface introduces a highly novel, agentic UX for local infrastructure generation and debugging. | | 2026-06-09 | [github.com/microsoft/terraform-provider-azuredevops/releases/tag/v1.0.0](https://github.com/microsoft/terraform-provider-azuredevops/releases/tag/v1.0.0) | 🟡 high | Reaching GA v1.0.0 establishes critical production-readiness for enterprises looking to fully govern their Azure DevOps platforms through declarative IaC. | | 2026-06-03 | [Infracost 🌟](https://github.com/infracost/infracost) | 🟡 high | This tool enables proactive FinOps governance by parsing HCL files to output precise cloud cost projections before infrastructure changes are applied. | | 2026-03-05 | [Kubestack Gitops Framework](https://github.com/kbst/terraform-kubestack) | 🟡 high | A specialized GitOps framework that natively leverages Terraform's configuration inheritance to streamline multi-cluster Kubernetes platform deployments. | @@ -498,7 +498,7 @@ search: | Date | Resource | Impact | Why It Matters | | :--- | :--- | :---: | :--- | | 2026-06-02 | [OpenTofu 1.12: the Feature Terraform Never Shipped](https://www.infoq.com/news/2026/05/opentofu-release-terraform) | 🔴 critical | Successfully solves a long-standing limitation in modular configuration, marking a significant milestone for the OpenTofu open-source fork. | - | 2026-06-02 | [The Agentic Infrastructure Era | Pulumi Releases](https://www.pulumi.com/releases/agentic-infrastructure-era) | 🔴 critical | Introduces a major paradigm shift toward autonomous, agent-driven cloud provisioning and self-healing infrastructure systems. | + | 2026-06-02 | [The Agentic Infrastructure Era \| Pulumi Releases](https://www.pulumi.com/releases/agentic-infrastructure-era) | 🔴 critical | Introduces a major paradigm shift toward autonomous, agent-driven cloud provisioning and self-healing infrastructure systems. | | 2026-06-02 | [New in Terraform 1.15: Dynamic sources, variable deprecation, and more](https://www.hashicorp.com/en/blog/new-in-terraform-115-dynamic-sources-variable-deprecation-and-more) | 🔴 critical | Introduces native dynamic module sources and versioning, fundamentally changing how practitioners configure upstream dependencies at initialization. | | 2026-05-29 | [github.com/terraform-aws-modules/terraform-aws-eks: AWS EKS Terraform module](https://github.com/terraform-aws-modules/terraform-aws-eks) | 🟡 high | Serves as the battle-tested, community-standard blueprint for orchestrating complex enterprise Amazon EKS cluster deployments. | | 2025-12-10 | [terraform-cdk 🌟](https://github.com/hashicorp/terraform-cdk) | 🟡 high | Allows software engineering teams to use imperative languages like TypeScript and Python to build declarative cloud native infrastructure. | @@ -831,7 +831,7 @@ search: | Date | Resource | Impact | Why It Matters | | :--- | :--- | :---: | :--- | | 2026-06-02 | [OpenTofu 1.12: the Feature Terraform Never Shipped](https://www.infoq.com/news/2026/05/opentofu-release-terraform) | 🔴 critical | Solves a decade-old modular limitation of Terraform, solidifying OpenTofu as a highly capable, community-driven open alternative. | - | 2026-06-02 | [The Agentic Infrastructure Era | Pulumi Releases](https://www.pulumi.com/releases/agentic-infrastructure-era) | 🔴 critical | Introduces a major paradigm shift toward autonomous, agent-driven cloud provisioning using AI integrations. | + | 2026-06-02 | [The Agentic Infrastructure Era \| Pulumi Releases](https://www.pulumi.com/releases/agentic-infrastructure-era) | 🔴 critical | Introduces a major paradigm shift toward autonomous, agent-driven cloud provisioning using AI integrations. | | 2026-06-02 | [New in Terraform 1.15: Dynamic sources, variable deprecation, and more](https://www.hashicorp.com/en/blog/new-in-terraform-115-dynamic-sources-variable-deprecation-and-more) | 🟡 high | Brings crucial native dynamic module sources and configurations to the industry's most widely adopted IaC tool. | | 2026-05-29 | [github.com/terraform-aws-modules/terraform-aws-eks: AWS EKS Terraform module](https://github.com/terraform-aws-modules/terraform-aws-eks) | 🟡 high | Serves as the foundational, community-standard module for orchestrating secure and scalable AWS EKS clusters. | | 2025-11-27 | [github.com/Azure-Samples/aks-platform-engineering Building a Platform Engineering Environment on Azure Kubernetes Service (AKS) 🌟](https://github.com/Azure-Samples/aks-platform-engineering) | 🟡 high | Provides an official, enterprise-grade reference architecture for building platform engineering environments on AKS. |