1. Find if unpackaged dependencies are added in the new version (compare Gemfile of both versions) or use tracker at http://debian.fosscommunity.in/

  2. Package any new gems and add them to a staging repo until they clear NEW queue
  3. Check for gem updates and add updates to a staging repo (use tracker at http://debian.fosscommunity.in/status/?appname=diaspora&sort=satisfied for mismatch. Note: change appname to diaspora, gitlab etc). If the current version is in unstable, experimental can be used as staging repo. Check reverse dependencies are not broken when updating. Check their gemspec files for their exact requirment.

  4. For stable libraries, upload minor and patch updates to unstable directly (skip experimental) as previous version's Gemfile is already relaxed.
  5. For major updates of stable libraries and minor update of development libraries (?SemVer defines version << 1 as developement), use experimental as staging repo

  6. Import the new upstream to a new branch (if the current version is still in experimental) and add package to staging repo.
  7. Refresh patches to match versions in the archive. Relax stable libraries (>= 1.x) and be careful with development libraries (0.x). Update debian/control with stricter dependency for dependency update (it will help in backporting).

    1. Step 1: Refresh patches that is needed for build (Gemfile changes)
    2. Step 2: Refresh patches for bundle install --local (install the newly built package to find out)
  8. Once new dependencies clear NEW queue, upload new package with dependencies to experimental
  9. Move to unstable with dependencies only in experimental (always use experimental, never directly upload to unstable) after testing the new version