Skip to content

Solidarity is an environment checker for project dependencies across multiple machines.

License

Notifications You must be signed in to change notification settings

infinitered/solidarity

Repository files navigation

Solidarity is an environment checker for project dependencies across multiple machines.


Build Status Build Status Codecov npm version

WHY DOES SOLIDARITY EXIST:question:

I know the one-liner under the graphic isn't for everyone. If you'd like a quick, friendly explanation, please take a two minutes to read the announcement blog post

Docs Website

https://infinitered.github.io/solidarity/


We now return you to your regularly scheduled ReadMe


Install

Install command globally, OR use via node_modules. It's suggested you install your snapshot plugins in the same place.

Note: Node.js version must be >= 7.6.0.

# example of installing global with npm and react-native snapshot
$ npm i -g solidarity solidarity-react-native

# example of installing local with yarn and elixir snapshot (dev dependencies)
$ yarn add solidarity solidarity-elixir --dev

How do I use it?

Using solidarity easy! Run the command to check the current project environment

$ solidarity

This 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 solidarity check so for testing frameworks.

How do I update it to my machine specs?

Environment updates can be stored to solidarity quickly.

$ solidarity snapshot

The 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.

How do I create my first snapshot?

If no .solidarity file is present, then solidarity snapshot prompts you to identify the technology your project depends on.

$ solidarity snapshot
No `.solidarity` file found for this project.  Would you like to create one? (Y/n)

Custom rule-sets can be created by modifying the .solidarity file by hand, or by creating a solidarity plugin for a given technology. See documentation for how you can create your own.

Platforms

Currently solidarity only works with Mac and Linux. Functionality for Windows OS is in the works. Please submit PRs.

Project Support

Open Source

Solidarity, as open source, is free to use and always will be ❤️. 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 and look for the #solidarity room.

Premium

Infinite Red offers premium Solidarity support and general mobile app design/development services. Email us at [email protected] to get in touch with us for more details.

Additional Info

You can help!

License

The MIT License (MIT). Please see License File for more information.

NPM Details

NPM