Skip to content

The-AI-Alliance/tapestry

The AI Alliance banner

README for Project Tapestry - Technical Repo

Technical website

This repo contains the code and technical documentation for the AI Alliance, Project Tapestry.

Project Tapestry Image

The rest of this README provides information for contributors, developers, and users of this repository.

Getting Involved

Several work groups are being organized to identify requirements in several areas and to start the engineering work to prototype and test ideas, followed by the initial implementation iterations. Details are to be announced. The work group documentation is found under the work-groups directory.

We welcome contributions as PRs, etc. See More about Getting Involved below for details about AI Alliance contribution guidelines, licenses, etc.

Development

Setup

This project uses uv for Python package management.

Install uv

On macOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

On Windows:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

The rest of the steps are partially automated using make. Try the following:

make one-time-setup

Create a Virtual Environment

If make one-time-setup didn't work or you want to set up the virtual environment manually:

On macOS/Linux:

uv venv
source .venv/bin/activate

On Windows:

uv venv
.venv\Scripts\activate

Install Dependencies

If make one-time-setup didn't work or you want to install the dependencies yourself run one of the following commands:

uv pip install -e ".[dev]"  # full development dependencies
uv pip install -e .         # minimum dependencies

Running Tests

We use unittest and hypothesis for testing. The easiest way to run the test suite is using make:

make unit-tests # or just tests; they are currently the same.

This runs the following commands, which you can run yourself if you prefer:

cd src
uv run python -m unittest discover \
    --pattern 'test_*.py' \
    --start-directory tests \
    --top-level-directory .

Code Formatting

Use either of the following commands to format the Python code with black:

make format
uv run black src

Linting

Use either of the following commands to lint the Python code with ruff and pylint:

make lint
# or
uv run ruff check src
uv pylint src

Type Checking

Use either of the following commands to type check the Python code with ty:

make type-check
uv run ty src

There is also a "watch" option that keeps ty running as you fix mistakes and save the files:

make type-check-watch
uv run ty --watch src

Project Structure

The structure is as follows, where three major subsystems are managed:

  • data for all data governance and management capabilities.
  • training for all distributed training and tuning capabilities.
  • infrastructure for all underlying infrastructure.
tapestry/
├── src/
│   └── tapestry/
│       └── data/
│       └── training/
│       └── infrastructure/
│   └── tests
│       └── tapestry/
│           └── data/
│           └── training/
│           └── infrastructure/

Getting Involved

We welcome contributions as PRs, either to our code examples or our user guide. Please see our Alliance community repo for general information about contributing to any of our projects. This section provides some specific details you need to know.

In particular, see the AI Alliance CONTRIBUTING instructions. You will need to agree with the AI Alliance Code of Conduct.

Licenses

All code contributions are licensed under the Apache 2.0 LICENSE (which is also in this repo, LICENSE.Apache-2.0).

All documentation contributions are licensed under the Creative Commons Attribution 4.0 International (which is also in this repo, LICENSE.CC-BY-4.0).

All data contributions are licensed under the Community Data License Agreement - Permissive - Version 2.0 (which is also in this repo, LICENSE.CDLA-2.0).

We use the "Developer Certificate of Origin" (DCO).

Warning

Before you make any git commits with changes, understand what's required for DCO.

See the Alliance contributing guide section on DCO for details. In practical terms, supporting this requirement means you must use the -s flag with your git commit commands.

About the Technical Website

The website for this repo is found in the docs directory. It is published using GitHub Pages, where the pages are written in Markdown and served using Jekyll. We use the Just the Docs Jekyll theme.

See GITHUB_PAGES.md for more information.

Note

As described above, all documentation is licensed under Creative Commons Attribution 4.0 International. See LICENSE.CC-BY-4.0.

About

The AI Alliance Tapestry initiative

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE.Apache-2.0
CC-BY-4.0
LICENSE.CC-BY-4.0
Unknown
LICENSE.CDLA-2.0

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors