datasnakes / beRi

beRi "beri environments for R installations" is an R environment, R installation, and R package management system for R
https://datasnakes.github.io/get-beri/
MIT License
14 stars 0 forks source link

Main Commands and General Options of pip for beRi. #1

Closed grabear closed 6 years ago

grabear commented 6 years ago

Use this issue to discuss beRi's command line interface. Since beRi will be modeled after python's PIP, I've added the pip --help output below.

pips primary commands:

Usage:
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  list                        List installed packages.
  show                        Show information about installed packages.
  check                       Verify installed packages have compatible dependencies.
  search                      Search PyPI for packages.
  wheel                       Build wheels from your requirements.
  hash                        Compute hashes of package archives.
  completion                  A helper command used for command completion.
  help                        Show help for commands.

pip's general options (which can be used with every command?):

General Options:
  -h, --help                  Show help.
  --isolated                  Run pip in an isolated mode, ignoring
                              environment variables and user configuration.
  -v, --verbose               Give more output. Option is additive, and can be
                              used up to 3 times.
  -V, --version               Show version and exit.
  -q, --quiet                 Give less output. Option is additive, and can be
                              used up to 3 times (corresponding to WARNING,
                              ERROR, and CRITICAL logging levels).
  --log <path>                Path to a verbose appending log.
  --proxy <proxy>             Specify a proxy in the form
                              [user:passwd@]proxy.server:port.
  --retries <retries>         Maximum number of retries each connection should
                              attempt (default 5 times).
  --timeout <sec>             Set the socket timeout (default 15 seconds).
  --exists-action <action>    Default action when a path already exists:
                              (s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort.
  --trusted-host <hostname>   Mark this host as trusted, even though it does
                              not have valid or any HTTPS.
  --cert <path>               Path to alternate CA bundle.
  --client-cert <path>        Path to SSL client certificate, a single file
                              containing the private key and the certificate
                              in PEM format.
  --cache-dir <dir>           Store the cache data in <dir>.
  --no-cache-dir              Disable the cache.
  --disable-pip-version-check
                              Don't periodically check PyPI to determine
                              whether a new version of pip is available for
                              download. Implied with --no-index.
sdhutchins commented 6 years ago

As far as the internals are concerned, are you fine with modeling it after pip?

image

Later today, I am going to do some really easy and simple setup for this just so we can pip install it in developmental mode to start working.

grabear commented 6 years ago

Yes this is similar to how poetry is set up. The only difference is that poetry has no vendore items yet, because it's a relatively young project:

image

pipenv looks fairly similar:

image

sdhutchins commented 6 years ago

Looking at the poetry documentation, they suggest for this to be the general setup of a project managed with poetry.

It'd eliminate us needing to have a setup.py and what not.

poetry-demo
├── pyproject.toml
├── README.rst
├── poetry_demo
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_poetry_demo
sdhutchins commented 6 years ago

Ah, @grabear I see you have that on that branch! lol

grabear commented 6 years ago

Yes! I just didn't want to push the lock file and the toml file to master. They work well, but they can get fucked up pretty easily with poetry add

sdhutchins commented 6 years ago

Gotcha!