Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix trigger eternal executions #2695

Merged
merged 4 commits into from
Nov 29, 2024

Conversation

p6l-richard
Copy link
Contributor

@p6l-richard p6l-richard commented Nov 29, 2024

What does this PR do?

  • sequentializes the trigger sub-task for the glossary generation

Fixes # (issue)

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • Chore (refactoring code, technical debt, workflow improvements)
  • Enhancement (small improvements)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How should this be tested?

This run has been tested already in Triggers production:

Checklist

Required

  • Filled out the "How to test" section in this PR
  • Read Contributing Guide
  • Self-reviewed my own code
  • Commented on my code in hard-to-understand areas
  • Ran pnpm build
  • Ran pnpm fmt
  • Checked for warnings, there are none
  • Removed all console.logs
  • Merged the latest changes from main onto my branch with git pull origin main
  • My changes don't cause any responsiveness issues

Appreciated

  • If a UI change was made: Added a screen recording or screenshots to this PR
  • Updated the Unkey Docs if changes were necessary

Summary by CodeRabbit

  • New Features

    • Introduced a new deployment script for the billing application.
  • Improvements

    • Enhanced clarity and consistency of console log messages in the glossary entry generation process.
    • Updated workflow to execute tasks sequentially, improving readability of task completion.
  • Dependency Updates

    • Updated versions of key dependencies related to @trigger.dev for improved functionality and performance.

Copy link

changeset-bot bot commented Nov 29, 2024

⚠️ No Changeset found

Latest commit: 98b3254

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

coderabbitai bot commented Nov 29, 2024

📝 Walkthrough

Walkthrough

The pull request introduces updates to the package.json file in the billing application by adding a new deployment script and incrementing the versions of three @trigger.dev dependencies. Additionally, changes are made to the generateGlossaryEntryTask function in _generate-glossary-entry.ts, which includes restructuring console log messages for clarity and modifying the execution order of tasks from parallel to sequential.

Changes

File Change Summary
apps/billing/package.json - Added script: "trigger:deploy": "pnpm dlx trigger.dev@latest deploy"
- Updated dependency versions: @trigger.dev/nextjs, @trigger.dev/sdk, @trigger.dev/slack from 3.2.1 to 3.3.1
apps/billing/src/trigger/glossary/_generate-glossary-entry.ts - Updated console log messages for clarity and removed step numbering.
- Changed execution of tasks from parallel (Promise.all) to sequential.
- Error handling remains consistent with AbortTaskRunError.

Possibly related PRs

Suggested reviewers

  • mcstepp
  • perkinsjr
  • MichaelUnkey
  • chronark

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

vercel bot commented Nov 29, 2024

@p6l-richard is attempting to deploy a commit to the Unkey Team on Vercel.

A member of the Team first needs to authorize it.

Copy link

vercel bot commented Nov 29, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
engineering ✅ Ready (Inspect) Visit Preview 💬 Add feedback Nov 29, 2024 3:36pm

Copy link
Contributor

github-actions bot commented Nov 29, 2024

Hey there and thank you for opening this pull request! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.
Here is an example:

<type>[optional scope]: <description>
fix: I fixed something for Unkey

Details:

No release type found in pull request title "fix trigger eternal executions". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

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

🧹 Outside diff range and nitpick comments (1)
apps/billing/src/trigger/glossary/_generate-glossary-entry.ts (1)

Line range hint 8-21: Update file documentation to match implementation steps

The file documentation lists 6 steps, but the implementation contains 7 steps. Please update the documentation to accurately reflect the current implementation:

 * This workflow runs multiple steps sequentially:
 * 1. Keyword Research
 * 2. Generate Outline
-* 3. Draft Sections & Content Takeaways (in parallel)
+* 3. Draft Sections
+* 4. Content Takeaways
-* 4. Generate SEO Meta Tags
-* 5. Generate FAQs
-* 6. Create PR
+* 5. Generate SEO Meta Tags
+* 6. Generate FAQs
+* 7. Create PR
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 90f203e and 98b3254.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (2)
  • apps/billing/package.json (2 hunks)
  • apps/billing/src/trigger/glossary/_generate-glossary-entry.ts (2 hunks)
🔇 Additional comments (3)
apps/billing/package.json (1)

26-28: Verify @trigger.dev version updates for breaking changes.

