Skip to main content

An opionated EDA flow

Project description

Blockwork

NOTE Blockwork is currently in active development and is not yet suitable for production environments. It is missing many features and does not yet fulfill its stated aims.

Getting Started

Recommended Pre-requisites for macOS

On macOS we recommend the following:

  • XQuartz - to support X11 forwarding from applications running in the contained environment.
  • Docker or Orbstack as the container runtime. Podman is supported but it exhibits poor filesystem performance.
  • Python 3.11 installed through pyenv to protect your OS's default install from contamination.
  • Poetry installed through Python's package manager i.e. python -m pip install poetry.

Recommended Pre-requisites for Linux

On Linux we recommend the following:

  • Docker as the container runtime. Podman is supported but it exhibits poor filesystem performance (there are some notes to improve this in the troubleshooting section).
  • Python 3.11 installed through pyenv to protect your OS's default install from contamination.
  • Poetry installed through Python's package manager i.e. python -m pip install poetry.

Installing Blockwork

To install the bleeding edge version of Blockwork, use the following command:

$> python3 -m pip install git+https://github.com/blockwork-eda/blockwork

Setting up a Development Environment

Follow these steps to get a development environment:

# Clone the repository
$> git clone git@github.com:blockwork-eda/blockwork.git
$> cd blockwork
# Activate a poetry shell
$> poetry shell
# Install all dependencies (including those just for development)
$> poetry install --with=dev
# Bootstrap the example project
$> bw -C example bootstrap
# Run a test command
$> bw -C example exec -- echo "hi"

Troubleshooting

macOS

X11 Forwarding

  • Ensure XQuartz is installed
  • Tick "Allow connections from network clients" in XQuartz preferences
  • Quit and re-open XQuartz
  • Execute xhost + 127.0.0.1

NOTE The DISPLAY environment variable must be set to host.internal:0 for Docker/Orbstack or host.containers.internal:0 for Podman, this should be setup automatically by the framework.

Linux

Podman Socket

To start the user-space socket service execute:

$> systemctl --user status podman.socket

NOTE Do not use sudo as the service needs to run in user-space.

Slow Podman Performance

Ensure that you are using the overlay filesystem (fuse-overlayfs), as the default vfs is very slow!

$> sudo apt install -y fuse-overlayfs
$> podman system reset
$> podman info --debug | grep graphDriverName

If the graphDriverName is not reported as overlay, then you can try forcing it by editing ~/.config/containers/storage.conf to contain:

[storage]
driver = "overlay"

Then execute podman system reset again, and perform the same check for the graph driver.

After changing the filesystem driver, you will need to rebuild the foundation container as it is deleted by the reset command.

Project details


Release history Release notifications | RSS feed

This version

1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blockwork-1.0.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

blockwork-1.0-py3-none-any.whl (47.2 kB view details)

Uploaded Python 3

File details

Details for the file blockwork-1.0.tar.gz.

File metadata

  • Download URL: blockwork-1.0.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.11.1 Darwin/22.2.0

File hashes

Hashes for blockwork-1.0.tar.gz
Algorithm Hash digest
SHA256 0731e9c12048c6c29eb07875da733425c802ce9e87eb34da5aa7ce793d2581db
MD5 4c7b5e5723759960e7b72baa1856c901
BLAKE2b-256 b3b450a5f2d4426bad8098af9d438f713dde09b05356f5a1e81f0864562b51bd

See more details on using hashes here.

File details

Details for the file blockwork-1.0-py3-none-any.whl.

File metadata

  • Download URL: blockwork-1.0-py3-none-any.whl
  • Upload date:
  • Size: 47.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.11.1 Darwin/22.2.0

File hashes

Hashes for blockwork-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b62e6dae8c1f0bae8f719ac5ef4777457252ae04572174b4649615d008bb54a
MD5 e82a6d94f4dd3d21f6972aee06e5ce00
BLAKE2b-256 5a7cd9c27ed27b0d892f1911658d3cee62498c34e87b0659c63af3a36a95fb99

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page