Description
<a href="https://explosion.ai"><img src="https://explosion.ai/assets/img/logo.svg" width="125" height="125" align="right" /></a> # Weasel: A small and easy workflow system Weasel lets you manage and share **end-to-end workflows** for different **use cases and domains**, and orchestrate training, packaging and serving your custom pipelines. You can start off by cloning a pre-defined project template, adjust it to fit your needs, load in your data, train a pipeline, export it as a Python package, upload your outputs to a remote storage and share your results with your team. Weasel can be used via the [`weasel`](https://github.com/explosion/weasel/blob/main/docs/cli.md) command and we provide templates in our [`projects`](https://github.com/explosion/projects) repo.  ## π‘ Example: Get started with a project template The easiest way to get started is to clone a project template and run it βΒ for example, this [end-to-end template](https://github.com/explosion/projects/tree/v3/pipelines/tagger_parser_ud) that lets you train a spaCy **part-of-speech tagger** and **dependency parser** on a Universal Dependencies treebank. ```shell python -m weasel clone pipelines/tagger_parser_ud ``` > **Note** > > Our [`projects`](https://github.com/explosion/projects) repo includes various > project templates for different NLP tasks, models, workflows and integrations > that you can clone and run. The easiest way to get started is to pick a > template, clone it and start modifying it! ## π Documentation Get started with the documentation: - [Learn how to create a Weasel workflow](https://github.com/explosion/weasel/blob/main/docs/tutorial/workflow.md) - [Working with directory and assets](https://github.com/explosion/weasel/blob/main/docs/tutorial/directory-and-assets.md) - [Running custom scripts](https://github.com/explosion/weasel/blob/main/docs/tutorial/custom-scripts.md) - [Using remote storage](https://github.com/explosion/weasel/blob/main/docs/tutorial/remote-storage.md) - [Weasel integrations](https://github.com/explosion/weasel/blob/main/docs/tutorial/integrations.md) - [Command line interface description](https://github.com/explosion/weasel/blob/main/docs/cli.md) ## Migrating from spaCy Projects Weasel is a standalone replacement for spaCy Projects. There are a few backward incompatibilities that you should be aware of: - The `SPACY_CONFIG_OVERRIDES` environment variable is no longer checked. You can set configuration overrides using `WEASEL_CONFIG_OVERRIDES`. - Support for the `spacy_version` configuration key has been dropped. - Support for the `check_requirements` configuration key has been dropped. - Support for `SPACY_PROJECT_USE_GIT_VERSION` environment variable has been dropped. - Error codes are now Weasel-specific, and do not follow spaCy error codes. Weasel checks for the first three incompatibilities and will issue a warning if you're using it with spaCy-specific configuration options.
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 1.0.0 | Imported from PyPI (1.0.0) | Low | 4/21/2026 |
| release-v1.0.0 | * Migrate to Pydantic v2, dropping Pydantic v1 shim * Migrate `requests` -> `httpx` * Migrate `typer-slim` -> `typer` * Open version ranges on dependencies We've previously used closed version ranges on dependencies but as our tree has grown the maintenance burden of this approach down in the tree is too large. I'm going to try just open ranges on these small dependencies instead. | Low | 3/20/2026 |
| release-v0.4.3 | Release release-v0.4.3 | Low | 11/13/2025 |
| release-v0.4.2 | * Fix deprecation warning from click usage * Use typer-slim for more minimal dependencies | Low | 11/6/2025 |
| v0.4.1 | ## β¨ New features and improvements - Updates to the CI (#89). - Extend the Typer pin to allow v0.10.0 and above (#87). ## π₯ Contributors @aymenkrifa, @honnibal, @ines, @svlandeg | Low | 5/15/2024 |
| v0.4.0 | ## β¨ New features and improvements - Update `cloudpathlib` upper pin to 1.0.0 (#78). - Update `smart_open` upper pin to 8.0.0 (#84). - Drop support for EOL Python 3.6 (#85). ## π΄ Bug fixes - Fix issue #66: Support fetching a file from a git repo as an asset. ## π₯ Contributors @BLKSerene, @danieldk, @honnibal, @ines, @jeffrey12cali, @ringohoffman, @svlandeg | Low | 4/4/2024 |
| v0.3.4 | ## π΄ Bug fixes - Update CLI command messages for Weasel usage (#71). - Customize help messages to refer to either `weasel` or `spacy project` depending on calling command (#72). - Fix `KeyError` in `document` command when updating older READMEs (#74). ## π₯ Contributors @adrianeboyd, @honnibal, @ines, @ljvmiranda921, @svlandeg | Low | 11/6/2023 |
| v0.3.3 | ## β¨ New features and improvements - Update for cloudpathlib 0.16 to fully support Python 3.12 including remote storage (#68). ## π₯ Contributors @adrianeboyd, @honnibal, @ines, @svlandeg | Low | 10/16/2023 |
| v0.3.2 | ## π΄ Bug fixes - Extend to `typer<0.10.0` to align with spaCy (#64). ## π₯ Contributors @adrianeboyd, @honnibal, @ines, @svlandeg | Low | 10/4/2023 |
| v0.3.1 | ## β¨ New features and improvements This release introduces support for Python 3.12, with the exception of remote storage support, which currently still requires Python 3.11 or earlier. As soon as `cloudpathlib` supports Python 3.12, remote storage support will also be available in Weasel. - Remove `catalogue` requirement (#57). - Update docs for `cloudpathlib` and Python 3.12 (#60). - Update warning and tests for Python 3.12 (#61). ## π΄ Bug fixes - Fix warning message code for `ma | Low | 9/25/2023 |
| v0.3.0 | ## β¨ New features and improvements - Remove requirements check due to `pkg_resources` deprecation (#49). - Update package metadata (#54). ## π΄ Bug fixes - Skip tests requiring git if it is not available (#55). ## β οΈ Backwards incompatibilities - Weasel no longer attempts to check requirements from `requirements.txt` and support for the `check_requirements` configuration key has been dropped. ## π₯ Contributors @adrianeboyd, @honnibal, @ines, @rmitsch, @svlandeg | Low | 8/14/2023 |
| v0.2.0 | ## β¨ New features and improvements - Switch from Pathy to cloudpathlib (#43). - Update setup for Python 3.6+ support (#45). - Replace `pydantic.BaseSettings` with simpler checks (#46). - Extend to confection v0.1 (#50). - Allow Pydantic v2 using transitional v1 support (#52). ## π΄ Bug fixes - Accept both `SPACY PROJECT` and `WEASEL` in markers (#42). - Fix error code E501 (#47). ## π₯ Contributors @adrianeboyd, @honnibal, @ines, @rmitsch, @svlandeg | Low | 8/4/2023 |
| v0.1.1 | ## π΄ Bug fixes - Fixing an incorrectly defined entry point preventing `weasel` from being used via CLI (#38) - Add a pin for `pydantic` to ensure a working `pre-commit` run (#39) ## π₯ Contributors @adrianeboyd, @honnibal, @ines, @rmitsch, @svlandeg | Low | 7/7/2023 |
| v0.1.0 | This is the very first release of our new Weasel library, a standalone replacement for spaCy Projects. Weasel lets you manage and share **end-to-end workflows** for different **use cases and domains**, and orchestrate training, packaging and serving your custom pipelines. You can start off by cloning a pre-defined project template, adjust it to fit your needs, load in your data, train a pipeline, export it as a Python package, upload your outputs to a remote storage and share your results wit | Low | 6/9/2023 |
| v0.1.0rc0 | This is a release candidate of our new Weasel library, a standalone replacement for spaCy Projects. It's published for testing purposes. | Low | 6/5/2023 |
