-
Notifications
You must be signed in to change notification settings - Fork 11
Description
As the installation procedures for our software project continue to evolve and become more complex, it has become apparent that our current shell script installer is no longer sufficient. Maintaining the existing installer has become increasingly challenging, and it lacks the robustness required for a seamless installation experience.
Proposal:
In light of these challenges, I propose that we migrate our installer to the Go programming language. This transition to Go would offer several advantages:
-
Enhanced Robustness: Go is known for its robust error handling and built-in concurrency support. This would result in a more reliable installer, reducing the risk of installation failures and errors.
-
Ease of Maintenance: Go code tends to be clean, readable, and easy to maintain. With the growing complexity of our installation procedures, this change would make it simpler to adapt and update our installer as needed.
-
Cross-Platform Compatibility: Go can cross-compile for various platforms, ensuring that our installer can seamlessly run on a wide range of operating systems, thereby expanding our software's reach.
-
Short Compile Time: Go's short compilation times enable quick iteration and development, making it easier to implement changes and improvements to the installer.
-
Static Binaries: Go produces statically linked binaries, which can be run in containers without relying on the host operating system. This provides a more consistent and container-friendly installation experience.
Scope of Work:
- Create a new installer using the Go programming language.
- Migrate existing functionality from the shell script installer to the Go-based installer.
- Ensure that the new installer supports all the platforms and Kubernetes distributions that are currently supported
- Implement robust error handling and user-friendly feedback during the installation process.
- Provide clear documentation and usage instructions for the new installer.
Benefits:
- Improved extensibility and contributor experience.
- Reduced maintenance overhead for the installer.
- Increased compatibility and flexibility for running our software on various platforms.
Additional Considerations:
This proposal aligns with @phyrog suggestion to utilize Go for our installer, taking advantage of its strengths to address the evolving needs of our software installation process.
Please feel free to provide feedback and suggestions on this proposal. Your input will be valuable in shaping the future direction of our installer.