majesticlabs-dev/majestic-marketplace

gemfile-upgrade

Safely upgrade a Ruby gem with changelog review, breaking changes analysis, bundle update, test run, and commit.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/majesticlabs-dev/majestic-marketplace --skill gemfile-upgrade

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

Gemfile Upgrade

Input

  • ARG = gem_name (single gem) | --outdated (batch mode)

Workflow (single gem)

  1. Check status:
bash
   bundle outdated GEM --strict

Parse: current, latest, jump type (patch/minor/major)

  1. Locate repo:
bash
   bundle info GEM --path   # check gemspec for homepage / source_code_uri
  1. Fetch changelog via WebFetch (try in order, stop on first hit):
  • https://github.com/OWNER/REPO/releases
  • https://github.com/OWNER/REPO/blob/main/CHANGELOG.md
  • https://github.com/OWNER/REPO/blob/main/HISTORY.md
  • https://github.com/OWNER/REPO/blob/main/NEWS.md
  1. Extract changes between current → target. Flag:
  • Major bumps (X.x → Y.x)
  • Keywords: BREAKING, removed, renamed, changed behavior
  • Migration guides
  • Ruby/Rails version requirements
  • Deprecations
  1. Present analysis:
   ## Upgrade Analysis: GEM CURRENT → TARGET

   ### Version Jump: PATCH | MINOR | MAJOR
   ### Breaking Changes: [list]
   ### Migration Required: [steps]
   ### Deprecations: [list]
   ### New Features: [list]
   ### Compatibility: [Ruby/Rails reqs]
  1. AskUserQuestion → options:
  • Upgrade to latest minor (recommended) — safer, bug fixes
  • Upgrade to latest (TARGET) — review breaking changes
  • Upgrade to specific version — prompt for version
  • Skip
  1. Update Gemfile (Edit):
ruby
   # latest
   gem 'GEM', '~> MAJOR.MINOR'
   # minor only
   gem 'GEM', '~> CURRENT_MAJOR.CURRENT_MINOR'
  1. Run update:
bash
   bundle update GEM --conservative

On failure → show conflicts, suggest dependent updates, offer rollback.

  1. Run tests (auto-detect):
bash
   if [ -f spec/spec_helper.rb ]; then bundle exec rspec
   elif [ -f test/test_helper.rb ]; then bundle exec rails test
   fi
  • Pass → step 10
  • Fail → show failures, AskUserQuestion: Rollback | Investigate
  1. Commit:
bash
    git add Gemfile Gemfile.lock
    git commit -m "$(cat <<'EOF'
    chore(deps): upgrade GEM from CURRENT to TARGET

    Breaking changes:
    - [list]

    Migration notes:
    - [steps taken]

    Changelog: URL
    EOF
    )"

Workflow (--outdated batch mode)

  1. bundle outdated --strict
  2. Group by jump type:
  • PATCH (X.Y.Z → X.Y.Z+1) — usually safe
  • MINOR (X.Y → X.Y+1) — review recommended
  • MAJOR (X → X+1) — careful review required
  1. AskUserQuestion (multi-select) presenting all gems grouped by risk
  2. For each selected gem → run single-gem workflow (steps 1-10)

Rollback

At any failure step:

bash
git checkout -- Gemfile Gemfile.lock
bundle install

Safety Rules

  • Always show diff before applying
  • Create backup of Gemfile before edit (Edit tool preserves prior content via git)
  • Never commit if tests fail
  • Default to --conservative to avoid cascading updates
  • Flag major version jumps explicitly in analysis

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills