GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Make install scripts more consistent over different operating systems by Geweldig · Pull Request #9071 · PowerShell/PowerShell

Conversation

@Geweldig

@Geweldig Bram Crielaard (Geweldig) commented Mar 6, 2019

Copy link
Copy Markdown
Contributor

PR Summary

I noticed a couple of inconsistencies when reading through the install bash scripts.

  • Make documentation for switches consistent over all files.
  • Replace all sed implementations of lowercase with a more maintainable tr implementation.
  • Set the OS variable in every install script, making it so previously unused checks are actually used.
  • Exit with a non-zero exit code when the script reaches an illegal state.

PR Context

A lot of people, including myself, read the install scripts before executing them. While doing so I noticed they contained inconsistencies. For example, certain flags you can pass to the install script were either undocumented or had an incorrect description. This PR fixes some of these inconsistencies, which should make them easier to maintain and easier to read.

PR Checklist

  • PR has a meaningful title
    • Use the present tense and imperative mood when describing your changes
  • Summarized changes
  • Change is not breaking
  • Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
  • This PR is ready to merge and is not Work in Progress.
    • If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.
  • User-facing changes
    • Not Applicable
    • OR
    • Documentation needed
      • Issue filed:
  • Testing - New and feature
    • N/A or can only be tested interactively
    • OR
    • Make sure you've added a new test if existing tests do not effectively test the code changed
      • Add [feature] to your commit messages if the change is significant or affects feature tests

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Bram Crielaard (Geweldig) added 5 commits March 6, 2019 11:52
@Geweldig
Fix incorrect flags and make documentation consistent
693f420
@Geweldig
Fix exit codes, make checks consistent
5325504
@Geweldig
Remove commented code
d1d14be
@Geweldig
Fix grammar error
e1666d6
@Geweldig
Make lowercase function consistent over all files
b0bb14a
@Geweldig
Bram Crielaard (Geweldig) requested review from Paul Higinbotham (PaulHigin), Travis Plunk (TravisEz13), Aditya Patwardhan (adityapatwardhan), Andrew (anmenaga) and Dongbo Wang (daxian-dbw) as code owners March 6, 2019 11:57
@msftclas

Microsoft Contribution License Agreements (msftclas) commented Mar 6, 2019 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

CLA assistant check
All CLA requirements met.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig Bram Crielaard (Geweldig) changed the title Make install scripts more consistent over different operating systems WIP: Make install scripts more consistent over different operating systems Mar 6, 2019
Bram Crielaard (Geweldig) added 2 commits March 6, 2019 13:36
@Geweldig
Remove legacy backticks
26ce472
@Geweldig
Fix tr escaping
742c9f2
@Geweldig Bram Crielaard (Geweldig) changed the title WIP: Make install scripts more consistent over different operating systems Make install scripts more consistent over different operating systems Mar 6, 2019
@Geweldig Bram Crielaard (Geweldig) changed the title Make install scripts more consistent over different operating systems WIP: Make install scripts more consistent over different operating systems Mar 6, 2019
Bram Crielaard (Geweldig) added 3 commits March 6, 2019 14:53
@Geweldig
Resolve all Shellcheck warnings in install-powershell.sh
ad28ee9
@Geweldig
Fix all shellcheck errors for installpsh-amazonlinux.sh
12528e9
@Geweldig
Resolve all ShellCheck errors
d5301c9
@Geweldig

Bram Crielaard (Geweldig) commented Mar 6, 2019 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

I used ShellCheck as a linter locally, as it seemed to create the same output as Codacy. I also noticed some of the files contained invalid bash (if then if instead of if then fi), which has also been resolved.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig Bram Crielaard (Geweldig) changed the title WIP: Make install scripts more consistent over different operating systems Make install scripts more consistent over different operating systems Mar 6, 2019
RDIL
Reece Dunham (RDIL) approved these changes Mar 6, 2019
View reviewed changes

@RDIL Reece Dunham (RDIL) left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Geweldig and Exclaminator reacted with thumbs up emoji
All reactions
  • 👍 2 reactions
iSazonov
Ilya (iSazonov) reviewed Mar 6, 2019
View reviewed changes
Comment thread tools/installpsh-debian.sh Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/installpsh-redhat.sh Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/installpsh-suse.sh Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/installpsh-suse.sh Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/install-powershell-readme.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/install-powershell-readme.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/install-powershell.sh Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/installpsh-amazonlinux.sh Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread tools/installpsh-amazonlinux.sh Resolved

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov Ilya (iSazonov) added the CL-Tools Indicates that a PR should be marked as a tools change in the Change Log label Mar 6, 2019
@Geweldig
Fix VSCode and Amazon Linux naming
0ed8ffa
@Geweldig

Bram Crielaard (Geweldig) commented Mar 6, 2019

Copy link
Copy Markdown
Contributor Author

Ilya (@iSazonov) thanks for the great suggestions! I was not entirely sure about the correct casing for Visual Studio Code, as I could find it as VSCode, vscode and VS Code. Because of this I decided to just leave it all lowercase. I have implemented your suggestions, thanks for the review!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig

Bram Crielaard (Geweldig) commented Mar 6, 2019

Copy link
Copy Markdown
Contributor Author

It appears the connection to windowsitpro.com has timed out, which is why the static analysis has failed. The next connection to it however does finish successfully. Should the CI be restarted or is this not an issue?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Mar 6, 2019

Copy link
Copy Markdown
Collaborator

Restart CI-static-analysis.

Geweldig reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13

Travis Plunk (TravisEz13) commented Mar 8, 2019

Copy link
Copy Markdown
Member

Darwin (@DarwinJS) Would you mind giving this a first pass?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13 Travis Plunk (TravisEz13) self-assigned this Mar 8, 2019
@TravisEz13
Travis Plunk (TravisEz13) force-pushed the clean_install_scripts branch from 478a6d6 to 9b9b36b Compare March 8, 2019 03:05
Travis Plunk (TravisEz13) added 2 commits March 7, 2019 19:10
@TravisEz13
use images with powershell already in them
6d50643
@TravisEz13
Add comment about broken distros
d97396c
@TravisEz13

Travis Plunk (TravisEz13) commented Mar 8, 2019

Copy link
Copy Markdown
Member

Okay... I tried to add support to the CI for a representative portion of the distros.

