Skip to content

conda-incubator/conda-store-ui

Repository files navigation

conda-store-ui

conda-store logo

Information Links
Project License conda-store documentation conda-store-ui documentation
Wofklows GitHub Workflow Status - Build GitHub Workflow Status (with event) - Release GitHub Workflow Status - GitHub pages
Releases GitHub release (the latest by date) npm release version

About

conda-store-ui is an add-on Graphical User Interface to conda-store. If you're looking for the JupyterLab Extension, you can find it at jupyterlab-conda-store

Get Started πŸ’»

To learn how to use conda-store-ui alongside conda-store, please visit the conda-store-ui documentation.

Development πŸ‘©πŸ»β€πŸ’»

To get started with conda-store-ui development, there are a couple of options, depending on the type of changes you are working on. This guide will help you to set up your local development environment.

Prerequisites πŸ“‹

Before setting up conda-store-ui, you must prepare your environment.

We use Docker Compose to set up the infrastructure before starting ensure that you have docker-compose installed. If you need to install docker-compose, please see their installation documentation

  1. Clone the conda-store-ui repository.
  2. Copy .env.example to .env. All default settings should work, but if you want to test against a different version of conda-store-server, you can specify if in the .env file by setting the CONDA_STORE_SERVER_VERSION variable to the desired version. Refer to the Configuration documentation for more information on the .env file.

Local Development with conda-store-ui running in Docker 🐳

Running conda-store-ui in Docker is the most straightforward way to set up your local development environment.

  1. Run yarn run start:docker to start the entire development stack.
  2. Open you local browser and go to http://localhost:8000 so see conda-store-ui.
  3. You can then log in using the default username of username and default password of password.

Hot reloading is enabled, so when you make changes to source files, your browser will reload and reflect the changes.

Local Development without running conda-store-ui in Docker πŸ’»

This setup still uses Docker for supporting services but runs conda-store-ui locally.

Set up your environment

This project uses Conda for package management. To set up Conda, please see their installation documentation.

  1. Change to the project root cd conda-store-ui
  2. From the project root create the conda environment conda env create -f environment_dev.yml
  3. Activate the development environment conda activate cs-ui-dev-env
  4. Install yarn dependencies yarn install

Run the application

  1. Run yarn run start and wait for the application to finish starting up
  2. Open you local browser and go to http://localhost:8000 so see conda-store-ui.
  3. You can then log in using the default username of username and default password of password.

Hot reloading is enabled, so when you make changes to source files, your browser will reload and reflect the changes.

Making a release πŸš€

To create a new version of this package, follow these steps:

  1. Bump the version number in package.json (we use CalVer: YYYY.MM.releaseNumber starting with releaseNumber=1)
  2. Start a new GitHub release
    • Call the release the current version, e.g. 2023.9.1
    • In the Choose a Tag: dropdown, type in the release name (e.g., 2023.9.1) and click "Create new tag"
    • Add the release notes in the text field 1
  3. Confirm that the release completed successfully by checking the GitHub Actions page. Once completed, a new release will be available at npm - @conda-store/conda-store-ui

πŸ”— You can find more details about out release process and versioning approach in our Maintenance docs.

Running Tests

This repo contains two types of tests: Jest and Playwright

Jest tests

To run the Jest tests, run the following command:

yarn test

Playwright tests

Steps to install and set up:

  1. Create Conda environment
    conda env create -f environment_dev.yml
  2. Activate Conda environment
    conda activate cs-ui-dev-env
  3. Install Playwright-usable browser
    playwright install chromium
  4. Copy environment variables
    cp .env.example .env
  5. Install JavaScript dependencies
    yarn install --immutable
  6. Build app
    yarn build

To run the tests, you will need to run commands in two separate terminal windows or tabs.

Steps to run:

  1. In the first terminal window/tab, enter the following:
    conda activate cs-ui-dev-env
    yarn start
  2. Wait for server to start (you'll know it's ready when it says "webpack 5.xx.x compiled successfully"). Open a new terminal window or tab and enter the following:
    conda activate cs-ui-dev-env
    pytest

If you need to debug, try replacing the last command with:

PWDEBUG=1 pytest

Note: PW stands for Playwright. PWDEBUG=1 puts Playwright in debug mode.

Code of Conduct 🀝

To guarantee a welcoming and friendly community, we require all community members to follow our Code of Conduct.

License πŸ“ƒ

conda-store-ui is developed under the BSD-3 LICENSE.

Footnotes

  1. If you wish, use github-activity to generate a Changelog, e.g. github-activity conda-incubator/conda-store-ui --since 2023.9.1 --until 2023.10.1 --auth <GH personal access token> ↩