Secret ingredients to quality software

  • Services
    • Products
      • Training
        • User Group
          • Rules
            • About Us
              • SSW TV
              SSW Foursquare

              Rules to Better Version Management - 2 Rules

              In development, different projects use distinct sets of software with different versions. It is important to manage the versions of the software to avoid conflicts and ensure the stability of the project.

              1. Do you know to use one version manager supporting multiple software?

                Managing software versions can be a complex and time-consuming task, especially when you're dealing with multiple applications across various platforms. In today's fast-paced digital landscape, having a unified solution that supports multiple software packages is invaluable. Imagine a single version manager that streamlines the process, ensuring that all your software remains up to date effortlessly. In this article, we explore the advantages and possibilities of using a version manager capable of handling multiple software applications, simplifying your workflow and enhancing your software management experience.

                ring

                Every programming language or framework build upon it has its own version managers in community, such as NVM for Node.js, RVM for Ruby, and Pyenv for Python.

                However, it is not a good idea to use different version managers for different software. It is better to use one version manager supporting multiple software.

                asdf

                asdf - Manage all your runtime versions with one tool

                ✅ Easy to use
                ✅ Lightweight & Fast
                ✅ Non-intrusive
                ~700 registered plugins covering most use cases including node, dotnet, dotnet-core

                ❌ Linux/Mac/WSL only


                Video: Use asdf to manage versions of Python, NodeJS, GoLang and more! (8 min)

                Option B: nix

                nix

                nix-shell - A tool that allows you to create and manage isolated, reproducible development environments for software projects, using the Nix package manager and a declarative configuration file


                Video: How to use Nix on Ubuntu or any Linux Distro (18 min)

                ✅ Reproducibility - Same package installation process yields the same output
                ✅ Declarative configuration - Nix uses a declarative configuration format to describe packages and their dependencies
                ✅ Extensibility - Developers can extend its functionality through plugins and custom builders

                ❌ Steep learning curve
                ❌ Intrusive
                ❌ Linux/Mac/WSL only

              We open source. Powered by GitHub