Skip to content

Commit

Permalink
Chaning inconsistent usage Conda-Store, Conda Store -> conda-store (#345
Browse files Browse the repository at this point in the history
)

* Chaning inconsistent usage Conda-Store, Conda Store -> conda-store

Closes #340

* Adding details on proper naming
  • Loading branch information
costrouc authored Jul 8, 2022
1 parent 038165b commit 795c889
Show file tree
Hide file tree
Showing 24 changed files with 113 additions and 107 deletions.
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- `CondaStore.conda_...` options for managing channels and packages in specification #256
- Ability to modify/validate specifications server side #252
- Concurrency option for Conda-Store celery worker #250
- Concurrency option for conda-store celery worker #250
- Flask webserver has a `CondaStore.behind_proxy` option to properly handle X-Forward- headers #249
- Docker layer chaching to CI for docker image builds #234

Expand Down Expand Up @@ -210,7 +210,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added

- support for credentials supplied for object storage including IAM credentials #176
- namespace UI to Conda-Store server #183
- namespace UI to conda-store server #183
- create/read/delete methods for namespaces `/api/v1/namespace/` #181
- distinct_on query parameter to list REST API methods #164
- adding sorting query parameter to list REST API methods #162
Expand Down Expand Up @@ -250,7 +250,7 @@ notable things done in the past 3-6 months.
- enabling rollbacks of environment builds [#93](https://github.com/Quansight/conda-store/pull/93)
- adding `conda env export` for pinned YAML file [#92](https://github.com/Quansight/conda-store/pull/92)
- celery integration for true task based builds [#90](https://github.com/Quansight/conda-store/pull/90)
- Conda-Store configuration is configured via Traitlets [#87](https://github.com/Quansight/conda-store/pull/87)
- conda-store configuration is configured via Traitlets [#87](https://github.com/Quansight/conda-store/pull/87)
- Prometheus metrics endpoint [#84](https://github.com/Quansight/conda-store/pull/84)
- help button in top right hand corner [#83](https://github.com/Quansight/conda-store/pull/83)
- support for internal and external url for s3 bucket [#81](https://github.com/Quansight/conda-store/pull/81)
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Conda Store
# conda-store

<a href="https://conda-store.readthedocs.io/en/latest/">
<img src="https://readthedocs.org/projects/conda-store/badge/?version=latest" alt="Documentation Status"/>
Expand All @@ -20,11 +20,11 @@
<img src="https://img.shields.io/conda/vn/conda-forge/conda-store?color=green&label=conda-forge%7Cconda-store" alt="Conda"/>
</a>

![Conda-Store UI](docs/_static/images/conda-store-authenticated.png)
![conda-store UI](docs/_static/images/conda-store-authenticated.png)

End users think in terms of environments not packages. The core
philosophy of Conda-Store is to serve identical Conda environments in
as many ways as possible. Conda-Store controls the environment
philosophy of conda-store is to serve identical Conda environments in
as many ways as possible. conda-store controls the environment
lifecycle: management, builds, and serving of environments.

It **manages** Conda environments by:
Expand All @@ -39,7 +39,7 @@ environment builds.

It **serves** Conda environments via a filesystem, lockfile, tarball,
and a docker registry. Tarballs and Docker images can carry a lot of
bandwidth which is why Conda-Store integrates optionally with `s3` to
bandwidth which is why conda-store integrates optionally with `s3` to
actually serve the blobs.

## Documentation
Expand All @@ -66,11 +66,11 @@ This design has several advantages:
- because each `environment` update is a new separate build the
environment can be archived and uniquely identified

![Conda-Store terminology](docs/_static/images/conda-store-terminology.png)
![conda-store terminology](docs/_static/images/conda-store-terminology.png)

## Philosophy

We mentioned above that `Conda-Store` was influenced by
We mentioned above that `conda-store` was influenced by
[nix](https://nixos.org/). While Conda is not as pure as nix (when it
comes to reproducible builds) we can achieve close to the same results
with many of the great benefits. Motivation
Expand All @@ -95,7 +95,7 @@ caching, and rollbacks to previous environment states.

## License

Conda-Store is [BSD-3 LICENSED](./LICENSE)
conda-store is [BSD-3 LICENSED](./LICENSE)

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion conda-store-server/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Conda Store Server
# conda-store server

[![Documentation Status](https://readthedocs.org/projects/conda-store/badge/?version=latest)](https://conda-store.readthedocs.io/en/latest/?badge=latest)

Expand Down
2 changes: 1 addition & 1 deletion conda-store-server/conda_store_server/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ class CondaStore(LoggingConfigurable):
)

redis_url = Unicode(
help="Redis connection url in form 'redis://:<password>@<hostname>:<port>/0'. Connection is used by Celery along with Conda-Store internally",
help="Redis connection url in form 'redis://:<password>@<hostname>:<port>/0'. Connection is used by Celery along with conda-store internally",
config=True,
)

Expand Down
2 changes: 1 addition & 1 deletion conda-store-server/conda_store_server/conda.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Interface between Conda-Store and conda
"""Interface between conda-store and conda
This module provides all the functionality that is required for
executing conda commands
Expand Down
2 changes: 1 addition & 1 deletion conda-store-server/conda_store_server/server/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def trim_slash(url):
return url[:-1] if url.endswith("/") else url

app = FastAPI(
title="Conda-Store",
title="conda-store",
version=__version__,
openapi_url=os.path.join(self.url_prefix, "openapi.json"),
docs_url=os.path.join(self.url_prefix, "docs"),
Expand Down
2 changes: 1 addition & 1 deletion conda-store-server/conda_store_server/server/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def compile_arn_sql_like(arn: str) -> str:
def is_arn_subset(arn_1: str, arn_2: str):
"""Return true if arn_1 is a subset of arn_2
Conda-Store allows flexible arn statements such as "a*b*/c*"
conda-store allows flexible arn statements such as "a*b*/c*"
with "*" being a wildcard seen in regexes. This makes the
calculation of if a arn is a subset of another non
trivial. This codes solves this problem.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<nav class="navbar navbar-expand-lg navbar-dark bg-dark mb-2" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="{{ url_for('ui_list_environments') }}">Conda-Store</a>
<a class="navbar-brand" href="{{ url_for('ui_list_environments') }}">conda-store</a>
</div>

<div class="nav navbar-right">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ <h5 class="card-title">Namespace</h5>
<div class="card m-2">
<div class="card-body">
<h5 class="card-title">Permissions</h5>
<p>Below are your current permissions within the Conda-Store application. The "*" will match any string of characters e.g. "na*ce" will match "namespace". This allows Conda-Store to have flexible and powerful authorization. For further information on authorization see the <a href="https://conda-store.readthedocs.io/en/latest/contributing.html#authorization-model">docs</a></p>
<p>Below are your current permissions within the conda-store application. The "*" will match any string of characters e.g. "na*ce" will match "namespace". This allows conda-store to have flexible and powerful authorization. For further information on authorization see the <a href="https://conda-store.readthedocs.io/en/latest/contributing.html#authorization-model">docs</a></p>
<table class="table table-hover">
<thead>
<tr>
Expand Down
8 changes: 4 additions & 4 deletions conda-store/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Conda Store
# conda-store

[![Documentation Status](https://readthedocs.org/projects/conda-store/badge/?version=latest)](https://conda-store.readthedocs.io/en/latest/?badge=latest)

A client library for interacting with a Conda-Store server. See the
A client library for interacting with a conda-store server. See the
[documentation](https://conda-store.readthedocs.io/en/latest/) for
more information. The client library provides a CLI for interacting
with conda-store.
Expand All @@ -12,8 +12,8 @@ $ conda-store --help
Usage: conda-store [OPTIONS] COMMAND [ARGS]...

Options:
--conda-store-url TEXT Conda-Store base url including prefix
--auth [none|token|basic] Conda-Store authentication to use
--conda-store-url TEXT conda-store base url including prefix
--auth [none|token|basic] conda-store authentication to use
--no-verify-ssl Disable tls verification on API requests
--help Show this message and exit.

Expand Down
4 changes: 2 additions & 2 deletions conda-store/conda_store/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ async def parse_build(conda_store_api: api.CondaStoreAPI, uri: str):
"--conda-store-url",
default="http://localhost:5000",
envvar="CONDA_STORE_URL",
help="Conda-Store base url including prefix",
help="conda-store base url including prefix",
)
@click.option(
"--auth",
envvar="CONDA_STORE_AUTH",
type=click.Choice(["none", "token", "basic"], case_sensitive=False),
help="Conda-Store authentication to use",
help="conda-store authentication to use",
default="none",
)
@click.option(
Expand Down
2 changes: 1 addition & 1 deletion conda-store/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[metadata]
name = conda-store
version = attr: conda_store.__version__
description = Conda Store client
description = conda-store client
long_description = file: README.md, LICENSE
long_description_content_type = text/markdown
author = Christopher Ostrouchov
Expand Down
2 changes: 1 addition & 1 deletion docs/_static/openapi.json

Large diffs are not rendered by default.

46 changes: 23 additions & 23 deletions docs/administration.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@

## Performance

There are several parts of Conda-Store to consider for performance. We
There are several parts of conda-store to consider for performance. We
have tried to list them in order of performance impact that may be
seen.

### Worker Storage

When Conda-Store builds a given environment it has to locally install
When conda-store builds a given environment it has to locally install
the environment in the directory specified in the
[Traitlets](https://traitlets.readthedocs.io/en/stable/using_traitlets.html)
configuration `CondaStore.store_directroy`. Conda environments consist
Expand Down Expand Up @@ -51,16 +51,16 @@ plenty fast Internet.

### S3 Storage

All build artifacts from Conda-Store are stored in object storage that
All build artifacts from conda-store are stored in object storage that
behaves S3 like. S3 traditionally has great performance if you use the
cloud provider implementation.

## Configuration

Conda-Store is configured via
conda-store is configured via
[Traitlets](https://traitlets.readthedocs.io/en/stable/). Originally
this configuration was done via command line options but as the
options grew this seems untenable. Conda-Store server and worker can
options grew this seems untenable. conda-store server and worker can
be launched via configuration easily.

```shell
Expand All @@ -71,17 +71,17 @@ conda-store-server --config <path-to-conda-store-config.py>
conda-store-worker --config <path-to-conda-store-config.py>
```

Below we outline the options for Conda-Store.
Below we outline the options for conda-store.

### `conda_store_server.app.CondaStore`

`CondaStore.storage_class` configures the storage backend to use for
storing build artifacts from
Conda-Store. [S3](https://en.wikipedia.org/wiki/Amazon_S3) storage is
conda-store. [S3](https://en.wikipedia.org/wiki/Amazon_S3) storage is
the default. File based storage is also supported but not nearly as
well tested.

`CondaStore.store_directory` is the directory used for Conda-Store to
`CondaStore.store_directory` is the directory used for conda-store to
build the environments.

`CondaStore.build_directory` template used to form the directory for
Expand Down Expand Up @@ -116,7 +116,7 @@ repodata.json from. By default includes current architecture and
are by default added if channels within the specification is empty.

`CondaStore.conda_allowed_channels` is a list of Conda channels that
are allowed. This also tells Conda-Store which channels to prefetch
are allowed. This also tells conda-store which channels to prefetch
the channel `repodata` and `channeldata` from. The default is `main` and
`conda-forge`.

Expand Down Expand Up @@ -150,12 +150,12 @@ added.
database. Behind the scenes [SQLAlchemy](https://www.sqlalchemy.org/)
is used for the connection so [consult their
docs](https://docs.sqlalchemy.org/en/14/core/engines.html) for
connecting to your specific database. Conda-Store will automatically
connecting to your specific database. conda-store will automatically
create the tables if they do not already exist.

`CondaStore.redis_url` is a required argument to a running Redis
instance. This became a dependency as of release `0.4.1` due to the
massive advantages of features that Conda-Store can provide with this
massive advantages of features that conda-store can provide with this
dependency. See
[documentation](https://github.com/redis/redis-py/#connecting-to-redis)
for proper specification. This url is used by default for the Celery
Expand All @@ -169,8 +169,8 @@ used. It is production ready and has worked well in practice. The url
must be provided in a format that celery understands. The default
value is `CondaStore.redis_url`.

`CondaStore.build_artifacts` is the list of artifacts for Conda-Store
to build. By default it is all the artifacts that Conda-Store is
`CondaStore.build_artifacts` is the list of artifacts for conda-store
to build. By default it is all the artifacts that conda-store is
capable of building. These are the
[lockfile](https://github.com/conda-incubator/conda-lock),
[YAML](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#create-env-file-manually),
Expand All @@ -184,14 +184,14 @@ want to keep around the logs etc. of a build and the Conda solve for
the given build.

`CondaStore.celery_results_backend` is the backend to use for storing
all results from celery task execution. Conda-Store currently does not
all results from celery task execution. conda-store currently does not
leverage the backend results but it may be needed for future work
using celery. The backend defaults to using the Redis backend. This
choice works great in production. Please consult the [celery docs on
backend](https://docs.celeryproject.org/en/stable/getting-started/backends-and-brokers/index.html).

`CondaStore.default_namespace` is the default namespace for
Conda-Store to use. All environments are built behind a given
conda-store to use. All environments are built behind a given
namespace.

`CondaStore.filesystem_namespace` is the namespace to use for
Expand Down Expand Up @@ -228,11 +228,11 @@ is True until this bug is fixed.

### `conda_store_server.storage.S3Storage`

Conda-Store uses [minio-py](https://github.com/minio/minio-py) as a
conda-store uses [minio-py](https://github.com/minio/minio-py) as a
client to connect to S3 "like" object stores.

`S3Storage.internal_endpoint` is the internal endpoint for Conda-Store
reaching out to s3 bucket. This is the url that Conda-Store use for
`S3Storage.internal_endpoint` is the internal endpoint for conda-store
reaching out to s3 bucket. This is the url that conda-store use for
get/set s3 blobs. For AWS S3 use the endpoint `s3.amazonaws.com`.

`S3Storage.external_endpoint` is the external s3 endpoint for users to
Expand All @@ -251,12 +251,12 @@ the S3 bucket.

`S3Storage.internal_secure` Boolean to indicate if connecting via
`http` (False) or `https` (True) internally. The internal connection
is the url that will be exclusively used by Conda-Store and not shared
is the url that will be exclusively used by conda-store and not shared
with users.

`S3Storage.external_secure` Boolean to indicate if connecting via
`http` (False) or `https` (True) internally. The external connection
is the url that will be served to users of Conda-Store.
is the url that will be served to users of conda-store.

`S3Storage.credentials` provider to use to get credentials for s3
access. see examples
Expand Down Expand Up @@ -410,7 +410,7 @@ metrics endpoints. Default True.
`CondaStoreServer.address` is the address for the server to bind
to. The default is all IP addresses `0.0.0.0`.

`CondaStoreServer.port` is the port for Conda-Store server to
`CondaStoreServer.port` is the port for conda-store server to
use. Default is `5000`.

`CondaStoreServer.registry_external_url` is the external hostname and
Expand Down Expand Up @@ -441,7 +441,7 @@ behind proxy since Flask will trust any `X-Forward-...` header.
logging. Default is `INFO`. Common options are `DEBUG`, `INFO`,
`WARNING`, and `ERROR`.

`CondaStoreWorker.watch_paths` is a list of paths for Conda-Store to
`CondaStoreWorker.watch_paths` is a list of paths for conda-store to
watch for changes to directories of `environment.yaml` files or a
single filename to watch.

Expand All @@ -451,7 +451,7 @@ number of concurrent celery tasks to the integer.

## Frequently Asked Questions

### Conda-Store fails to build Conda environment and worker is spontaneously killed (9 SIGKILL)
### conda-store fails to build Conda environment and worker is spontaneously killed (9 SIGKILL)

The following error most likely indicates that you have not allocated
enough memory to `conda-store-workers` for solving and building the
Expand Down
2 changes: 1 addition & 1 deletion docs/api.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# REST API

Below is an interactive view of Conda-Store's OpenAPI specification.
Below is an interactive view of conda-store's OpenAPI specification.

<!-- client-rendered openapi UI copied from FastAPI -->

Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import recommonmark
from recommonmark.transform import AutoStructify

project = 'Conda-Store'
project = 'conda-store'
copyright = '2022, Quansight'
author = 'Quansight'
release = '0.4.5'
Expand Down
Loading

0 comments on commit 795c889

Please sign in to comment.