Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add DevContainer config #1563

Closed
wants to merge 3 commits into from
Closed

Add DevContainer config #1563

wants to merge 3 commits into from

Conversation

shenanigansd
Copy link
Member

@shenanigansd shenanigansd commented Jun 26, 2024

This is a possible implementation of #1560

Creating a Codespace causes Poetry to be triggered automatically:

Configuring codespace...
Running oryx...
$ python -m site --user-site
python process exited with exit code 0
/home/codespace/.local/lib/python3.12/site-packages
$ python --version
Python 3.12.1
python process exited with exit code 0
$ oryx build --manifest-dir "/workspaces/.oryx" --property packagedir="/home/codespace/.local/lib/python3.12/site-packages" --property python_version="3.12.1" --log-file "/workspaces/.oryx/build.log" "/workspaces/sir-lancebot"
Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
You can report issues at https://github.com/Microsoft/Oryx/issues

Oryx Version: 0.2.0.0+c261287ed35c6c62b5ecf3174cda270495abb127, Commit: , ReleaseTagName: 

Build Operation ID: 3abb8b2aded336da
Repository Commit : 54a9aa898a7a0698b04210f779c35e09db8c6098
OS Type           : focal-scm
Image Type        : vso-focal

Detecting platforms...
Detected following platforms:
  python: 3.12.1


Source directory     : /workspaces/sir-lancebot
Destination directory: /workspaces/sir-lancebot

Python Version: /opt/python/3.12.1/bin/python3.12
Creating directory for command manifest file if it does not exist
Removing existing manifest file
Running pip install poetry...
Collecting poetry

It then installs the project:

Running poetry install...
Done in 11 sec(s).
Creating virtualenv sir-lancebot-uLh6a51y-py3.12 in /home/codespace/.cache/pypoetry/virtualenvs
The `--no-dev` option is deprecated, use the `--only main` notation instead.
Installing dependencies from lock file

Package operations: 43 installs, 0 updates, 0 removals

  - Installing frozenlist (1.4.1)
  - Installing idna (3.7)
  - Installing multidict (6.0.5)
  - Installing pycparser (2.21)
  - Installing aiosignal (1.3.1)
  - Installing attrs (23.2.0)
  - Installing cffi (1.16.0)
  - Installing yarl (1.9.4)
  - Installing typing-extensions (4.10.0)
  - Installing aiohttp (3.9.4)
  - Installing annotated-types (0.6.0)
  - Installing lupa (2.1)
  - Installing pycares (4.4.0)
  - Installing pydantic-core (2.16.3)
  - Installing redis (4.6.0)
  - Installing six (1.16.0)
  - Installing sortedcontainers (2.4.0)
  - Installing aiodns (3.1.1)
  - Installing async-rediscache (1.0.0rc2)
  - Installing certifi (2024.2.2)
  - Installing discord-py (2.3.2)
  - Installing fakeredis (2.21.3)
  - Installing humanfriendly (10.0)
  - Installing pydantic (2.6.4)
  - Installing python-dateutil (2.9.0.post0)
  - Installing python-dotenv (1.0.1)
  - Installing soupsieve (2.5)
  - Installing statsd (4.0.1)
  - Installing types-python-dateutil (2.9.0.20240316)
  - Installing urllib3 (2.2.2)
  - Installing arrow (1.3.0)
  - Installing beautifulsoup4 (4.12.3)
  - Installing coloredlogs (15.0.1)
  - Installing emoji (2.12.1)
  - Installing emojis (0.7.0)
  - Installing lxml (5.2.2)
  - Installing pillow (10.3.0)
  - Installing pydantic-settings (2.2.1)
  - Installing pydis-core (11.1.0)
  - Installing pyjokes (0.6.0)
  - Installing pyyaml (6.0.1)
  - Installing rapidfuzz (3.9.3)
  - Installing sentry-sdk (2.6.0)
vso-focal
PlatformWithVersion=Python 3.12.1
 , pip install poetry , poetry install --no-dev
Removing existing manifest file
Creating a manifest file...
Manifest file created.
Copying .ostype to manifest output directory.

Done in 53 sec(s).
oryx process exited with exit code 0

@shenanigansd shenanigansd self-assigned this Jun 26, 2024
Signed-off-by: GitHub <noreply@github.com>
Codespace automated setup is failing because it can't find a package

Signed-off-by: GitHub <noreply@github.com>
@shenanigansd shenanigansd marked this pull request as ready for review July 8, 2024 22:36
Copy link
Contributor

@wookie184 wookie184 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, though I have two questions:

@ChrisLovering
Copy link
Member

I'm not entirely sure we want to add & maintain this, given that running it via docker compose is much simpler, and easier to explain to new developers.

@jb3
Copy link
Member

jb3 commented Apr 8, 2025

Agreed with Chris.

@jb3 jb3 closed this Apr 8, 2025
@wookie184
Copy link
Contributor

Hmm, I don't see how docker compose is simpler. You need to install docker, as well as still needing Python/poetry locally for precommit.

In theory this would ensure you have all that in one click, even if you're on a device where you don't have the needed permissions to install those things, or docker slows your device down to a crawl.

In terms of maintenance, we already have a .gitpod.yml, which this could replace as gitpod now supports the devcontainer format.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants