Skip to content

v2.2.0#46

Merged
algotyrnt merged 31 commits intomainfrom
dev
Mar 27, 2026
Merged

v2.2.0#46
algotyrnt merged 31 commits intomainfrom
dev

Conversation

@algotyrnt
Copy link
Copy Markdown
Owner

@algotyrnt algotyrnt commented Mar 26, 2026

This pull request introduces several improvements and refinements across the codebase, focusing on developer experience, maintainability, and modernization. Key updates include enhanced documentation, workflow improvements, dependency upgrades, and environment variable handling.

Documentation and Developer Experience

  • Added a comprehensive CONTRIBUTING.md guide to clarify setup, contribution workflow, and commit standards.
  • Improved and condensed the README.md with clearer stack, environment variable explanations, and contribution instructions. [1] [2]

Environment and Configuration

  • Added new environment variables (AUTHOR_NAME, TWITTER_HANDLE) to .env.example for improved site metadata and SEO.
  • Updated site metadata in src/app/layout.tsx to use the new environment variables for authorship and Open Graph fields. [1] [2] [3]

CI/CD and Automation

  • Refined the CI pipeline: unified lint, type check, and build steps in check.yml, and renamed the workflow for clarity. [1] [2] [3]
  • Added a script (decide-release-version.sh) and improved logic in release.yml to automate and validate semantic versioning for releases. [1] [2]
  • Enabled Dependabot updates for GitHub Actions in addition to npm dependencies.
  • Removed the unused OSV-Scanner workflow, streamlining security checks.

Dependencies and Tooling

  • Upgraded major dependencies (Next.js, React, MUI, Framer Motion, Vercel tools) and added engines/type fields in package.json for Node 20+ and ESM support. [1] [2]
  • Migrated and simplified ESLint config to JavaScript, and improved ignore patterns.

Styling and Code Quality

  • Enhanced global CSS for better font rendering and introduced .site-shell layout classes. [1] [2]
  • Minor code cleanup in src/app/error.tsx (removed unused imports/effect).

These changes collectively modernize the project, improve developer onboarding, and ensure smoother CI/CD operations.

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
personal-site Ready Ready Preview, Comment Mar 27, 2026 2:37am

@algotyrnt algotyrnt requested a review from Copilot March 26, 2026 09:26
@algotyrnt algotyrnt self-assigned this Mar 26, 2026
@algotyrnt algotyrnt added the enhancement New feature or request label Mar 26, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the portfolio’s configurability and automation by adding author/Twitter env-driven metadata, improving CI and release workflows, and adding contributor/security documentation.

Changes:

  • Add AUTHOR_NAME and TWITTER_HANDLE configuration and use them in Next.js metadata/SEO.
  • Improve GitHub Actions: add build to CI checks, add Dependabot for Actions, and revamp release version decisioning via a script.
  • Add CONTRIBUTING.md and SECURITY.md, plus README updates.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/lib/config.ts Exports new env-driven identity fields (AUTHOR_NAME, TWITTER_HANDLE).
src/app/layout.tsx Uses new config values in Next.js metadata author and Twitter fields.
package.json Bumps package version to 2.2.0.
package-lock.json Aligns lockfile version metadata with 2.2.0.
README.md Updates workflow badge labeling and documents new env vars / contributing link.
.env.example Adds example values for AUTHOR_NAME and TWITTER_HANDLE.
.github/workflows/check.yml Renames workflow and adds a build step to CI.
.github/workflows/release.yml Uses new release-decision script and updated conditions/outputs.
.github/scripts/decide-release-version.sh New script to decide whether to bump and what version to release.
.github/dependabot.yml Adds monthly Dependabot updates for GitHub Actions.
.github/workflows/osv-scanner.yml Removes the OSV-Scanner workflow.
CONTRIBUTING.md Adds contributor setup and PR guidelines.
SECURITY.md Adds security reporting/disclosure guidance.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

run: |
npm version patch -m "Bump version to %s [skip ci]"
echo "new_version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
echo "new_version=$(node -p "require('./package.json').version")" >> "$GITHUB_OUTPUT"
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

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

The echo command is incorrectly quoted: echo "new_version=$(node -p "require('./package.json').version")" ... will break the shell string and fail to write new_version to $GITHUB_OUTPUT. Use proper quoting/escaping (e.g., single quotes around the Node expression or escape the inner quotes) so the step reliably sets the output for later steps.

Suggested change
echo "new_version=$(node -p "require('./package.json').version")" >> "$GITHUB_OUTPUT"
echo "new_version=$(node -p 'require(\"./package.json\").version')" >> "$GITHUB_OUTPUT"

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 32 out of 34 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +8 to +19
/** Unwrap <![CDATA[...]]> if present, otherwise trim. */
function stripCDATA(s: string): string {
const m = s.match(/^<!\[CDATA\[([\s\S]*?)\]\]>$/)
return m ? m[1].trim() : s.trim()
}

const obj = field as Record<string, unknown>
return (
(obj.__cdata as string) ||
(obj['#text'] as string) ||
(obj.text as string) ||
(obj.term as string) ||
(obj.label as string) ||
(obj._ as string) ||
(obj.value as string) ||
(Object.values(obj).find((v) => typeof v === 'string') as string) ||
''
/** Return the text content of the first matching element. */
function tagText(xml: string, tag: string): string {
const m = xml.match(
new RegExp(`<${tag}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/${tag}>`, 'i'),
)
return m ? stripCDATA(m[1]) : ''
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

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

The new RSS parsing uses regex/string extraction, but it does not decode XML entities (e.g. &amp;, &quot;) in tag text. This will cause titles/categories containing escaped entities to render incorrectly in the UI. Consider decoding XML entities after extraction (or switching back to a real XML parser) to preserve correct text output.

Copilot uses AI. Check for mistakes.
@algotyrnt algotyrnt merged commit f731875 into main Mar 27, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants