End Your Development Nightmares with envinfo and Solidarity

Rate this content
Bookmark

In a world where perpetually confused developers can't quite get their React Native development environments working, new libraries emerge from the ashes of lost productivity: envinfo and Solidarity. Escape the complexity and be part of the wave of teams embracing change to save their projects from themselves. 

This talk has been presented at React Summit Remote Edition 2020, check out the latest edition of this React Conference.

FAQ

Envinfo is a tool used to gather information about your development environment, including files, variables, binaries, and applications. It provides a comprehensive overview of your setup by making multiple system calls.

You can run Envinfo using npx, install it globally, or download and run a binary. You can also add it as a dependency in your project and use its helpers.

Solidarity is a cross-platform tool that ensures consistency in development environments by checking files, variables, and other configurations. It can handle custom plugins and provides error messages that help maintainers get better information.

To get started with Solidarity, install it, create a .solidarity file with your configuration, and run it. You can define requirements, set versions, and provide error messages within the configuration.

Envinfo and Solidarity help maintain consistency and provide detailed information about development environments, making it easier to troubleshoot issues and ensure all team members are using the correct setups.

Yes, you can add Envinfo as a dependency in your project. You can import and use its helpers or run it directly with a configuration object.

Solidarity provides better information for maintainers by ensuring developers use the correct versions and configurations. It helps generate useful error messages that can guide developers in resolving issues.

'Paint it red mode' is a feature in Solidarity that uses terminal escape codes to change the background color of the terminal to red if a pre-build or pre-commit check fails, without stopping the build process.

Yes, Solidarity can be integrated with pre-commit and pre-build hooks to ensure that developers are using the correct configurations and versions before committing or building code.

You can find more information on Modus Create's website, follow them on Twitter, or reach out to Trevor Brendel directly for updates and new features.

Trevor Brindle
Trevor Brindle
7 min
02 Aug, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

This talk discusses how to simplify development environments using tools like envinfo and Solidarity. It highlights the complexity of modern development stacks, such as React Native, and the challenges in managing various tools and versions. NVINFO helps developers gather detailed information about their development environment, making it easier to manage configurations and resolve compatibility issues. You can run NVINFO through npx, install it globally, or use a binary. Solidarity provides cross-platform compatibility checks and helps manage project-specific requirements. It can be used for pre-commit hooks and git config checks, ensuring all team members use compatible configurations. The talk also covers how to use Solidarity to verify files, variables, and handle custom plugins, saving time and preventing common errors.

1. Introduction to Envinfo and Solidarity

Short description:

Hi, my name is Trevor Brendel. I'm a developer and I work for Modus Create. This presentation is called End Your Development Environment Nightmares with Envinfo and Solidarity. Your development environment is everything, the sum of all the tools and processes you use while developing software. A great example is React Native. The stack itself plus all the build tools, the debug tools, everything you use, editors, terminals, browsers, everything all counts. And it's growing in complexity and wherever there's complexity there's bugs. That's a lot of commands to type in. So how do I find this? If I need to find what Android SDK version I have? I don't remember and I wrote a library that gets it. So this is part of the infomercial where we smash cabbages into a blender and have to say there's got to be a better way. There is. Know what you have and enforce what you use using NVINFO and Solidarity.

Hi, my name is Trevor Brendel. I'm a developer and I work for Modus Create. This presentation is called End Your Development Environment Nightmares with Envinfo and Solidarity. Your development environment is everything, the sum of all the tools and processes you use while developing software. Files, variables, binaries, apps, everything down to the shell you use when you're developing your application.

A great example is React Native. The stack itself plus all the build tools, the debug tools, everything you use, editors, terminals, browsers, everything all counts. And it's growing in complexity and wherever there's complexity there's bugs. So the problems, works on my computer, the evergreen command not found, what version do you have, what version do I need, and every issue template ever. These mention other relevant information such as operating system, Node.js, Yarn and MPM versions.

That's a lot of commands to type in. So how do I find this? If I need to find what Android SDK version I have? I don't remember and I wrote a library that gets it. So this is part of the infomercial where we smash cabbages into a blender and have to say there's got to be a better way. There is. Know what you have and enforce what you use using NVINFO and Solidarity.

2. Introduction to NVINFO

Short description:

NVINFO is a tool that conglomerates information about your development environment. It started with a shell script combining various tools and processes used in React Native development. This information is incredibly useful as it saves developers from having to type in multiple commands. There are 17 different calls made in various system binaries just to show what's on the screen, demonstrating the power of nvinfo.

So NVINFO, what exactly is it? Let's back up a second with a story time. Imagine 5 new developers getting started from different backgrounds on a React Native app. We all had different machine setups and React Native is a little finicky sometimes. This originally started with a shell script combining OS, Xcode, Node.js, MPM, Yarn, everything. But I realized that command minus v until you table flip isn't a lot of fun and that's a lot of commands to type in. Then I realized we're probably not the only ones having this problem so I wrote a PR to React Native to just give them my shell script that I used under React Native info. It was suggested this probably shouldn't be our library. Why don't you write it? And so I did. The whole story is on Medium and on my blog, nvinfo and oss-story. And I highly recommend you take a look. So this is nvinfo. It might be a little anticlimactic but it's incredibly useful because no one has really conglomerated this information together all at once. There's actually 17 different calls made in various system binaries just to show what's on this screen. And this is about 20% of what nvinfo can do.