{"id":20672072,"url":"https://github.com/workarea-commerce/workarea-upgrade","last_synced_at":"2026-04-21T11:02:33.313Z","repository":{"id":56898470,"uuid":"210903802","full_name":"workarea-commerce/workarea-upgrade","owner":"workarea-commerce","description":"Workarea upgrade tools","archived":false,"fork":false,"pushed_at":"2020-08-28T12:13:10.000Z","size":175,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-06T17:48:45.330Z","etag":null,"topics":["workarea-commerce-cloud"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/workarea-commerce.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-25T17:35:24.000Z","updated_at":"2020-08-28T12:13:12.000Z","dependencies_parsed_at":"2022-08-21T02:20:28.791Z","dependency_job_id":null,"html_url":"https://github.com/workarea-commerce/workarea-upgrade","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/workarea-commerce/workarea-upgrade","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workarea-commerce%2Fworkarea-upgrade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workarea-commerce%2Fworkarea-upgrade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workarea-commerce%2Fworkarea-upgrade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workarea-commerce%2Fworkarea-upgrade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/workarea-commerce","download_url":"https://codeload.github.com/workarea-commerce/workarea-upgrade/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workarea-commerce%2Fworkarea-upgrade/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32088913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T06:27:27.065Z","status":"ssl_error","status_checked_at":"2026-04-21T06:27:21.250Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["workarea-commerce-cloud"],"created_at":"2024-11-16T20:31:42.060Z","updated_at":"2026-04-21T11:02:33.278Z","avatar_url":"https://github.com/workarea-commerce.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Workarea Upgrade \n\nA plugin for upgrading to newer versions of Workarea and its plugins.\n\n## Overview\n\n* Used for upgrading to new patches, minors, or majors\n* View a report of the complexity of the upgrade\n* Diff code change between any two version of Workarea in the v3 series \n* See results relevant to the overridden or decorated files in your application\n\n## Features\n\n* __Command Line Interface__\n  \n  The features of this plugin are accessibile by invoking the `workarea_upgrade`\n  command. After installing this plugin run `bundle exec workarea_upgrade help`\n  for an overview of which commands are available to you.\n\n* __Upgrade Preparation__\n  \n  The Upgrade plugin uses the differences found between your `Gemfile` and a \n  `Gemfile.next` file present in your application's root directory to generate\n  its reporting and diffing functionality. You can create and manage this \n  `Gemfile.next` yourself or use the `prepare` task to automate its creation.\n\n* __Reporting__\n\n  To get an idea of how complex your upgrade will be the Upgrade gem provides\n  a `report` task which shows basic statistics about the amount of change the \n  Workarea platform has undergone between versions listed in your `Gemfile` and\n  `Gemfile.next`. These statistics should give you a general idea of how much \n  work may be required to perform the upgrade.\n\n* __Diffing__\n \n The Upgrade plugin will display a full diff of changes made to Workarea as they\n pertain to your application. If you've overridden or decorated any core \n Workarea file or a file from a Workarea plugin the Upgrade gem will show you\n the change to that file between the versions specified in your `Gemfile` and \n `Gemfile.next`. Use this information to upgrade your application accordingly.\n\n## Getting Started\n\n### Installation\n\nAdd the plugin to your application's `Gemfile`:\n\n    group :development do\n      gem 'workarea-upgrade', '\u003e= 3.0.0', source: 'https://gems.workarea.com'\n    end\n\nUpdate your bundle. Use `bundle update` to get the latest version:\n\n    cd path/to/your_app\n    bundle update workarea-upgrade\n\n### View Help\n\nRun `workarea_upgrade help` for an overview of the commands and what they do:\n\n    bundle exec workarea_upgrade help\n\nRun `workarea_upgrade help TASK` to get more information about a given task:\n\n    bundle exec workarea_upgrade help report\n\n### Create a Gemfile.next\n\nThe Upgrade plugin uses a `Gemfile.next` file in your application's root\ndirectory to determine the versions you wish to upgrade to.\n\nThis file may be created manually, by copying and modifying your `Gemfile` as a\n`Gemfile.next` file, or automatically, by running:\n\n    bundle exec workarea_upgrade\n\nThis will drop you into a wizard that will determine the newest versions of each\nof your Workarea gems and iterate over them, allowing you to add, remove, or \nmodify the version of each gem found. These choices are used to generate the \n`Gemfile.next` file for you automatically. \n\nOnce the process is complete the `Gemfile.next` will be tested for installation.\nIf it fails installation you will be given instructions on how to fix it\nmanually until it is in an installable state.\n\n### View Report\n\nOnce the `Gemfile.next` file is installable, you may get an idea of the\ncomplexity of your upgrade by viewing the report:\n\n    bundle exec workarea_upgrade report\n\n### View Diffs\n\nFinally, view the actual changes that have occurred to any Workarea gems you \nhave installed with:\n\n    bundle exec workarea_upgrade diff\n\nThe output of this command will be limited to the files that have been \noverridden or decorated in your application only, as its these files that will\nnot automatically receive the updates from the core platform. Use this output\nto make informed decisions about how your application will need to change to \nstay up to date.\n\nYou may also view a list of all files added or removed between each version \nby running either:\n\n    bundle exec workarea_upgrade diff --added # or\n    bundle exec workarea_upgrade diff --removed\n\nView `bundle exec workarea_upgrade help diff` for more ways you can format these\nresults.\n\n### Copy Gemfile.next to Gemfile\n\nOnce all of the updates have been applied to your application, move the\n`Gemfile.next` files over to replace your `Gemfile` files:\n\n    mv Gemfile.next Gemfile\n    mv Gemfile.next.lock Gemfile.lock\n\n### Test\n\nLastly you should run your test suite to ensure all of the tests pass:\n\n    bin/rails workarea:test\n\nOnce the tests pass, deploy your upgrade to your QA environment for real user\ntesting.\n\n### Upgrading Themes\n\nThemes, by nature, are structured differently than host applications. The main\ndifference is that themes list their dependencies in a `gemspec` instead of a \n`Gemfile`. Secondly, they are more permissive in their dependencies, since they\nare intended to \"just work\" for all patches within a dependency's minor version\nor, in some cases, all minors and patches within a dependency's major version.\n\n```rb\n# snipped from the NVY Theme's gemspec\n\ns.add_dependency 'workarea', '~\u003e 3.4.x'                                       \ns.add_dependency 'workarea-theme', '~\u003e 1.1.1'                                 \n                                                                              \ns.add_dependency 'workarea-blog', '~\u003e 3.x', '\u003e= 3.3.0'                        \ns.add_dependency 'workarea-gift_cards', '~\u003e 3.x', '\u003e= 3.4.0'                  \ns.add_dependency 'workarea-product_quickview', '~\u003e 2.0.2'                     \ns.add_dependency 'workarea-reviews', '~\u003e 3.x'                                 \ns.add_dependency 'workarea-share', '~\u003e 1.x', '\u003e= 1.2.0'                       \ns.add_dependency 'workarea-swatches', '~\u003e 1.x'                                \ns.add_dependency 'workarea-styled_selects', '~\u003e 1.x'                          \ns.add_dependency 'workarea-slick_slider', '~\u003e 1.x'                            \ns.add_dependency 'workarea-wish_lists', '\u003e= 2.1.0' \n```\n\n```rb\n# snipped from the NVY theme's Gemfile\n\ngem 'workarea', github: 'workarea-commerce/workarea'\n```\n\nIn order to use the `workarea_upgrade` command effectively within the context\nof a theme you will need to _temporarily create entries in the theme's Gemfile_\neffectively fixing the theme's dependencies to a known version before proceeding\nwith the upgrade.\n\nDoing this is fairly straightforward. It's best to glean the fixed dependency\nversions from the gemspec directly. Using the example above we can safely assume\nthe adjusted Gemfile should look something like this:\n\n```rb\ngem 'workarea', '3.4.0'\ngem 'workarea-blog', '3.3.0'\ngem 'workarea-gift_cards', '3.4.0'\ngem 'workarea-product_quickview', '2.0.2'\ngem 'workarea-reviews', '3.0.0'\ngem 'workarea-share', '1.2.0'\ngem 'workarea-swatches', '1.0.0'\ngem 'workarea-styled_selects', '1.0.0'\ngem 'workarea-slick_slider', '1.0.0'\ngem 'workarea-wish_lists', '2.1.0'\n\n# Don't forget to include workarea-upgrade either\ngem 'workarea-upgrade', source: 'https://gems.workarea.com'\n```\n\nRunning `bundle exec workarea_upgrade` at this point should work as expected.\n\nOnce you've finished going through the generated diff and applying all of the\nchanges, don't forget to\n\n1. revert the changes you made to your Gemfile\n1. update your gemspec to point to the new versions you've upgraded to\n1. delete your Gemfile.next and Gemfile.next.lock files\n1. run a bundle install to check that the dependencies are correct\n1. run your tests\n\n\n# Copyright \u0026 Licensing\n\nCopyright Weblinc 2017. All rights reserved.\n\nFor licensing, contact sales@workarea.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkarea-commerce%2Fworkarea-upgrade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkarea-commerce%2Fworkarea-upgrade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkarea-commerce%2Fworkarea-upgrade/lists"}