Commit Graph

6091 Commits

Author SHA1 Message Date
Inaki
1a092a5af2 Merge pull request #367 from nubenetes/feat/fix-stars-none-comprehensive
fix: comprehensive None-stars guard in _render_single_link and all comparisons
2026-06-19 12:45:26 +02:00
Nubenetes Bot
f4208bca4d fix: comprehensive None-stars guard across all v2_optimizer comparisons
_render_single_link (line 872) crashed with TypeError: '>=' not supported
between NoneType and int. Replaced ALL remaining .get('stars', 0) patterns
with .get('stars') or 0 throughout v2_optimizer.py to prevent further
crashes from null stars values in inventory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:45:20 +02:00
Nubenetes Bot
90d04e6d6a merge: back-merge v2.8.3 into develop 2026-06-19 12:14:57 +02:00
Nubenetes Bot
7d845fab3e release: v2.8.3 — cache news_digest.json to skip Gemini on same-day re-runs v2.8.3 2026-06-19 12:14:53 +02:00
Inaki
fbfa85c2d3 Merge pull request #366 from nubenetes/feat/digest-cache
feat: cache news_digest.json by date, skip Gemini on same-day re-runs
2026-06-19 12:14:41 +02:00
Nubenetes Bot
dc4591fb3e feat: cache news_digest.json by date to avoid re-calling Gemini on re-runs
Publisher and weekly digest workflows now restore news_digest.json from
GitHub Actions cache using key news-digest-YYYY-MM-DD. If cache hits
(same-day re-run after publisher failure), the Gemini digest step is
skipped entirely — saving ~20min and Gemini API credits.

Cache is saved immediately after successful generation and expires
automatically after 7 days (GitHub Actions cache policy).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:14:34 +02:00
Nubenetes Bot
96706aff90 docs: automated README metric synchronization [skip ci] 2026-06-19 10:13:08 +00:00
Nubenetes Bot
f3cb3a1ff3 merge: back-merge v2.8.2 into develop 2026-06-19 12:13:04 +02:00
Nubenetes Bot
cc6633dcdd release: v2.8.2 — fix all None-stars sort crashes in v2_optimizer v2.8.2 2026-06-19 12:12:58 +02:00
Inaki
759c10ad2c Merge pull request #365 from nubenetes/feat/fix-stars-none-sort
fix: all negated .get(stars) sort keys crash on null values
2026-06-19 12:12:46 +02:00
Nubenetes Bot
58601de338 fix: guard all negated .get('stars') sort keys against None values
Three sites in v2_optimizer where `-x.get("stars", default)` crashes
with TypeError when stars field is present but null in inventory.
Fixed with `-(x.get("stars") or default)` pattern consistently.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 12:12:39 +02:00
Nubenetes Bot
11ebda6187 docs: automated README metric synchronization [skip ci] 2026-06-19 09:43:30 +00:00
Nubenetes Bot
227dc23933 merge: back-merge v2.8.1 into develop 2026-06-19 11:43:22 +02:00
Nubenetes Bot
56db4d5e53 release: v2.8.1 — fix None resource_type crash in v2_optimizer v2.8.1 2026-06-19 11:43:18 +02:00
Inaki
e332af2ea8 Merge pull request #364 from nubenetes/feat/fix-resource-type-none
fix: None resource_type crash in _calculate_tags
2026-06-19 11:43:05 +02:00
Nubenetes Bot
9d3321d0f0 fix: guard against None resource_type in _calculate_tags
item.get("resource_type", "Reference") returns None when the field
exists with a null value in the inventory. Use `or "Reference"` instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:42:58 +02:00
Nubenetes Bot
9ed1318a9c merge: back-merge v2.8.0 into develop 2026-06-19 11:12:21 +02:00
Nubenetes Bot
91da9c8495 release: v2.8.0 — geo inference, last-updated badge, search boost, RSS feed, weekly cron v2.8.0 2026-06-19 11:12:16 +02:00
Nubenetes Bot
c9a7b2a8cb docs: automated README metric synchronization [skip ci] 2026-06-19 09:11:47 +00:00
Inaki
ad59cb75f0 Merge pull request #363 from nubenetes/feat/five-improvements
feat: geo inference, last-updated badge, search boost, RSS feed, weekly cron
2026-06-19 11:11:32 +02:00
Nubenetes Bot
88f891fd4e feat: 5 improvements — geo inference, last-updated badge, search boost, RSS feed, weekly cron
1. geo_region inference: _infer_geo_from_url() infers Americas/Europe/España/Asia-Pacific
   from URL TLD (.es .de .fr .uk .jp .cn etc.) as fallback when geo_region field is empty.
   Industry digest now shows real content instead of empty categories.

