1. Request a new tracker at https://git.fosscommunity.in/debian-ruby/TaskTracker/issues/64 (managed by Balasankar C).

  2. Use incompletemarkdown option of tracker, for example http://debian.fosscommunity.in/status/?appname=gitlab8.11.3&type=incompletemarkdown will give a markdown version of gitlab 8.11.3.

  3. Create a new issue like https://git.fosscommunity.in/debian-ruby/TaskTracker/issues/100 using the incompletemarkdown from previous step.

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

  5. Package any new gems and add them to a staging repo until they clear NEW queue. Use reprepro package to create the repo. Use people.debian.org, mahishasura.pxq.in or mahabali.pxq.in to host the repo.
  6. For stable libraries (?SemVer defines stable libraries as version >= 1.0), upload minor and patch updates to unstable directly (skip experimental) as previous version's Gemfile is already relaxed. Check reverse dependencies are not broken when updating. Check their gemspec files for their exact requirement. Use build-and-upload script from pkg-ruby-extras repo to automate this.

  7. For major updates of stable libraries and minor update of development libraries (?SemVer defines version << 1 as developement), use experimental as staging repo

  8. Import the new upstream to a new branch (if the current version is still in experimental or if you think the update can take a long time to complete and you want to keep the previous version updated for bug fixes) and add package to staging repo.
  9. 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)
  10. Once new dependencies clear NEW queue, upload new package with dependencies to experimental
  11. Move to unstable with dependencies only in experimental (always use experimental, never directly upload to unstable) after testing the new version