softwareupdate --install-rosetta --agree-to-license
mkdir ~/.ssh
cd ~/.ssh
ssh-keygen -t ed25519 -C "$USER"
# Enter a password when prompted
# Send id_ed25519.pub file to group admins.
-
Copy contents of
~/.ssh/id_ed25519.pub
file to the clipboard and add a new SSH key to your GitHub account athttps://github.com/settings/keys
. -
If you will be working on PegasusHub, then generate a new Personal access token from
https://github.com/settings/tokens
withrepo
scope selected.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew tap homebrew/cask
brew tap homebrew/core
brew tap homebrew/services
brew tap pegasus-isi/tools
# On Apple Silicon do not install virtualbox virtualbox-extension-pack
brew install --cask chromedriver docker r vagrant virtualbox virtualbox-extension-pack xquartz zoom zotero
brew install ant ant-contrib coreutils direnv geckodriver git git-lfs graphviz htcondor libyaml maven mysql pyenv pyenv-virtualenv sphinx-doc tox twine-pypi watch wget yarn
brew services start htcondor
git lfs install
sudo git lfs install --system
cat >> ~/.zprofile <<EOF
# ---------
# ISI Setup
# ---------
brewup () {
brew upgrade
brew upgrade --cask \`brew list --cask -1\`
brew cleanup
brew services cleanup
yarn global upgrade
}
pipup () {
for i in \`find ~/.pyenv/versions -type l -depth 1 | sort\`; do
NAME=\`basename $i\`
echo "-- \$NAME --"
pyenv shell \$NAME
pip install -U pip setuptools
pyenv shell --unset
done
}
venvclear () {
for NAME in \$@; do
echo "-- \$NAME --"
pyenv shell \$NAME
pip freeze | cut -d'=' -f1 | cut -d' ' -f1 | grep -vE '(pip|^-e|#)' | xargs pip uninstall -y
pyenv shell --unset
done
}
LIBRARY_PATH=\`brew --prefix openssl\`/lib
LDFLAGS="-L\${LIBRARY_PATH}"
# pyenv
eval "\$(pyenv init --path)"
# pyenv-virtualenv
PYENV_VIRTUALENV_DISABLE_PROMPT=1
# Pegasus disable R builds
PEGASUS_BUILD_R_MODULES=0
PEGASUSHUB_TOKEN="<PERSONAL_ACCESS_TOKEN_FROM_GITHUB_GENERATED_ABOVE>"
export LIBRARY_PATH LDFLAGS PEGASUS_BUILD_R_MODULES PEGASUSHUB_TOKEN PYENV_VIRTUALENV_DISABLE_PROMPT
EOF
# List Python Versions
pyenv install -l | grep -E "^ 3.*"
# Install 3.{5,6,..}.<X>, X is the highest stable version available
pyenv install 3.5.<X>
pyenv install 3.6.<X>
.
.
pyenv install 3.<MAX>.<X>
pyenv virtualenv -p python3 3.7.<X> pytools
pyenv shell pytools
pip install -U pip setuptools wheel autoflake pyupgrade isort black flake8 flake8-bugbear flake8-docstrings mypy pytest tox pre-commit rope
pyenv shell --unset
yarn global add commitizen
# For Pegasus
git clone git@github.com:pegasus-isi/pegasus.git
cd pegasus
# Replace the .1 below with the version installed earlier
pyenv virtualenv -p python3 3.5.1 pegasus-35
pyenv virtualenv -p python3 3.6.1 pegasus-36
pyenv virtualenv -p python3 3.7.1 pegasus-37
pyenv virtualenv -p python3 3.8.1 pegasus-38
pyenv virtualenv -p python3 3.9.1 pegasus-39
pyenv virtualenv -p python3 3.10.1 pegasus-310
pyenv local pegasus-35 pegasus-36 pegasus-37 pegasus-38 pegasus-39 pegasus-310 pytools
docker run -it --rm centos:7 python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass()))'
# Enter your ISI ADS password when prompted
# Send the hashed password to group admins.