Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Reduce system requirements#41

Merged
olivierdagenais merged 8 commits into
masterfrom
relax_compatibility_checks
Apr 19, 2016
Merged

Reduce system requirements#41
olivierdagenais merged 8 commits into
masterfrom
relax_compatibility_checks

Conversation

@olivierdagenais
Copy link
Copy Markdown
Contributor

Now that we have Device Flow that we can fall back to, we don't need to enforce:

  • specific versions of Java (beyond "1.6+")
  • the compatibility of at least one oauth2-useragent provider at:
    • installation time
    • execution time

Manual testing

  1. On a Mac running OS X 10.10.5 (Yosemite) and Apple Java (version 1.6.0_65):
    1. Install Homebrew.

    2. Temporarily inject the changes to /usr/local/Library/Taps/homebrew/homebrew-core/Formula/git-credential-manager.rb (in the homebrew-core Git repo that's cloned as part of installing Homebrew).

    3. Install the (modified) git-credential-manager formula:

      $ brew install git-credential-manager
      ==> Downloading https://github.com/Microsoft/Git-Credential-Manager-for-Mac-and-Linux/releases/download/git-credential-manager-1.6.0/git-credential-manager-1.6.0.jar
      ==> Downloading from https://github-cloud.s3.amazonaws.com/releases/45861018/cdfca056-f58e-11e5-9916-4f6eeaadf169.jar?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20160418%2Fus-east-1%2Fs3%2Faws4_request&X-Am
      ######################################################################## 100.0%
      🍺  /usr/local/Cellar/git-credential-manager/1.6.0: 3 files, 179.2K, built in 2 seconds
      
    4. We know GCM 1.6.0 will refuse to run in install mode without Java 7 (or Java 8) and JavaFX, so we'll uninstall it:

      $ brew uninstall git-credential-manager
      Uninstalling /usr/local/Cellar/git-credential-manager/1.6.0... (3 files, 179.2K)
      
    5. Copy git-credential-manager-1.7.1-SNAPSHOT.jar containing this branch's changes.

    6. Install the GCM: java -jar git-credential-manager-1.7.1-SNAPSHOT.jar install

    7. Perform a Git operation on a Git remote hosted on VSTS and using HTTPS. For example: git clone https://raisajavademo.visualstudio.com/DefaultCollection/_git/DeepSpace

    8. The OAuth 2.0 Device Flow is presented because we're on Java 6. Let's assume it will work and type Ctrl+C to abort it.

  2. On a Mac running OS X 10.10.5 (Yosemite) and Oracle Java (version 1.7.0_80-b15):
    1. Copy git-credential-manager-1.7.1-SNAPSHOT.jar containing this branch's changes.
    2. Install the GCM: java -jar git-credential-manager-1.7.1-SNAPSHOT.jar install
    3. Perform a Git operation on a Git remote hosted on VSTS and using HTTPS. For example: git clone https://raisajavademo.visualstudio.com/DefaultCollection/_git/DeepSpace
    4. The JavaFX web browser pop-up appears. We already know how to handle this.
  3. On a Mac running OS X 10.11 (El Capitan) and Oracle Java (version 7):
    1. Copy git-credential-manager-1.7.1-SNAPSHOT.jar
    2. Install the GCM: java -jar git-credential-manager-1.7.1-SNAPSHOT.jar install
    3. Perform a Git operation on a Git remote hosted on VSTS and using HTTPS. For example: git clone https://raisajavademo.visualstudio.com/DefaultCollection/_git/DeepSpace
    4. Prior to Remove support for Java 7 on Mac OS X 10.11 and up #32, the GCM would have terminated abruptly due to a crash in a sub-process. After Remove support for Java 7 on Mac OS X 10.11 and up #32, self-installation would have been halted due to the known incompatibility of JavaFX in Java 7 on El Capitan. Now the GCM happily proceeds with the OAuth 2.0 Device Flow.
    5. Authenticate as instructed and watch the Git operation succeed.
  4. On an Ubuntu 14.04.4 LTS server VM (headless) running the system OpenJDK (version 1.7.0_95):
    1. Copy git-credential-manager-1.7.1-SNAPSHOT.jar
    2. Install the GCM: java -jar git-credential-manager-1.7.1-SNAPSHOT.jar install
    3. Perform a Git operation on a Git remote hosted on VSTS and using HTTPS. For example: git clone https://raisajavademo.visualstudio.com/DefaultCollection/_git/DeepSpace
    4. The OAuth 2.0 Device Flow is presented.
    5. Authenticate as instructed and watch the Git operation succeed.
  5. On a Fedora 22 VM with a desktop environment and the system OpenJDK (version 1.8.0_77):
    1. Copy git-credential-manager-1.7.1-SNAPSHOT.jar containing this branch's changes.
    2. Install the GCM: java -jar git-credential-manager-1.7.1-SNAPSHOT.jar install
    3. Perform a Git operation on a Git remote hosted on VSTS and using HTTPS. For example: git clone https://raisajavademo.visualstudio.com/DefaultCollection/_git/DeepSpace
    4. The OAuth 2.0 Device Flow is presented because OpenJDK 8 doesn't ship with JavaFX. Let's assume it will work and type Ctrl+C to abort it.
  6. On a Fedora 22 VM with a desktop environment and a custom build of OpenJDK with OpenJFX (version 1.8.0_66-b27):
    1. Copy git-credential-manager-1.7.1-SNAPSHOT.jar containing this branch's changes.
    2. Install the GCM: ~/oss/openjfx/build/sdk/rt/bin/java -jar git-credential-manager-1.7.1-SNAPSHOT.jar install
    3. Perform a Git operation on a Git remote hosted on VSTS and using HTTPS. For example: git clone https://raisajavademo.visualstudio.com/DefaultCollection/_git/DeepSpace
    4. The JavaFX web browser pop-up appears.

Mission accomplished!

@olivierdagenais olivierdagenais merged commit 84a8c88 into master Apr 19, 2016
@olivierdagenais olivierdagenais deleted the relax_compatibility_checks branch April 19, 2016 03:26
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants