{"id":13452553,"url":"https://github.com/infinitered/solidarity","last_synced_at":"2025-05-14T23:02:10.883Z","repository":{"id":40465115,"uuid":"102300432","full_name":"infinitered/solidarity","owner":"infinitered","description":"Solidarity is an environment checker for project dependencies across multiple machines.","archived":false,"fork":false,"pushed_at":"2024-07-14T02:27:41.000Z","size":3046,"stargazers_count":643,"open_issues_count":31,"forks_count":50,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-05-11T01:35:33.380Z","etag":null,"topics":["cli","cli-app","cli-utility","environment-checker","helper-tool","javascript","javascript-library","multiple-machines","node","node-js","node-module","nodejs","snapshot","solidarity","typescript"],"latest_commit_sha":null,"homepage":"https://infinitered.github.io/solidarity/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/infinitered.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-03T23:27:04.000Z","updated_at":"2025-05-07T16:56:22.000Z","dependencies_parsed_at":"2024-07-31T07:14:39.622Z","dependency_job_id":"c3535b01-5b8d-48dd-b5fe-e3dc21af996b","html_url":"https://github.com/infinitered/solidarity","commit_stats":{"total_commits":350,"total_committers":34,"mean_commits":"10.294117647058824","dds":0.5057142857142858,"last_synced_commit":"3f701f77de9bc1b82eb7c1fb387292bf0907a336"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinitered%2Fsolidarity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinitered%2Fsolidarity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinitered%2Fsolidarity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infinitered%2Fsolidarity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infinitered","download_url":"https://codeload.github.com/infinitered/solidarity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254243353,"owners_count":22038044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","cli-app","cli-utility","environment-checker","helper-tool","javascript","javascript-library","multiple-machines","node","node-js","node-module","nodejs","snapshot","solidarity","typescript"],"created_at":"2024-07-31T07:01:27.368Z","updated_at":"2025-05-14T23:02:10.824Z","avatar_url":"https://github.com/infinitered.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/infinitered/solidarity/master/_art/combo.jpg\" width=\"700px\" /\u003e\n  \u003ch3 align=\"center\"\u003eSolidarity is an environment checker for project dependencies across multiple machines.\u003c/h3\u003e \n  \u003chr/\u003e\n  \u003ca href='https://semaphoreci.com/ir/solidarity'\u003e \u003cimg src='https://semaphoreci.com/api/v1/ir/solidarity/branches/master/badge.svg' alt='Build Status'\u003e\u003c/a\u003e\n  \u003ca href='https://travis-ci.org/infinitered/solidarity'\u003e \u003cimg src='https://travis-ci.org/infinitered/solidarity.svg?branch=master' alt='Build Status'\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/infinitered/solidarity\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/infinitered/solidarity/graph/badge.svg\" alt=\"Codecov\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://badge.fury.io/js/solidarity\"\u003e\u003cimg src=\"https://badge.fury.io/js/solidarity.svg\" alt=\"npm version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/solidarity\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/dt/solidarity.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://ci.appveyor.com/project/GantMan/solidarity\"\u003e\n    \u003cimg src=\"https://ci.appveyor.com/api/projects/status/eqn3imsv7pk75sjv/branch/master?svg=true\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://app.fossa.io/projects/git%2Bgithub.com%2Finfinitered%2Fsolidarity?ref=badge_shield\"\u003e\n    \u003cimg src=\"https://app.fossa.io/api/projects/git%2Bgithub.com%2Finfinitered%2Fsolidarity.svg?type=shield\"\u003e\n  \u003c/a\u003e \n\u003c/p\u003e\n\n### When the same exact code works on one machine but not another, Solidarity is the answer\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/997157/36068817-297b9e02-0ea4-11e8-96b5-9ea7a34401e2.gif\" align=\"center\" /\u003e\n\u003c/p\u003e  \n\n### Docs Website\nhttps://infinitered.github.io/solidarity/\n\n-------\n\u003e _We now return you to your regularly scheduled ReadMe_\n-------\n\n## Install\nInstall the command globally OR use via `node_modules`.  It's suggested you install your snapshot plugins in the same place.\n\nNote:\nNode.js version must be \u003e= `7.6.0`.\n```sh\n# example of installing global with npm and react-native snapshot\n$ npm i -g solidarity solidarity-react-native\n\n# example of installing local with yarn and elixir snapshot (dev dependencies)\n$ yarn add solidarity solidarity-elixir --dev\n```\n\n## How do I use it?\nUsing solidarity is easy! Run the following command to check the current project environment.\n```sh\n$ solidarity\n```\nThis command looks for the `.solidarity` file in the working directory, and then runs a check of the containing rules against your environment.  The command exit code is tied to the success of the solidarity check for testing frameworks.\n\n[Write your Solidarity file by hand](https://infinitered.github.io/solidarity/#/docs/options), or use a snapshot.\n\n## How do I update it to my machine specs?\nEnvironment updates can be stored to solidarity quickly.\n```sh\n$ solidarity snapshot\n```\nThe `snapshot` parameter will update the rules in the `.solidarity` file to the current system specs. By default a snapshot will be strict with the versions of _everything_ detected.  But, semantic versioning is supported.\n\n## How do I create my first snapshot?\nIf no `.solidarity` file is present, then `solidarity snapshot` prompts you to identify the technology your project depends on.\n\n```sh\n$ solidarity snapshot\nNo `.solidarity` file found for this project.  Would you like to create one? (Y/n)\n```\n\nCustom rule-sets can be created by modifying the `.solidarity` file by hand, or by creating a solidarity plugin for a given technology.  [See documentation](https://infinitered.github.io/solidarity/) for how you can create your own.\n\n## How do I update my snapshots?\nGiven there is already a `.solidarity` file present, then you can run `solidarity snapshot [rule]`\n\n```sh\n$ solidarity snapshot cli node\n```\n\nSolidarity will follow up with aditional questions to help drill down your new snapshot rule.\n\n\n## Cross Platform\nSolidarity works with Mac/Linux/Windows environments. CI tests all rules with each platform on every update.\n\n## Using Solidarity for GitHub Reports\n![Solidarity Reports](https://cdn-images-1.medium.com/max/2000/1*EE_NX4i1YeVowVuBSdT78w.gif)\nYou've already identified everything that's important to your project.  So when anyone files bugs on your repo, they can just report using Solidarity!\n\nJust run `solidarity report`\n\nThe resulting output is copy/paste markdown.  If you're confused, here's [the full blog post](https://shift.infinite.red/effortless-environment-reports-d129d53eb405).\n\n## Project Support\n#### Open Source\nSolidarity, as open source, is free to use and always will be :heart:.  It's MIT Licensed and we'll always do our best to help and quickly answer issues.  If you'd like to get a hold of us, join our [community slack](http://community.infinite.red) and look for the #solidarity room.\n\n#### Premium\n[Infinite Red](https://infinite.red/) offers premium Solidarity support and general mobile app design/development services. Email us at [hello@infinite.red](mailto:hello@infinite.red) to get in touch with us for more details.\n\n## Additional Info\n### You can help!\n* Spread the word [![Twitter](https://img.shields.io/twitter/url/https/github.com/infinitered/solidarity.svg?style=social)](https://twitter.com/intent/tweet?text=%F0%9F%92%BB%20Developer%20Environment%20Protection:\u0026url=https%3A%2F%2Fgithub.com%2Finfinitered%2Fsolidarity)\n* Star the repo!\n* Clap on Medium\n* Read the [Contributors Guide](https://github.com/infinitered/solidarity/blob/master/docs/contributorsGuide.md)\n* Add solidarity to all your projects\n* [Build plugins](https://github.com/infinitered/solidarity/blob/master/docs/plugins.md)\n* Join our Slack \u003ca href=\"http://community.infinite.red/\"\u003e\n    \u003cimg src=\"https://infiniteredcommunity.herokuapp.com/badge.svg\"\u003e\n  \u003c/a\u003e\n\n### License\nThe MIT License (MIT). Please see [License File](LICENSE) for more information.\n\n### NPM Details\n[![NPM](https://nodei.co/npm/solidarity.png)](https://npmjs.org/package/solidarity)\n\n","funding_links":[],"categories":["TypeScript","Environment Helpers","cli"],"sub_categories":["A11y (accessibility)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitered%2Fsolidarity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfinitered%2Fsolidarity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfinitered%2Fsolidarity/lists"}