mirror of
https://github.com/cisagov/log4j-affected-db.git
synced 2024-11-22 08:30:48 +00:00
Update contributing instructions
Given the pared down state of the the repository we must update the contributing instructions to mirror the new state.
This commit is contained in:
parent
4fede9f453
commit
4e79802a04
2 changed files with 6 additions and 207 deletions
|
@ -15,7 +15,7 @@ all of which should be in this repository.
|
||||||
|
|
||||||
If you want to report a bug or request a new feature, the most direct
|
If you want to report a bug or request a new feature, the most direct
|
||||||
method is to [create an
|
method is to [create an
|
||||||
issue](https://github.com/cisagov/skeleton-generic/issues) in this
|
issue](https://github.com/cisagov/log4j-affected-db/issues) in this
|
||||||
repository. We recommend that you first search through existing
|
repository. We recommend that you first search through existing
|
||||||
issues (both open and closed) to check if your particular issue has
|
issues (both open and closed) to check if your particular issue has
|
||||||
already been reported. If it has then you might want to add a comment
|
already been reported. If it has then you might want to add a comment
|
||||||
|
@ -25,7 +25,7 @@ one.
|
||||||
## Pull requests ##
|
## Pull requests ##
|
||||||
|
|
||||||
If you choose to [submit a pull
|
If you choose to [submit a pull
|
||||||
request](https://github.com/cisagov/skeleton-generic/pulls), you will
|
request](https://github.com/cisagov/log4j-affected-db/pulls), you will
|
||||||
notice that our continuous integration (CI) system runs a fairly
|
notice that our continuous integration (CI) system runs a fairly
|
||||||
extensive set of linters and syntax checkers. Your pull request may
|
extensive set of linters and syntax checkers. Your pull request may
|
||||||
fail these checks, and that's OK. If you want you can stop there and
|
fail these checks, and that's OK. If you want you can stop there and
|
||||||
|
@ -46,17 +46,6 @@ There are a few ways to do this, but we prefer to use
|
||||||
create and manage a Python virtual environment specific to this
|
create and manage a Python virtual environment specific to this
|
||||||
project.
|
project.
|
||||||
|
|
||||||
If you already have `pyenv` and `pyenv-virtualenv` configured you can
|
|
||||||
take advantage of the `setup-env` tool in this repo to automate the
|
|
||||||
entire environment configuration process.
|
|
||||||
|
|
||||||
```console
|
|
||||||
./setup-env
|
|
||||||
```
|
|
||||||
|
|
||||||
Otherwise, follow the steps below to manually configure your
|
|
||||||
environment.
|
|
||||||
|
|
||||||
#### Installing and using `pyenv` and `pyenv-virtualenv` ####
|
#### Installing and using `pyenv` and `pyenv-virtualenv` ####
|
||||||
|
|
||||||
On the Mac, we recommend installing [brew](https://brew.sh/). Then
|
On the Mac, we recommend installing [brew](https://brew.sh/). Then
|
||||||
|
@ -135,10 +124,10 @@ can create and configure the Python virtual environment with these
|
||||||
commands:
|
commands:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
cd skeleton-generic
|
cd log4j-affected-db
|
||||||
pyenv virtualenv <python_version_to_use> skeleton-generic
|
pyenv virtualenv <python_version_to_use> log4j-affected-db
|
||||||
pyenv local skeleton-generic
|
pyenv local log4j-affected-db
|
||||||
pip install --requirement requirements-dev.txt
|
pip install --upgrade pip setuptools wheel pre-commit
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Installing the pre-commit hook ####
|
#### Installing the pre-commit hook ####
|
||||||
|
|
190
setup-env
190
setup-env
|
@ -1,190 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -o nounset
|
|
||||||
set -o errexit
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
USAGE=$(
|
|
||||||
cat << 'END_OF_LINE'
|
|
||||||
Configure a development environment for this repository.
|
|
||||||
|
|
||||||
It does the following:
|
|
||||||
- Verifies pyenv and pyenv-virtualenv are installed.
|
|
||||||
- Creates a Python virtual environment.
|
|
||||||
- Configures the activation of the virtual enviroment for the repo directory.
|
|
||||||
- Installs the requirements needed for development.
|
|
||||||
- Installs git pre-commit hooks.
|
|
||||||
- Configures git upstream remote "lineage" repositories.
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
setup-env [options] [virt_env_name]
|
|
||||||
setup-env (-h | --help)
|
|
||||||
|
|
||||||
Options:
|
|
||||||
-f --force Delete virtual enviroment if it already exists.
|
|
||||||
-h --help Show this message.
|
|
||||||
-i --install-hooks Install hook environments for all environments in the
|
|
||||||
pre-commit config file.
|
|
||||||
|
|
||||||
END_OF_LINE
|
|
||||||
)
|
|
||||||
|
|
||||||
# Flag to force deletion and creation of virtual environment
|
|
||||||
FORCE=0
|
|
||||||
|
|
||||||
# Positional parameters
|
|
||||||
PARAMS=""
|
|
||||||
|
|
||||||
# Parse command line arguments
|
|
||||||
while (("$#")); do
|
|
||||||
case "$1" in
|
|
||||||
-f | --force)
|
|
||||||
FORCE=1
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-h | --help)
|
|
||||||
echo "${USAGE}"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
-i | --install-hooks)
|
|
||||||
INSTALL_HOOKS=1
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-*) # unsupported flags
|
|
||||||
echo "Error: Unsupported flag $1" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*) # preserve positional arguments
|
|
||||||
PARAMS="$PARAMS $1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# set positional arguments in their proper place
|
|
||||||
eval set -- "$PARAMS"
|
|
||||||
|
|
||||||
# Check to see if pyenv is installed
|
|
||||||
if [ -z "$(command -v pyenv)" ] || [ -z "$(command -v pyenv-virtualenv)" ]; then
|
|
||||||
echo "pyenv and pyenv-virtualenv are required."
|
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
||||||
cat << 'END_OF_LINE'
|
|
||||||
|
|
||||||
On the Mac, we recommend installing brew, https://brew.sh/. Then installation
|
|
||||||
is as simple as `brew install pyenv pyenv-virtualenv` and adding this to your
|
|
||||||
profile:
|
|
||||||
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
eval "$(pyenv virtualenv-init -)"
|
|
||||||
|
|
||||||
END_OF_LINE
|
|
||||||
|
|
||||||
fi
|
|
||||||
cat << 'END_OF_LINE'
|
|
||||||
For Linux, Windows Subsystem for Linux (WSL), or on the Mac (if you don't want
|
|
||||||
to use "brew") you can use https://github.com/pyenv/pyenv-installer to install
|
|
||||||
the necessary tools. Before running this ensure that you have installed the
|
|
||||||
prerequisites for your platform according to the pyenv wiki page,
|
|
||||||
https://github.com/pyenv/pyenv/wiki/common-build-problems.
|
|
||||||
|
|
||||||
On WSL you should treat your platform as whatever Linux distribution you've
|
|
||||||
chosen to install.
|
|
||||||
|
|
||||||
Once you have installed "pyenv" you will need to add the following lines to
|
|
||||||
your ".bashrc":
|
|
||||||
|
|
||||||
export PATH="$PATH:$HOME/.pyenv/bin"
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
eval "$(pyenv virtualenv-init -)"
|
|
||||||
END_OF_LINE
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
set +o nounset
|
|
||||||
# Determine the virtual environment name
|
|
||||||
if [ "$1" ]; then
|
|
||||||
# Use the user-provided environment name
|
|
||||||
env_name=$1
|
|
||||||
else
|
|
||||||
# Set the environment name to the last part of the working directory.
|
|
||||||
env_name=${PWD##*/}
|
|
||||||
fi
|
|
||||||
set -o nounset
|
|
||||||
|
|
||||||
# Remove any lingering local configuration.
|
|
||||||
if [ $FORCE -ne 0 ]; then
|
|
||||||
rm -f .python-version
|
|
||||||
pyenv virtualenv-delete --force "${env_name}" || true
|
|
||||||
elif [[ -f .python-version ]]; then
|
|
||||||
cat << 'END_OF_LINE'
|
|
||||||
An existing .python-version file was found. Either remove this file yourself
|
|
||||||
or re-run with --force option to have it deleted along with the associated
|
|
||||||
virtual environment.
|
|
||||||
|
|
||||||
rm .python-version
|
|
||||||
|
|
||||||
END_OF_LINE
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create a new virtual environment for this project
|
|
||||||
if ! pyenv virtualenv "${env_name}"; then
|
|
||||||
cat << END_OF_LINE
|
|
||||||
An existing virtual environment named $env_name was found. Either delete this
|
|
||||||
environment yourself or re-run with --force option to have it deleted.
|
|
||||||
|
|
||||||
pyenv virtualenv-delete ${env_name}
|
|
||||||
|
|
||||||
END_OF_LINE
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set the local application-specific Python version(s) by writing the
|
|
||||||
# version name to a file named `.python-version'.
|
|
||||||
pyenv local "${env_name}"
|
|
||||||
|
|
||||||
# Upgrade pip and friends
|
|
||||||
python3 -m pip install --upgrade pip setuptools wheel
|
|
||||||
|
|
||||||
# Find a requirements file (if possible) and install
|
|
||||||
for req_file in "requirements-dev.txt" "requirements-test.txt" "requirements.txt"; do
|
|
||||||
if [[ -f $req_file ]]; then
|
|
||||||
pip install --requirement $req_file
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Install git pre-commit hooks now or later.
|
|
||||||
pre-commit install ${INSTALL_HOOKS:+"--install-hooks"}
|
|
||||||
|
|
||||||
# Setup git remotes from lineage configuration
|
|
||||||
# This could fail if the remotes are already setup, but that is ok.
|
|
||||||
set +o errexit
|
|
||||||
|
|
||||||
eval "$(
|
|
||||||
python3 << 'END_OF_LINE'
|
|
||||||
from pathlib import Path
|
|
||||||
import yaml
|
|
||||||
import sys
|
|
||||||
|
|
||||||
LINEAGE_CONFIG = Path(".github/lineage.yml")
|
|
||||||
|
|
||||||
if not LINEAGE_CONFIG.exists():
|
|
||||||
print("No lineage configuration found.", file=sys.stderr)
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
with LINEAGE_CONFIG.open("r") as f:
|
|
||||||
lineage = yaml.safe_load(stream=f)
|
|
||||||
|
|
||||||
if lineage["version"] == "1":
|
|
||||||
for parent_name, v in lineage["lineage"].items():
|
|
||||||
remote_url = v["remote-url"]
|
|
||||||
print(f"git remote add {parent_name} {remote_url};")
|
|
||||||
print(f"git remote set-url --push {parent_name} no_push;")
|
|
||||||
else:
|
|
||||||
print(f'Unsupported lineage version: {lineage["version"]}', file=sys.stderr)
|
|
||||||
END_OF_LINE
|
|
||||||
)"
|
|
||||||
|
|
||||||
# Qapla
|
|
||||||
echo "Success!"
|
|
Loading…
Reference in a new issue