2. Last-updated badge: trending section header now shows "Updated Jun 19, 2026" pill
   derived from news_digest.json mtime — gives readers confidence in freshness.

3. Search boost: tech-digest and industry-digest pages now have search.boost: 2
   frontmatter so they rank higher in MkDocs Material site search.

4. RSS feed (src/rss_generator.py): generates v2-docs/feed.xml with top-20 curated
   picks from 3-month digest. Runs after news_digest in publisher. Autodiscovery
   <link rel="alternate"> added to v2-mkdocs.yml extra_head.

5. Weekly cron (09.weekly_digest.yml): runs every Monday 06:00 UTC, generates digest
   with Gemini, renders digest pages, commits, then triggers publisher.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:11:02 +02:00
Nubenetes Bot
61733937be merge: back-merge v2.7.1 into develop 2026-06-19 11:06:42 +02:00
Nubenetes Bot
10c70025a2 release: v2.7.1 — remove redundant digest-preview list from index v2.7.1 2026-06-19 11:06:38 +02:00
Inaki
cff4903166 Merge pull request #362 from nubenetes/feat/remove-digest-preview-from-index
refactor: remove digest-preview list from index
2026-06-19 11:05:54 +02:00
Nubenetes Bot
16ad26f427 refactor: remove digest-preview list from index, keep trending cards only
The 5-item link list was redundant with the 6 trending cards block
that the publisher generates. Cleaner UX: hero card (amber) → trending
cards → /tech-digest/ for full 22-category view.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 11:05:41 +02:00
Nubenetes Bot
3f3a86b62c merge: back-merge master v2.7.0 into develop 2026-06-19 10:59:38 +02:00
Nubenetes Bot
239dd05e6f release: v2.7.0 — Intelligence Digest card and mini-preview on index v2.7.0 2026-06-19 10:59:31 +02:00
Inaki
932770b89b Merge pull request #361 from nubenetes/feat/digest-card-index
feat: Intelligence Digest hero card and mini-preview on index
2026-06-19 10:59:15 +02:00
Nubenetes Bot
c8ca878f66 feat: add Intelligence Digest card to index hero and mini-preview block
- New hero card (amber color) between AI & MCP Agents and Agentic Video
  Hub, linking to /tech-digest/ with emoji icon and subtitle
- Dynamic digest-preview block above Agentic Pulse: shows top 1 link
  from 5 priority categories (Kubernetes, AI, Security, IaC, Observability)
  pulled from data/news_digest.json on each optimizer run
- New CSS: hero-badge-card--amber, hero-badge-icon, digest-preview
  component with category chips and hover states
- v2_optimizer now generates both the card and preview automatically

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:58:52 +02:00
Nubenetes Bot
64c6e9ea18 Merge branch 'develop' of github.com:nubenetes/awesome-kubernetes into develop 2026-06-19 10:44:46 +02:00
Nubenetes Bot
53b19f1b09 merge: back-merge master v2.6.9 into develop 2026-06-19 10:44:36 +02:00
Nubenetes Bot
f6e60a6487 docs: automated README metric synchronization [skip ci] 2026-06-19 08:44:35 +00:00
Nubenetes Bot
5bfcaf1b03 release: v2.6.9 — Fix NoneType crashes in v2_optimizer, dedup, and news_digest v2.6.9 2026-06-19 10:44:32 +02:00
Inaki
b8144d9253 Merge pull request #360 from nubenetes/feat/fix-nonetype-comparisons
fix: NoneType crashes in v2_optimizer, dedup, and news_digest
2026-06-19 10:44:13 +02:00
Nubenetes Bot
b321169459 fix: NoneType comparison crashes in v2_optimizer, dedup, and news_digest
Inventory entries can have stars=null or discovered_at=null. Replace
.get("stars", 0) with .get("stars") or 0 in all three modules so that
None values are safely coerced to 0/"" before numeric/string comparison.