AmazonLinux image failed because it was missing adduser. (I'll ask in the docker repo if we want to add this to get this scenario working.)

OpenSUSE failed because it Azure DevOps could not find pwsh (I can fix this later)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13

Travis Plunk (TravisEz13) commented Mar 8, 2019

Copy link
Copy Markdown
Member

So CentOS testing was the only distro added. cc Aditya Patwardhan (@adityapatwardhan)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@DarwinJS

Darwin (DarwinJS) commented Mar 8, 2019

Copy link
Copy Markdown
Contributor

Travis - Amazon optimizes every purpose specific use of Amazon Linux and of course specifically the one for containers.

Since the size of the Amazon built Amazon Linux containers affects their server density globally across all customers, it will likely be necessary to add back what you need to get CI running.

PS For my local testing of Amazon Linux 2 - I have actually created some antipattern containers that have the entire EC2 build version: https://cloudywindows.io/post/three-amazon-linux-2-containers-for-testing/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@DarwinJS

Darwin (DarwinJS) commented Mar 8, 2019

Copy link
Copy Markdown
Contributor

Bram Crielaard (@Geweldig) - did you test your changes on the major distros?
Travis Plunk (@TravisEz13) - how do we know what distros these install scripts are tested on - is there a manifest somewhere?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig

Bram Crielaard (Geweldig) commented Mar 8, 2019 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

Darwin (@DarwinJS) I have verified it to be working for the following operating systems:

  • Centos7
  • Ubuntu 18.04
  • Debian 9 (Assuming lsb-release has been shipped with it, might be worthwhile to look at an alternative check as it is not always included)
  • Fedora 29
  • macOS 12

Which should cover the major distros. I have tried the installer on openSUSE Leap 15 (as 42.3 is reaching EOL in July) where I have not been able to get it to work. However, when trying to run the script which is currently on master I couldn't get it to work either. This problem is twofold, as the OS is not recognized by the main script and the openSUSE installer which is currently provided contains invalid bash. Unfortunately I am not familiar with openSUSE and would need some time to figure out why it currently is not recognized by the script on master and find a robust solution to recognize the operating system.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

TravisEz13
Travis Plunk (TravisEz13) reviewed Mar 8, 2019
View reviewed changes
Comment thread tools/install-powershell.sh

if [[ "'$*'" =~ appimage ]] ; then
if [ -f $SCRIPTFOLDER/appimage.sh ]; then
if [ -f "$SCRIPTFOLDER/appimage.sh" ]; then

@TravisEz13 Travis Plunk (TravisEz13) Mar 8, 2019

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have not produced an appimage in a long time. This in not blocking, but I think this code can either go, or be replaced with a check for snapd and then use snapd

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@Geweldig Bram Crielaard (Geweldig) Mar 8, 2019

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding a check for snapd sounds like a good replacement, but might not be very robust as snapd is not yet standard in a lot of distributions (I believe it's currently only shipped with Ubuntu). Because of this I would argue that deleting the code for appimage would make more sense, and implementing a snap install when Snappy is more mature/widely used.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

TravisEz13 reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
TravisEz13
Travis Plunk (TravisEz13) approved these changes Mar 8, 2019
View reviewed changes
@TravisEz13
Travis Plunk (TravisEz13) merged commit 7031954 into PowerShell:master Mar 8, 2019
@TravisEz13

Travis Plunk (TravisEz13) commented Mar 8, 2019

Copy link
Copy Markdown
Member

Darwin (@DarwinJS) The CI YML for testing these scripts is here:

PowerShell/.vsts-ci/install-ps.yml

Lines 45 to 64 in 7031954

pool: Hosted Ubuntu 1604
# amazonlinux was missing adduser
- template: templates/install-ps-phase.yml
parameters:
scriptName: ./tools/install-powershell.sh
jobName: InstallPowerShellCentOS
pool: Hosted Ubuntu 1604
container: mcr.microsoft.com/powershell:centos-7
# VSTS could not find pwsh in:
# mcr.microsoft.com/powershell:opensuse-42.3
# could not repo locally
- template: templates/install-ps-phase.yml
parameters:
scriptName: ./tools/install-powershell.sh
jobName: InstallPowerShellMacOS
pool: Hosted macOS

NOTE: where a container is listed, it overrides the pool. Like on line 54, to switch to CentOS.

Currently Ubuntu 16.04, CentOS 7, and macOS Mojave are in the list.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig Bram Crielaard (Geweldig) mentioned this pull request Mar 9, 2019
Remove AppImage from tools #9100
Merged
7 of 11 tasks
@Geweldig
Bram Crielaard (Geweldig) deleted the clean_install_scripts branch March 12, 2019 07:53
@TravisEz13 Travis Plunk (TravisEz13) mentioned this pull request Apr 7, 2019
installpsh-amazonlinux.sh not detecting amazon linux #9285
Closed
@DarwinJS

Darwin (DarwinJS) commented Jun 19, 2019

Copy link
Copy Markdown
Contributor

Is it ok if I reverse these changes?
Amazon Linux 2 install is not working whether using the stand alone script or the main one. I'm not sure how many more are doing that?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Jun 20, 2019

Copy link
Copy Markdown
Collaborator

Why revert? Do you know the issue root cause? Is it possible to fix?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@DarwinJS

Darwin (DarwinJS) commented Jun 20, 2019 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

I don't know the root cause, but I let this slip through without realizing the distro fingerprinting had been altered to DEPEND on the parent script being called for each distro specific script. I had specifically designed it to not depend - the parent script was a convenience when wanting to target distros homogenously.

But then I wanted to get off using my original merge branch for linuxmint support which still works for Amazon Linux - and this one does not. (I use it here to create Amazon LInux 2 containers that have PowerShell: https://gitlab.com/DarwinJS/amazon-linux-2-container-with-powershell/blob/master/Dockerfile#L4)

So this all points to the changes not being comprehensively tested - something I was doing whenever I made broad-based changes.

Since these changes seemed to be mainly making the code prettier - not more functional - I'd rather revert to a known working state that I had tested across all distros - than try to fix and retest on all distros. I really don't have the time for the latter.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Jun 20, 2019

Copy link
Copy Markdown
Collaborator

Bram Crielaard (@Geweldig) Travis Plunk (@TravisEz13) Thoughts?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@DarwinJS

Darwin (DarwinJS) commented Jun 20, 2019

Copy link
Copy Markdown
Contributor

Darwin (@DarwinJS) I have verified it to be working for the following operating systems:

  • Centos7
  • Ubuntu 18.04
  • Debian 9 (Assuming lsb-release has been shipped with it, might be worthwhile to look at an alternative check as it is not always included)
  • Fedora 29
  • macOS 12

Which should cover the major distros. I have tried the installer on openSUSE Leap 15 (as 42.3 is reaching EOL in July) where I have not been able to get it to work. However, when trying to run the script which is currently on master I couldn't get it to work either. This problem is twofold, as the OS is not recognized by the main script and the openSUSE installer which is currently provided contains invalid bash. Unfortunately I am not familiar with openSUSE and would need some time to figure out why it currently is not recognized by the script on master and find a robust solution to recognize the operating system.

OK, then maybe the solution is to consider Amazon Linux 2 a major distro and test and debug for it. Not only is Amazon treating it this way, but it was the first distro to have prebuilt cloud image template (AMIs) from the cloud provider with .NET Core and PowerShell Core preinstalled. That is a full Ec2 image, I want to use amazon linux 2 w/ PowerShell Core under Gitlab CI on Linux containers - so still need installation support.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig

Bram Crielaard (Geweldig) commented Jun 20, 2019

Copy link
Copy Markdown
Contributor Author

Darwin (@DarwinJS) I indeed didn't test the install script on Amazon Linux 2, as I did not have access to a build environment for it. However, I believe the changes made to the install script shouldn't have broken anything as they only cleaned up unused and broken variables, but I'm obviously wrong. All changes which I believe could break the build on Linux, should also break all other scripts which we have tested to be working.

Do you have a specific error so we can pinpoint where the script goes wrong?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Jun 20, 2019

Copy link
Copy Markdown
Collaborator

I have concerns about the rollback since the PR has been merged for a long time (we have a release after that).

I did not have access to a build environment for it.

Maybe you could cooperate with Darwin (@DarwinJS) directly?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@DarwinJS

Darwin (DarwinJS) commented Jun 20, 2019

Copy link
Copy Markdown
Contributor

The following Docker commands will let you easily test:

# This Works:
docker run -v -it amazonlinux /bin/bash -c "curl -s https://raw.githubusercontent.com/DarwinJS/PowerShell/installpsh-debian-support-for-linuxmint/tools/installpsh-amazonlinux.sh | bash ; pwsh"

# This Does Not:
docker run -v -it amazonlinux /bin/bash -c "curl -s https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/installpsh-amazonlinux.sh | bash ; pwsh"
Geweldig reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig

Bram Crielaard (Geweldig) commented Jun 20, 2019

Copy link
Copy Markdown
Contributor Author

Ah I see what the problem is, I rewrote the OS checks in a single script and copied them over all other scripts. However, the script I originally based it on seems to not have included the check for amazonlinux. Not sure how I missed that, but it shouldn't be difficult to fix.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Geweldig Bram Crielaard (Geweldig) mentioned this pull request Jun 20, 2019
Fix amazonlinux install script #9967
Merged
7 of 11 tasks
@Geweldig

Bram Crielaard (Geweldig) commented Jun 20, 2019

Copy link
Copy Markdown
Contributor Author

Darwin (@DarwinJS) I have opened #9967 to fix this issue, I'm currently verifying the install scripts again on all different operating systems. This has resolved the problem for amazon linux.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13

Travis Plunk (TravisEz13) commented Jun 20, 2019

Copy link
Copy Markdown
Member

Ilya (@iSazonov) Darwin (@DarwinJS) Bram Crielaard (@Geweldig) We have started to move the packaging/installation tools into separate repos that are maintained by the people that care about that tool. Honestly, long term I think we should do the same thing here. We could keep the main script with a warning to migrate.

cc Steve Lee (@SteveL-MSFT)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@iSazonov

Ilya (iSazonov) commented Jun 20, 2019

Copy link
Copy Markdown
Collaborator

Travis Plunk (@TravisEz13) Could you please reference the new repo?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@TravisEz13

Travis Plunk (TravisEz13) commented Jun 20, 2019

Copy link
Copy Markdown
Member

Ilya (@iSazonov) This is a concept. There is no current. But Docker and Snap have been separated, if that is what you are talking about.

iSazonov reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Thatgfsj (Thatgfsj) pushed a commit to Thatgfsj-contribs/PowerShell that referenced this pull request Aug 6, 2026
@Geweldig @TravisEz13
Make install scripts more consistent over different operating systems (…
e928d58
…PowerShell#9071)

I noticed a couple of inconsistencies when reading through the install bash scripts. 

- Make documentation for switches consistent over all files.
- Replace all `sed` implementations of `lowercase` with a more maintainable `tr` implementation.
- Set the `OS` variable in every install script, making it so previously unused checks are actually used.
- Exit with a non-zero exit code when the script reaches an illegal state.


## PR Context

A lot of people, including myself, read the install scripts before executing them. While doing so I noticed they contained inconsistencies. For example, certain flags you can pass to the install script were either undocumented or had an incorrect description. This PR fixes some of these inconsistencies, which should make them easier to maintain and easier to read.

Co-authored-by: Travis Plunk <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@iSazonov Ilya (iSazonov) iSazonov left review comments
@TravisEz13 Travis Plunk (TravisEz13) TravisEz13 approved these changes
@adityapatwardhan Aditya Patwardhan (adityapatwardhan) Awaiting requested review from adityapatwardhan
@anmenaga Andrew (anmenaga) Awaiting requested review from anmenaga
@daxian-dbw Dongbo Wang (daxian-dbw) Awaiting requested review from daxian-dbw
@PaulHigin Paul Higinbotham (PaulHigin) Awaiting requested review from PaulHigin
+1 more reviewer
@RDIL Reece Dunham (RDIL) RDIL approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@TravisEz13 Travis Plunk (TravisEz13)

Labels

CL-Tools Indicates that a PR should be marked as a tools change in the Change Log

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

6 participants

@Geweldig @msftclas @iSazonov @TravisEz13 @DarwinJS @RDIL
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.