The update from 3.2.1 to 3.3.1 for all @trigger.dev packages appears to be related to fixing the eternal executions issue. However, let's verify the changelog for any breaking changes or migration steps.

✅ Verification successful

Since the GitHub API command didn't work (likely due to sandbox limitations), let's try to verify this by checking the codebase for any migration guides or breaking changes documentation.


Let's check the repository for any changelog or breaking changes documentation related to @trigger.dev packages.


Since we can't find any breaking changes documentation in the repository and the update is a minor version bump (3.2.1 to 3.3.1), which typically indicates backward-compatible changes, I can generate the final response.

@trigger.dev version update appears safe to proceed

The update from 3.2.1 to 3.3.1 is a minor version bump, which by semantic versioning conventions should be backward compatible. The codebase shows consistent usage of @trigger.dev v3 SDK imports and no migration scripts, suggesting this update is safe.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Fetch release notes for version range
gh api repos/triggerdotdev/trigger.dev/releases --jq '.[] | select(.tag_name | startswith("v3.3.")) | {version: .tag_name, body: .body}'

Length of output: 138


Script:

#!/bin/bash
# Look for migration guides or breaking changes documentation
fd -e md -e mdx | xargs rg -i "migration|breaking.?changes|upgrade.?guide" -A 5 -B 5

# Also check package.json files for any peer dependencies that might indicate compatibility
fd package.json | xargs cat

Length of output: 51014


Script:

#!/bin/bash
# Look for trigger.dev changelog or breaking changes documentation
fd -e md -e mdx | xargs rg -i "trigger.?dev.*3\.3\.1|trigger.?dev.*changelog|trigger.?dev.*breaking.?changes" -A 5 -B 5

# Also check for any migration scripts or config changes related to trigger.dev
rg -i "trigger.?dev" -g "!package*.json" -g "!*.lock"

Length of output: 3612

apps/billing/src/trigger/glossary/_generate-glossary-entry.ts (2)

Line range hint 80-129: Overall implementation is solid

The changes effectively address the trigger eternal executions issue while maintaining robust error handling and improving observability through better logging. The sequential execution pattern is consistent throughout the implementation, and type safety is preserved.


98-110: Sequential execution change looks good

The change from parallel to sequential execution of draftSections and contentTakeaways tasks aligns with the PR objective to fix trigger eternal executions. This makes the execution flow more predictable and improves error handling.

However, this change may increase the total execution time. Consider monitoring the performance impact in production.

Let's verify the execution time impact:

@@ -6,6 +6,7 @@
"main": "index.js",
"scripts": {
"dev": "pnpm dlx trigger.dev@latest dev",
"trigger:deploy": "pnpm dlx trigger.dev@latest deploy",
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Codebase verification

Documentation needed for trigger.dev deployment workflow

The new trigger:deploy script is currently undocumented. While the repository contains a trigger.config.ts file and deployment documentation for Next.js apps, there's no specific documentation for the trigger.dev deployment process in the billing app.

  • Consider adding deployment instructions in apps/billing/README.md
  • Document the purpose and usage of the trigger:deploy script
  • Include any prerequisites or environment setup required for trigger.dev deployments
🔗 Analysis chain

LGTM! Consider documenting deployment workflow.

The new deployment script aligns with the PR objective and follows the project's package manager conventions.

Let's check if deployment workflow is documented:


Let me check if there's any documentation in other common locations or related files.


Let me check the trigger.config.ts file to see if it contains any deployment-related documentation or comments.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for deployment documentation in common locations
rg -i "trigger.*deploy" README.md docs/ || echo "No deployment documentation found"

Length of output: 164


Script:

#!/bin/bash
# Check for any trigger.dev related documentation or configuration
fd -t f -e md . | xargs rg -i "trigger\.dev|deployment" || echo "No related documentation found"

# Check if there are any trigger.dev config files
fd -t f "trigger\.config\." || echo "No trigger.dev config files found"

# Check package.json files for similar scripts in other apps
fd package.json -t f | xargs rg "trigger:deploy" || echo "No similar scripts found"

Length of output: 732


Script:

#!/bin/bash
# Check trigger.config.ts content
cat apps/billing/trigger.config.ts

Length of output: 411

@chronark chronark merged commit 1d35097 into unkeyed:main Nov 29, 2024
4 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants