Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature | Allow for automatic management of version and dependencies (docker-leverage-toolbox) #158

Open
exequielrafaela opened this issue Jan 17, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request patch

Comments

@exequielrafaela
Copy link
Member

exequielrafaela commented Jan 17, 2023

Describe the Feature

  • ✅ As a user of the leverage command line interface, I would like to request a feature that would allow for automatic management of version and dependencies.

  • ✅ This feature would greatly improve the reliability and ease of use of the command line interface. It would also help to ensure that users are always using the most up-to-date and stable versions of the compatible toolbox, which would ultimately lead to fewer issues and support requests.

Expected Behavior

  • The leverage CLI (Command Line Interface) should have a range restricting and controlling which versions of the toolbox can be used based on a clear compatibility matrix backed by automated tests. Let's say, it would be like centralizing the responsibility and logic of the compatibility matrix in one point, the CLI.

  • Any leverage cli command will be able to run even if the build.env file does not contains a definition for the https://github.com/binbashar/le-docker-leverage-toolbox

  • ⚔️ TERRAFORM_IMAGE_TAG=1.2.7-0.0.5

Use Case

An example use case for this feature would be a user who is working on a project that requires version 1.9.2 of the leverage cli and TERRAFORM_IMAGE_TAG=1.3.5-0.1.0 of the toolbox. However, the user has installed cli 1.9.2 but has an older toolbox docker image version TERRAFORM_IMAGE_TAG=1.2.7-0.0.1 . Without an automated compatibility internal check, the user would need to manually check and ensure compatibility between the different versions in the doc. This process can be time-consuming and error-prone.

With the proposed feature, the user would simply be able to install the latest cli version and the compatibility check will be automatic, which would clearly state that version x.y.z of the toolbox is incompatible with version a.b.c of the cli. This would save the user valuable time and prevent potential errors or compatibility issues. Additionally, the user would be able to use the command line interface to automatically manage the versions and dependencies, ensuring that the correct versions are used for the project.

Describe Ideal Solution

Please review this definition with

Additional Context

@juanmatias
Copy link
Contributor

Keep in mind the following cases and items:

  • Needed binary existence should be checked (e.g. does kubectl exist?)
  • Do we need to support only a few versions? (and set EOL for older versions)
  • Is it possible to manage the compatibility manager at CLI level? (notifying the user when no compatible version is being used)
  • Is it possible to manage a specific version (set of versions) for a given CLI version?

@exequielrafaela
Copy link
Member Author

exequielrafaela commented Jan 30, 2024

@diego-ojeda-binbash consider including the compatibility information in every release. We'll start with this practice in the next one. Appart from that we must update the doc here => https://leverage.binbash.co/work-with-us/releases/versions-compatibility-matrix/ to starting referencing to the release notes (https://github.com/binbashar/leverage/releases/tag/untagged-c0fd0d46dfd8353efc6c). We'll add a section Version Compatibility (Leverage CLI / Leverage Toolbox / Leverage Ref Arch)

@diego-ojeda-binbash
Copy link
Collaborator

diego-ojeda-binbash commented Jan 30, 2024

  1. Changes to the doc are here: Update Compatibility Matrix to add links to release pages that now di… le-ref-architecture-doc#206
  2. Changes to relese notes are here:
    a. CLI: https://github.com/binbashar/leverage/releases/tag/untagged-4c1a8297cbb05976d2a4
    b. Toolbox Image: https://github.com/binbashar/le-docker-leverage-toolbox/releases/tag/1.5.0-0.1.13

And just for reference this how the release looks (still a draft at the moment of writing this):
Screen Shot 2024-01-30 at 18 10 56

@diego-ojeda-binbash
Copy link
Collaborator

Manual updates get overwritten by the Release Drafter action. Instead we are modifying the Release Drafter template to add a footer with a reminder so that publishers of the release drafts can have a chance to manually add the Version Compatibility section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request patch
Projects
None yet
Development

No branches or pull requests

5 participants