Skip to content

Add Announcements Blog#1161

Merged
aknysh merged 3 commits intomainfrom
202501-announcements
Oct 16, 2025
Merged

Add Announcements Blog#1161
aknysh merged 3 commits intomainfrom
202501-announcements

Conversation

@osterman
Copy link
Member

@osterman osterman commented Mar 21, 2025

what

  • Provide an area for announcements

why

  • A lot is changing in atmos and following releases is difficult to get the big picture

Summary by CodeRabbit

  • New Features

    • Added a dedicated release-notes blog (Atmos Changelog) with pagination (10 posts/page), MD/MDX inclusion, and a welcome post introducing the changelog.
  • Chores

    • Added a CI workflow that validates PRs require changelog entries and posts a guidance comment when a required entry is missing.
  • Documentation

    • Added contributor guidelines describing when and how to add release-note blog posts.

@osterman osterman requested a review from a team as a code owner March 21, 2025 20:27
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 21, 2025

📝 Walkthrough

Walkthrough

Adds blog configuration and a welcome changelog post; introduces a GitHub Actions "Changelog Check" workflow enforcing blog-post changelogs for PRs labeled minor/major; documents the changelog entry requirement in CLAUDE.md.

Changes

Cohort / File(s) Change Summary
Docusaurus blog config
website/docusaurus.config.js
Added blog properties: postsPerPage: 10, blogTitle: 'Atmos Changelog', blogDescription: 'Release notes for Atmos', include: ['**/*.{md,mdx}'].
New blog post
website/blog/welcome.md
Added welcome/intro changelog post with frontmatter (slug/title/authors/tags) and body describing changelog purpose, sections, and links.
Changelog enforcement CI
.github/workflows/changelog-check.yml
New workflow "Changelog Check" on pull_request: detects if changelog required via labels, diffs for new website/blog/*.{md,mdx} posts, posts/updates a standardized PR comment when missing, and fails when required changelog is absent.
Docs: PR guidance
CLAUDE.md
Added "Add changelog entry for feature releases" guidance (filename/frontmatter, <!--truncate-->, linking guidance) and minor wording adjustments; documents CI comment behavior.

Sequence Diagram(s)

sequenceDiagram
    participant Contributor
    participant GitHubActions as GH Actions
    participant Repo
    participant PR

    Contributor->>PR: Open or update PR (may add labels)
    PR->>GitHubActions: Trigger changelog-check workflow
    GitHubActions->>Repo: Inspect PR labels -> requires_changelog?
    alt requires_changelog
        GitHubActions->>Repo: Diff origin/base_ref..HEAD for website/blog/*.{md,mdx}
        alt changelog found
            GitHubActions->>PR: Mark job success
        else missing changelog
            GitHubActions->>PR: Post/update standardized comment (changelog-check)
            GitHubActions->>PR: Fail job
        end
    else no changelog required
        GitHubActions->>PR: Mark job success
    end
Loading
sequenceDiagram
    participant Visitor
    participant DocusaurusSite
    participant Blog

    Visitor->>DocusaurusSite: Navigate to /blog
    DocusaurusSite->>Blog: Render blog list (use config)
    Blog->>Visitor: Display posts (10 per page), title "Atmos Changelog", description "Release notes for Atmos"
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • aknysh

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title “Add Announcements Blog” does not accurately or specifically reflect the main change, which is introducing an Atmos changelog blog (with configuration, documentation updates, a welcome post, and a CI check) rather than a general announcements blog, making it misleading and overly narrow. Rename the title to clearly summarize the primary change, for example “Add Atmos Changelog Blog” or “Introduce Changelog Blog with Config, Docs, and CI Check.”
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 202501-announcements

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
website/docusaurus.config.js (2)

106-109: Looks good! Blog configuration is well-structured.

The blog settings are configured properly with reasonable defaults. The title "Atmos Changelog" and description "Release notes for Atmos" clearly communicate the purpose of this section to users.

Consider adding categories or tags in the future to help organize different types of announcements (features, fixes, etc.) as the blog grows. This would help users filter content based on their interests.


164-168: Navigation addition looks good.

Adding the "Blog" navbar item provides users with direct access to the announcements section, which aligns perfectly with the PR objective of enhancing visibility of project updates.

While "Blog" is a standard term users will understand, you might consider if a more specific label like "Changelog" or "Announcements" would better communicate the section's purpose. This would maintain consistency with the blogTitle setting "Atmos Changelog" defined earlier.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 34cc497 and 06e0848.

📒 Files selected for processing (1)
  • website/docusaurus.config.js (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (5)
  • GitHub Check: Build (windows-latest, windows)
  • GitHub Check: website-deploy-preview
  • GitHub Check: Lint (golangci)
  • GitHub Check: Analyze (go)
  • GitHub Check: Summary

coderabbitai[bot]
coderabbitai bot previously approved these changes Mar 21, 2025
@codecov
Copy link

codecov bot commented Mar 21, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.92%. Comparing base (70d9d12) to head (bb20050).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1161      +/-   ##
==========================================
+ Coverage   64.90%   64.92%   +0.01%     
==========================================
  Files         337      337              
  Lines       37472    37472              
==========================================
+ Hits        24322    24329       +7     
+ Misses      11204    11196       -8     
- Partials     1946     1947       +1     
Flag Coverage Δ
unittests 64.92% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mergify
Copy link

mergify bot commented Oct 16, 2025

Important

Cloud Posse Engineering Team Review Required

This pull request modifies files that require Cloud Posse's review. Please be patient, and a core maintainer will review your changes.

To expedite this process, reach out to us on Slack in the #pr-reviews channel.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 06e0848 and e38cf0c.

📒 Files selected for processing (2)
  • .github/workflows/changelog-check.yml (1 hunks)
  • CLAUDE.md (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: Listener430
PR: cloudposse/atmos#934
File: tests/fixtures/scenarios/docs-generate/README.md.gotmpl:99-118
Timestamp: 2025-01-25T03:51:57.689Z
Learning: For the cloudposse/atmos repository, changes to template contents should be handled in dedicated PRs and are typically considered out of scope for PRs focused on other objectives.
🪛 LanguageTool
CLAUDE.md

[grammar] ~567-~567: There might be a mistake here.
Context: ... changelog entry for feature releases**: - PRs labeled minor or major MUST incl...

(QB_NEW_EN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Build (windows-latest, windows)
  • GitHub Check: Analyze (go)

@osterman osterman force-pushed the 202501-announcements branch from e38cf0c to a22bf7a Compare October 16, 2025 04:34
- Add blog configuration to docusaurus.config.js
- Create welcome post introducing the Atmos Changelog
- Add CI workflow to enforce changelog entries for minor/major releases
- Update CLAUDE.md with changelog requirements for PRs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Match the style used in mergify.yml with > [!WARNING] callout syntax
instead of markdown headings with emoji.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
.github/workflows/changelog-check.yml (1)

70-76: Update workflow to edit by comment ID.

We still grab EXISTING_COMMENT, but the update path ignores it and calls --edit-last, so another bot can be overwritten. Please use the fetched ID when editing.

-          if [ -n "$EXISTING_COMMENT" ]; then
-            echo "Updating existing comment..."
-            gh pr comment $PR_NUMBER --edit-last --body "$COMMENT_BODY"
+          if [ -n "$EXISTING_COMMENT" ]; then
+            echo "Updating existing comment..."
+            gh pr comment $PR_NUMBER --comment-id "$EXISTING_COMMENT" --body "$COMMENT_BODY"
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e38cf0c and 39fdc3c.

📒 Files selected for processing (4)
  • .github/workflows/changelog-check.yml (1 hunks)
  • CLAUDE.md (1 hunks)
  • website/blog/welcome.md (1 hunks)
  • website/docusaurus.config.js (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • website/docusaurus.config.js
🧰 Additional context used
📓 Path-based instructions (1)
website/**

📄 CodeRabbit inference engine (.cursor/rules/atmos-rules.mdc)

website/**: Update website documentation in website/ when adding features
Ensure consistency between CLI help text and website documentation
Follow the website's documentation structure and style
Keep website code in website/ and follow its architecture/style; test changes locally
Keep CLI and website documentation in sync; document new features with examples and use cases

Files:

  • website/blog/welcome.md
🪛 LanguageTool
CLAUDE.md

[grammar] ~579-~579: There might be a mistake here.
Context: ... changelog entry for feature releases**: - PRs labeled minor or major MUST incl...

(QB_NEW_EN)


[typographical] ~587-~587: Consider using a typographic opening quote here.
Context: ...nt on the PR if this is missing - **Use "no-release" label" for documentation-onl...

(EN_QUOTES)


[typographical] ~587-~587: Consider using a typographic close quote here.
Context: ...R if this is missing - **Use "no-release" label" for documentation-only changes -...

(EN_QUOTES)


[typographical] ~587-~587: Consider using a typographic close quote here.
Context: ...is is missing - **Use "no-release" label" for documentation-only changes - **Ensu...

(EN_QUOTES)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: [k3s] demo-helmfile
  • GitHub Check: Acceptance Tests (windows-latest, windows)
  • GitHub Check: Acceptance Tests (macos-latest, macos)
  • GitHub Check: [localstack] demo-localstack
  • GitHub Check: Acceptance Tests (ubuntu-latest, linux)

Normalize formatting to use backticks for label name and balance markdown
emphasis correctly.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
CLAUDE.md (1)

587-587: Resolved: normalized no-release label formatting.

The mismatched quotes are fixed; using code style is clearer.

🧹 Nitpick comments (1)
CLAUDE.md (1)

579-586: Tighten the changelog blog guidance: add example frontmatter + filename/date conventions.

Small grammar nit and clarity tweaks. Also provide a minimal frontmatter example to reduce back-and-forth.

- **Add changelog entry for feature releases**:
+ **Add a changelog entry for feature releases**:
   - PRs labeled `minor` or `major` MUST include a blog post in `website/blog/`
-  - Create a new file: `website/blog/YYYY-MM-DD-feature-name.mdx`
-  - Follow the format of existing blog posts (frontmatter with slug, title, authors, tags)
+  - Create a new file: `website/blog/YYYY-MM-DD-feature-name.mdx` (use UTC date; `feature-name` in kebab-case)
+  - Follow the format of existing blog posts (frontmatter with slug, title, authors, tags). Example:
+    ```md
+    ---
+    slug: atmos-1-2-3-new-feature
+    title: Atmos 1.2.3 – New Feature
+    authors: [cloudposse]
+    tags: [release, feature]
+    ---
+    ```
   - Include `<!--truncate-->` marker after the introduction paragraph
   - Explain what the feature does, why it's useful, and provide examples
   - Link to relevant documentation using `/cli/commands/` or `/core-concepts/` paths
   - The CI workflow will fail and comment on the PR if this is missing
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 39fdc3c and bb20050.

📒 Files selected for processing (1)
  • CLAUDE.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
CLAUDE.md

[grammar] ~579-~579: There might be a mistake here.
Context: ... changelog entry for feature releases**: - PRs labeled minor or major MUST incl...

(QB_NEW_EN)


[grammar] ~581-~581: There might be a mistake here.
Context: ... website/blog/ - Create a new file: website/blog/YYYY-MM-DD-feature-name.mdx - Follow the format of existing blog posts...

(QB_NEW_EN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: Build (windows-latest, windows)
  • GitHub Check: Build (macos-latest, macos)
  • GitHub Check: Analyze (go)
  • GitHub Check: Lint (golangci)
  • GitHub Check: website-deploy-preview

@aknysh aknysh merged commit a97a4a8 into main Oct 16, 2025
54 checks passed
@aknysh aknysh deleted the 202501-announcements branch October 16, 2025 05:17
@mergify mergify bot removed the needs-cloudposse Needs Cloud Posse assistance label Oct 16, 2025
@github-actions
Copy link

These changes were released in v1.195.0-test.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-release Do not create a new release (wait for additional code changes) size/m Medium size PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants