The Wayback Machine - https://web.archive.org/web/20201211001943/https://github.com/github/backup-utils/pull/500
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

check dependency versions and warn if they are outdated #500

Closed
wants to merge 1 commit into from

Conversation

@larsxschneider
Copy link
Member

@larsxschneider larsxschneider commented Jun 12, 2019

I picked the checked versions somewhat arbitrarily based on the versions
shipped with Debian 9 (Stretch). The intention is to encourage users to
update. If these versions are not met, then everything works as before
as we only print a warning if the versions are not met.

Please note: This commit introduces Perl as dependency. However, this
should not be a problem as Git depends on Perl as well. Since Git is
required by backup-utils, we can assume that Perl is installed on the
backup host.

I picked the checked versions somewhat arbitrarily based on the versions
shipped with Debian 9 (Stretch). The intention is to encourage users to
update. If these versions are not met, then everything works as before
as we only print a warning if the versions are not met.

Please note: This commit introduces Perl as dependency. However, this
should not be a problem as Git depends on Perl as well. Since Git is
required by backup-utils, we can assume that Perl is installed on the
backup host.
@larsxschneider larsxschneider requested review from lildude and snh Jun 12, 2019
@lildude lildude requested a review from Jun 12, 2019
@anth1y
anth1y approved these changes Jun 12, 2019
Copy link

@anth1y anth1y left a comment

lg but my perl comprehension isn't quite up to snuff. But i'm guessing based on the regex that we're just matching against the inputted $versions, if so not bad ...

@@ -6,7 +6,7 @@ storage and must have network connectivity with the GitHub Enterprise Server app
## Backup host requirements

Backup host software requirements are modest: Linux or other modern Unix operating
system with [bash][1], [git][2], [OpenSSH][3] 5.6 or newer, and [rsync][4] v2.6.4 or newer.
system with [bash][1], [git][2], [OpenSSH][3] 7.4 or newer, and [rsync][4] v3.1.2 or newer.

This comment has been minimized.

@lildude

lildude Jun 12, 2019
Member

I think you're going to need to explicitly call out Perl now as you are directly using it.

This comment has been minimized.

@lildude

lildude Jun 12, 2019
Member

Additionally, other than encouraging a user to use later versions, is there any specific reason for these versions? My fear is seeing new version requirements is going to prompt support tickets or issues asking why.

I suspect customers using RHEL (and there are quite a lot) are most likely to suddenly start seeing these version messages as they tend to be using older versions of each of these pkgs.

It's worth stating that the aim of these versions is to identify the minimum required versions.

This comment has been minimized.

@larsxschneider

larsxschneider Jun 12, 2019
Author Member

The main reason for all this is to ensure --ignore-missing-args is available in rsync. The flag was introduced in rsync version 3.1.0.

If the flag is not available, ghe-backup suppresses exits with code 23. That can mask potentially fatal rsync errors.


Do you think it would make sense to use RHEL 7 or something as base for the minimum versions except rsync?

This comment has been minimized.

@lildude

lildude Jun 12, 2019
Member

The main reason for all this is to ensure --ignore-missing-args is available in rsync. The flag was introduced in rsync version 3.1.0.

If the flag is not available, ghe-backup suppresses exits with code 23. That can mask potentially fatal rsync errors.

🤔 I recall that change being introduced but I don't recall any scenarios of legit fatal errors this would suppress, which is why I think we went for that solution.

What fatal rsync errors is this suppressing?

If these really are fatal errors, then bumping rsync's minimum requirement makes sense. If there's no specific reason for the others, I don't think we should change their requirements.

Do you think it would make sense to use RHEL 7 or something as base for the minimum versions except rsync?

No. I think it should be the minimum versions required for the functionality we require, regardless of the OS revision. We deliberately don't make any OS recommendations because we don't and can't test against all of them.

This comment has been minimized.

@lildude

lildude Jun 12, 2019
Member

Additionally, if we're going to bump the minimum rsync version because of the suppression of legitimate fatal errors, I think we should make this a hard requirement and remove all the workarounds for suppressing exit code 23 too.

check_version bash --version 4.4.12
check_version git --version 2.11.0
check_version rsync --version 3.1.2
check_version ssh -V 7.4

This comment has been minimized.

@lildude

lildude Jun 12, 2019
Member

If this is not a hard requirement, we should hide these unless using verbose output.

Copy link
Member

@lildude lildude left a comment

Thinking about this further, unless we have a specific requirement for these versions, I'm not sure this is something we should be doing. The versions have historically always been the minimum requirements to ensure all the functionality we require is available whilst maintaining the greatest compatibility across *nix hosts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants
You can’t perform that action at this time.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.