Fixes TypeError crashes in:
- v2_optimizer.py:632 _calculate_tags
- dedup.py:74,108 title dedup and entry scoring
- news_digest.py:322 category pool sorting

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:44:00 +02:00
Nubenetes Bot
34610f4671 merge: back-merge master v2.6.8 into develop 2026-06-19 10:37:06 +02:00
Nubenetes Bot
f50fdffd64 release: v2.6.8 — Fix unbounded license check causing CI timeout v2.6.8 2026-06-19 10:37:01 +02:00
Inaki
f5fae99a38 Merge pull request #359 from nubenetes/feat/fix-license-check-limit
fix: cap license check at 200 repos — was unbounded causing CI timeout
2026-06-19 10:36:46 +02:00
Nubenetes Bot
ebae3c6e27 fix: cap license change detection at MAX_REPOS_DEFAULT (200) — was unbounded
detect_license_changes() iterated all repos with gh_license set, causing
hundreds/thousands of GitHub API calls. Apply the same 200-repo cap as
the activity enrichment module to keep total enrichment under ~3 min.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:36:33 +02:00
Nubenetes Bot
a8941afd24 merge: back-merge master v2.6.7 into develop 2026-06-19 10:28:44 +02:00
Nubenetes Bot
f4fb5fe19b release: v2.6.7 — Reduce enrichment CI time from 12min to ~2min v2.6.7 2026-06-19 10:28:39 +02:00
Inaki
f46886abf3 Merge pull request #358 from nubenetes/feat/fix-enrichment-speed
perf: reduce enrichment from 12min to ~2min
2026-06-19 10:28:22 +02:00
Nubenetes Bot
6ccda021e2 perf: reduce enrichment from 12min to ~2min (1 API call/repo, 200 limit)
- Consolidate 2 GitHub API calls per repo into 1: open_issues_count
  already includes PRs on GitHub, second /pulls call was redundant
- Reduce MAX_REPOS_DEFAULT 500→200: sufficient for meaningful enrichment,
  200 × 0.5s = ~100s vs 500 × 1.5s = ~12.5min in CI
- Reduce GITHUB_RATE_DELAY 0.75s→0.5s: still safely under 5000 req/hr
- Add 429 rate-limit backoff (5s sleep instead of crashing)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:28:07 +02:00
Nubenetes Bot
3f44948119 merge: back-merge master v2.6.6 into develop 2026-06-19 10:16:41 +02:00
Nubenetes Bot
fe024b4fd7 release: v2.6.6 — Fix CNCF landscape API (SPA→GitHub topic search) v2.6.6 2026-06-19 10:16:37 +02:00
Inaki
bdcedd6950 Merge pull request #357 from nubenetes/feat/fix-cncf-api
fix: CNCF landscape API now SPA — use GitHub topic search instead
2026-06-19 10:16:20 +02:00
Nubenetes Bot
6769fff528 fix: replace CNCF landscape SPA endpoint with GitHub topic search
The legacy landscape.cncf.io/api/items endpoint now returns HTML (SPA)
instead of JSON. Switch to GitHub Search API querying cncf-graduated,
cncf-incubating, and cncf-sandbox topics — reliable and uses existing
GH_TOKEN auth.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 10:16:07 +02:00
Nubenetes Bot
5b00ed4824 merge: back-merge master v2.6.5 into develop 2026-06-19 09:51:32 +02:00
Nubenetes Bot
7e85ec6bdd release: v2.6.5 — Fix MD023 linter errors in digest pages v2.6.5 2026-06-19 09:51:27 +02:00
Inaki
dc0e090318 Merge pull request #356 from nubenetes/feat/fix-digest-linter
fix: MD023 lint — replace indented headings with bold in digest tabs
2026-06-19 09:51:08 +02:00