tfutils / tfenv

Terraform version manager
MIT License
4.51k stars 454 forks source link

`tfenv list-remote` doesn't have the versions sorted when using `TFENV_REMOTE` with Artifactory #401

Open samuel-phan opened 1 year ago

samuel-phan commented 1 year ago

When setting up the TFENV_REMOTE to a private Artifactory mirror:

$ TFENV_REMOTE=https://example.jfrog.io/artifactory/hashicorp

tfenv list-remote doesn't show the versions in the right order:

❯ tfenv list-remote
0.1.0
0.1.1
0.10.0
0.10.1
...
0.10.8
0.11.0
0.11.1
0.11.10
0.11.11
0.11.12
0.11.13
0.11.14
0.11.15
0.11.2
0.11.3
0.11.4
0.11.5
0.11.6
0.11.7
0.11.8
0.11.9
0.12.0
...
0.15.3
0.15.4
0.15.5
0.2.0
0.2.1
0.2.2
0.3.0
0.3.1
0.3.5
0.3.6
0.3.7
...
1.4.5
1.4.6
1.5.0
7.38.7

The Artifactory HTML page can look like this:

Artifactory HTML page ```html Index of hashicorp/terraform

Index of hashicorp/terraform

Name     Last modified      Size

../
0.1.0/    15-Jun-2023 16:35    -
0.1.1/    15-Jun-2023 16:34    -
0.10.0/   15-Jun-2023 15:41    -
0.10.1/   15-Jun-2023 15:41    -
0.10.2/   15-Jun-2023 15:40    -
0.10.3/   15-Jun-2023 15:40    -
0.10.4/   15-Jun-2023 15:40    -
0.10.5/   15-Jun-2023 15:39    -
0.10.6/   15-Jun-2023 15:39    -
0.10.7/   15-Jun-2023 15:39    -
0.10.8/   15-Jun-2023 15:38    -
0.11.0/   15-Jun-2023 15:38    -
0.11.1/   15-Jun-2023 15:38    -
0.11.10/  15-Jun-2023 15:35    -
0.11.11/  15-Jun-2023 15:34    -
0.11.12/  15-Jun-2023 15:34    -
0.11.13/  15-Jun-2023 15:33    -
0.11.14/  15-Jun-2023 15:33    -
0.11.15/  15-Jun-2023 15:33    -
0.11.2/   15-Jun-2023 15:37    -
0.11.3/   15-Jun-2023 15:37    -
0.11.4/   15-Jun-2023 15:37    -
0.11.5/   15-Jun-2023 15:36    -
0.11.6/   15-Jun-2023 15:36    -
0.11.7/   15-Jun-2023 15:36    -
0.11.8/   15-Jun-2023 15:35    -
0.11.9/   15-Jun-2023 15:35    -
0.12.0/   15-Jun-2023 15:32    -
0.12.1/   15-Jun-2023 15:32    -
0.12.10/  15-Jun-2023 15:29    -
0.12.11/  15-Jun-2023 15:29    -
0.12.12/  15-Jun-2023 15:28    -
0.12.13/  15-Jun-2023 15:28    -
0.12.14/  15-Jun-2023 15:28    -
0.12.15/  15-Jun-2023 15:27    -
0.12.16/  15-Jun-2023 15:27    -
0.12.17/  15-Jun-2023 15:27    -
0.12.18/  15-Jun-2023 15:26    -
0.12.19/  15-Jun-2023 15:26    -
0.12.2/   15-Jun-2023 15:32    -
0.12.20/  15-Jun-2023 15:25    -
0.12.21/  15-Jun-2023 15:25    -
0.12.22/  15-Jun-2023 15:25    -
0.12.23/  15-Jun-2023 15:24    -
0.12.24/  15-Jun-2023 15:24    -
0.12.25/  15-Jun-2023 15:24    -
0.12.26/  15-Jun-2023 15:23    -
0.12.27/  15-Jun-2023 15:23    -
0.12.28/  15-Jun-2023 15:22    -
0.12.29/  15-Jun-2023 15:22    -
0.12.3/   15-Jun-2023 15:31    -
0.12.30/  15-Jun-2023 15:21    -
0.12.31/  15-Jun-2023 15:20    -
0.12.4/   15-Jun-2023 15:31    -
0.12.5/   15-Jun-2023 15:31    -
0.12.6/   15-Jun-2023 15:30    -
0.12.7/   15-Jun-2023 15:30    -
0.12.8/   15-Jun-2023 15:30    -
0.12.9/   15-Jun-2023 15:29    -
0.13.0/   15-Jun-2023 15:19    -
0.13.1/   15-Jun-2023 15:18    -
0.13.2/   15-Jun-2023 15:17    -
0.13.3/   15-Jun-2023 15:16    -
0.13.4/   15-Jun-2023 15:15    -
0.13.5/   15-Jun-2023 15:14    -
0.13.6/   15-Jun-2023 15:12    -
0.13.7/   15-Jun-2023 15:11    -
0.14.0/   15-Jun-2023 15:10    -
0.14.1/   15-Jun-2023 15:08    -
0.14.10/  15-Jun-2023 14:57    -
0.14.11/  15-Jun-2023 14:56    -
0.14.2/   15-Jun-2023 15:07    -
0.14.3/   15-Jun-2023 15:06    -
0.14.4/   15-Jun-2023 15:05    -
0.14.5/   15-Jun-2023 15:04    -
0.14.6/   15-Jun-2023 15:03    -
0.14.7/   15-Jun-2023 15:01    -
0.14.8/   15-Jun-2023 15:00    -
0.14.9/   15-Jun-2023 14:59    -
0.15.0/   15-Jun-2023 14:55    -
0.15.1/   15-Jun-2023 14:54    -
0.15.2/   15-Jun-2023 14:53    -
0.15.3/   15-Jun-2023 14:52    -
0.15.4/   15-Jun-2023 14:50    -
0.15.5/   15-Jun-2023 14:49    -
0.2.0/    15-Jun-2023 16:34    -
0.2.1/    15-Jun-2023 16:34    -
0.2.2/    15-Jun-2023 16:33    -
0.3.0/    15-Jun-2023 16:33    -
0.3.1/    15-Jun-2023 16:32    -
0.3.5/    15-Jun-2023 16:32    -
0.3.6/    15-Jun-2023 16:31    -
0.3.7/    15-Jun-2023 16:30    -
0.4.0/    15-Jun-2023 16:30    -
0.4.1/    15-Jun-2023 16:29    -
0.4.2/    15-Jun-2023 16:28    -
0.5.0/    15-Jun-2023 16:28    -
0.5.1/    15-Jun-2023 16:27    -
0.5.3/    07-Jun-2023 16:34    -
0.6.0/    15-Jun-2023 16:25    -
0.6.1/    15-Jun-2023 16:24    -
0.6.10/   15-Jun-2023 16:14    -
0.6.11/   15-Jun-2023 16:12    -
0.6.12/   15-Jun-2023 16:11    -
0.6.13/   15-Jun-2023 16:09    -
0.6.14/   15-Jun-2023 16:07    -
0.6.15/   15-Jun-2023 16:05    -
0.6.16/   15-Jun-2023 16:03    -
0.6.2/    15-Jun-2023 16:24    -
0.6.3/    15-Jun-2023 16:23    -
0.6.4/    15-Jun-2023 16:22    -
0.6.5/    15-Jun-2023 16:21    -
0.6.6/    15-Jun-2023 16:20    -
0.6.7/    15-Jun-2023 16:18    -
0.6.8/    15-Jun-2023 16:17    -
0.6.9/    15-Jun-2023 16:15    -
0.7.0/    15-Jun-2023 16:03    -
0.7.1/    15-Jun-2023 16:03    -
0.7.10/   15-Jun-2023 15:58    -
0.7.11/   15-Jun-2023 15:57    -
0.7.12/   15-Jun-2023 15:57    -
0.7.13/   15-Jun-2023 15:56    -
0.7.2/    15-Jun-2023 16:02    -
0.7.3/    15-Jun-2023 16:02    -
0.7.4/    15-Jun-2023 16:01    -
0.7.5/    15-Jun-2023 16:01    -
0.7.6/    15-Jun-2023 16:00    -
0.7.7/    15-Jun-2023 16:00    -
0.7.8/    15-Jun-2023 15:59    -
0.7.9/    15-Jun-2023 15:59    -
0.8.0/    15-Jun-2023 15:55    -
0.8.1/    15-Jun-2023 15:55    -
0.8.2/    15-Jun-2023 15:54    -
0.8.3/    15-Jun-2023 15:54    -
0.8.4/    15-Jun-2023 15:53    -
0.8.5/    15-Jun-2023 15:52    -
0.8.6/    15-Jun-2023 15:52    -
0.8.7/    15-Jun-2023 15:51    -
0.8.8/    15-Jun-2023 15:50    -
0.9.0/    15-Jun-2023 15:49    -
0.9.1/    15-Jun-2023 15:48    -
0.9.10/   15-Jun-2023 15:42    -
0.9.11/   15-Jun-2023 15:41    -
0.9.2/    15-Jun-2023 15:48    -
0.9.3/    15-Jun-2023 15:47    -
0.9.4/    15-Jun-2023 15:46    -
0.9.5/    15-Jun-2023 15:45    -
0.9.6/    15-Jun-2023 15:44    -
0.9.7/    15-Jun-2023 15:43    -
0.9.8/    15-Jun-2023 15:43    -
0.9.9/    15-Jun-2023 15:42    -
1.0.0/    15-Jun-2023 14:48    -
1.0.1/    15-Jun-2023 14:47    -
1.0.10/   15-Jun-2023 14:40    -
1.0.11/   15-Jun-2023 13:49    -
1.0.2/    15-Jun-2023 13:50    -
1.0.3/    15-Jun-2023 14:46    -
1.0.4/    15-Jun-2023 14:45    -
1.0.5/    15-Jun-2023 14:44    -
1.0.6/    15-Jun-2023 14:43    -
1.0.7/    15-Jun-2023 14:42    -
1.0.8/    15-Jun-2023 14:41    -
1.0.9/    15-Jun-2023 14:40    -
1.1.0/    15-Jun-2023 14:38    -
1.1.1/    15-Jun-2023 14:37    -
1.1.2/    15-Jun-2023 14:37    -
1.1.3/    15-Jun-2023 14:36    -
1.1.4/    15-Jun-2023 14:35    -
1.1.5/    15-Jun-2023 14:35    -
1.1.6/    15-Jun-2023 14:34    -
1.1.7/    24-Mar-2022 17:02    -
1.1.8/    22-Apr-2022 15:25    -
1.1.9/    22-Apr-2022 15:26    -
1.2.0/    19-May-2022 11:20    -
1.2.1/    24-May-2022 13:36    -
1.2.2/    13-Jun-2022 08:19    -
1.2.3/    17-Jun-2022 15:57    -
1.2.4/    29-Jun-2022 23:00    -
1.2.5/    13-Jul-2022 23:58    -
1.2.6/    28-Jul-2022 18:30    -
1.2.7/    17-Aug-2022 10:24    -
1.2.8/    24-Aug-2022 15:37    -
1.2.9/    10-Sep-2022 01:24    -
1.3.0/    21-Sep-2022 16:21    -
1.3.1/    28-Sep-2022 23:35    -
1.3.2/    07-Oct-2022 00:17    -
1.3.3/    19-Oct-2022 20:27    -
1.3.4/    02-Nov-2022 18:35    -
1.3.5/    19-Nov-2022 00:55    -
1.3.6/    30-Nov-2022 22:16    -
1.3.7/    04-Jan-2023 16:27    -
1.3.8/    10-Feb-2023 01:21    -
1.3.9/    16-Feb-2023 14:44    -
1.4.0/    08-Mar-2023 21:36    -
1.4.1/    15-Mar-2023 15:43    -
1.4.2/    16-Mar-2023 14:31    -
1.4.3/    30-Mar-2023 17:40    -
1.4.4/    30-Mar-2023 22:02    -
1.4.5/    14-Apr-2023 17:40    -
1.4.6/    27-Apr-2023 11:24    -
1.5.0/    12-Jun-2023 11:38    -

Artifactory/7.38.7 Server at XXX Port 8081
```

This is because the versions are naively sorted alphabetically by Artifactory.

Since tfenv considers that the latest version is the first entry, we could end up with something like this:

1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.11
1.5.10
1.5.1
1.5.0

tfenv install latest would pickup the version 1.5.9 instead of 1.5.11.

ewanoomen commented 12 months ago

@samuel-phan can you share how you set up the Artifactory repository for tfenv? Thanks

samuel-phan commented 11 months ago

Sorry, I can't because I don't know how it's configured in my company. We have a dedicated team for Artifactory. I'm just a user of it.