Recent Releases of Tesseract Core

Tesseract Core - v1.0.0

Release v1.0.0

:tada: Tesseract Core has reached v1.0! :tada:

This is a huge release with several breaking changes, and an important milestone in the development of the project.

Breaking changes and how to upgrade

  1. New output folder structures
  2. When paired with --output-path (and optionally --output-format / --output-file), tesseract run and tesseract serve now produce a new folder structure integrating outputs, logs, metrics, artifacts, and more. tesseract serve automatically splits those per request.
  3. This is breaking since tesseract run --output-path does not imply writing return payloads to a file anymore. Use the new --output-file argument to control this behavior.
  4. New image tags
  5. After tesseract build, images are automatically tagged using the version key from tesseract_config.yaml. This should not be breaking existing workflows in the vast majority of cases, but may lead to unexpected interactions when relying on the implicit latest tag (that is now added explicitly).
  6. No more msgpack
  7. Support for msgpack encoded payloads has been removed. All payloads are now required to be valid JSON. We recommend to use the json+base64 format instead.
  8. Bye-bye Docker Compose
  9. tesseract serve does not rely on Docker Compose anymore. This simplifies the stack considerably, but also means that only one Tesseract can be served per call to tesseract serve.
  10. To recover the old behavior it is required to call tesseract serve multiple times, potentially with a --network parameter to ensure Tesseracts are reachable from each other.
  11. The --service-names CLI arg has been renamed to --network-alias.
  12. Removed input-schema / output-schema endpoints
  13. The schema endpoints have been removed from all interfaces (CLI, REST, Python API). Instead, use openapi-schema that contains the information for both inputs and outputs for all endpoints.
  14. Overhauled command line interfaces
  15. The way tesseract and tesseract-runtime work is now more consistent with each other.
  16. As a consequence, tesseract run <mytess> --help now prints the tesseract run help, not that of tesseract-runtime. To print the help of <mytess>, please use tesseract run <mytess> apply --help.
  17. Also, tesseract-runtime can now be fully configured from the command line (see tesseract-runtime --help).
  18. Most subcommands of tesseract-runtime do not accept CLI options anymore, that is, tesseract-runtime apply --output-path . is now tesseract-runtime --output-path . apply.

For further help on how to upgrade, please visit the Tesseract Forum. For a list of all changes, please see the changelog below.

Changes to how Tesseract Core is developed

Since we have reached v1.0 now, we're going to be stricter with backwards compatibility, deprecation, and versioning. What exactly this entails is not defined yet, but a few rules of thumb apply:

  • The external Tesseract API (i.e., what clients see) will stay 100% backwards compatible until v2.0.
  • Other interfaces may still change, but will do so at a slower pace and with deprecation cycles (i.e., warning users about features that are flagged for removal instead of removing them right away).
  • Breaking changes must be clearly marked as such, and patch version releases must not include breaking changes of any kind.

Where do we go from here?

Reaching v1.0 does not mean that development is done, or that no new features will be added. On the other hand, it does mean that Tesseracts have matured to the point where we don't envision drastic changes to the way they work (at least not in the foreseeable future). This gives us the breathing room to focus on improving and extending what's already there.

In other words, now is a great time to start building on top of Tesseracts! We're excited to see what the community decides to do with this technology.

What's Changed

Features

  • [breaking] Use version from tesseract_config.yaml as default Docker image tag (#267)
  • Add network argument to tesseract serve (#285)
  • Improved IDE type hints for array annotations (#291)
  • Add --network-alias option (#297)
  • Improve healthcheck after serve, add restart policy (#296)
  • Add hot example (#288)
  • Add network args to from_image (#299)
  • Add --output-path to serve (#295)
  • [breaking] Drop msgpack support (#303)
  • Introduce job ID to control the location of output logs / artifacts (#314)
  • Also print text logs to stderr (#311)
  • Add experimental require_file function to mark externally mounted files as required at runtime (#261)

Bug Fixes

  • Move private pip imports into relevant func scope (#292)
  • Correct error message on use of T created via from_image (#298)
  • Ensure signature consistency between engine.serve and Tesseract.from_image (#302)
  • Exclude broken version of setuptools-scm (#312)
  • Use TESSERACTMLFLOWTRACKINGURI instead of MLFLOWTRACKING_URI (#313)
  • Make tesseract serve --output-format behave as expected (#307)
  • Test that LogPipe implementations do not diverge (#316)
  • Use --input-path/--output-path as base_dir in json+binref encoder (#304)
  • Bring back CLI option shorthands (#323)
  • Ensure .dockerignore is observed to avoid copying large amounts of data to build contexts (#218) (#321)
  • Change location of mlruns when TESSERACTMLFLOWTRACKING_URI is a relative path (#325)

Refactor

  • [breaking] Remove ability to serve multiple tesseracts / docker compose (#286)
  • Overhaul all clis (#301)
  • [breaking] Remove input-schema and output-schema endpoints (#308)
  • Transpose folder structure (#318)

Documentation

  • Add link to pre-commit library (#327)
  • Document how to use Tesseract via SLURM on HPC clusters (#320)
  • Add Documentation for podman usage via TESSERACTDOCKEREXECUTABLE (#324)

Full diff: https://github.com/pasteurlabs/tesseract-core/compare/v0.10.2...v1.0.0

Scientific Software - Peer-reviewed - Python
Published by PasteurBot 5 months ago

Tesseract Core - v0.10.2

Release v0.10.2

This is a hotfix to make sure pip install tesseract-core works as intended.

What's Changed

Bug Fixes

  • Fix + test for missing deps in pip install test (#278)

Full diff: https://github.com/pasteurlabs/tesseract-core/compare/v0.10.1...v0.10.2

Scientific Software - Peer-reviewed - Python
Published by PasteurBot 5 months ago

Tesseract Core - v0.10.1

Release v0.10.1

This release brings several new features around file-based input / output data handling and experimental support for logging metrics / artifacts to MLFlow or disk.

For more information on how to use the new logging capabilities please refer to the Tesseract Core documentation.

What's Changed

Features

  • Add --input-path to tesseract cli and TESSERACTINPUTPATH to runtime (#249)
  • Introduce logging metrics, parameters and artifacts to file or MLflow (#229)
  • Add top-level description field to OAS (#268)

Bug Fixes

  • Ensure tracebacks are always propagated through Python client (#228)
  • Ensure default workdir is writable (#263)
  • Tesseract-runtime default io paths (#266)
  • Add volume statements to dockerfile to ensure logs / metrics / data are always written to a volume (#270)
  • Add tests for MLflow backend using MLflow's capabillity to write to file (#271)
  • Bug in volume error handling (#272)

Refactor

  • Use RuntimeConfig for --input-path/--output-path (#264)

Documentation

  • Fix docstring on metrics example (#269)

Full diff: https://github.com/pasteurlabs/tesseract-core/compare/v0.10.0...v0.10.1

Scientific Software - Peer-reviewed - Python
Published by PasteurBot 5 months ago

Tesseract Core - v0.10.0

Release v0.10.0

This is a big release with several new features and quality-of-life improvements:

  • :tada: Tesseracts now support remote debugging via debugpy. For example, this allows users to connect to a running Tesseract via VSCode for interactive debugging sessions, even in cases where the Tesseract is running on another machine. See the docs for more information on how to get started.
  • tesseract run and tesseract serve support several new arguments, including --environment, --user, and --service-names. This provides users with more fine-grained control over how Tesseracts are executed.
  • tesseract build now supports --skip-checks to skip post-build checks in cases where they cannot succeed.
  • Container user handling is now more consistent, fixing many permission errors when using mounted volumes. See also our docs on Volume mounts and user permissions.

Thanks to all contributors!

(see full changelog below for an overview of all changes)

What's Changed

Features

  • (sdk) Expose no compose in Python API (#223)
  • [breaking] Enable remote debugging (#184)
  • Add --service-names argument to tesseract serve so served Tesseracts can be reached by name (#206)
  • Allow skipping checks by passing --skip-checks flag to the tesseract build command (#233)
  • Add Volume class to docker client and --user flag to cli (#241)
  • Pass env variables through tesseract run and tesseract serve (#250)
  • Allow to run T containers as any user, for better volume permission handling (#253)

Bug Fixes

  • Fix teardown command crashing for wrong proj ID (#207)
  • Add FileNotFoundError to docker info (#215)
  • Gracefully exit when Docker executable not found (#216)
  • "docker buildx build requires exactly 1 argument" error when using tesseract build --forward-ssh-agent (#231)
  • Remove zip(strict=True) for py39 support (#227)
  • Allow to set all configs via tesseract build --config-override (#239)
  • Add environment to no_compose (#257)

Documentation

  • Add in data assimilation tutorial and refactor example gallery (#200)
  • Remove reference to Hessian matrices (#221)
  • New user usability improvements (#226)
  • Fine-tune onboarding experience (#243)

Full diff: https://github.com/pasteurlabs/tesseract-core/compare/v0.9.1...v0.10.0

Scientific Software - Peer-reviewed - Python
Published by PasteurBot 6 months ago

Tesseract Core - v0.9.1

Release v0.9.1

This release brings several improvements and bug fixes that make it easier to work with Tesseracts.

The tesseract CLI now supports additional configuration: - Config for the used Docker executables via TESSERACT_DOCKER_EXECUTABLE, TESSERACT_DOCKER_COMPOSE_EXECUTABLE, and TESSERACT_DOCKER_BUILD_ARGS environment variables. - Config for serving Tesseracts without Docker Compose via tesseract serve --no-compose. - Config for the network interfaces to bind to via tesseract serve --host-ip.

This makes Tesseract more versatile to use, particularly in HPC and root-less environments.

What's Changed

Features

  • (cli) Add serve --no-compose and other missing cli options (#161)
  • (sdk) Make docker executable and build args configurable (#162)
  • More comprehensive validation of input and output schema during tesseract-runtime check (#170)
  • Add ability to configure host IP during tesseract serve (#185)

Bug Fixes

  • Add new cleanup fixture to track docker assets that need to be cleaned up (#129)
  • Some validation errors do not get piped through the python client (#152)
  • Podman compatibility and testing (#142)
  • Apidoc CLI call used container ID in place of container object to retrieve host port (#172)
  • Overhaul docker client for better podman compatibility and better error handling (#178)
  • Sanitize all config fields passed as envvars to dockerfile (#187)

Documentation

  • Updated diagram on tesseract interfaces (#150)
  • Tesseract Example Gallery (#149)
  • Remove how-to guides froms sidebar (#177)

Full diff: https://github.com/pasteurlabs/pasteurlabs/tesseract-core/compare/v0.9.0...v0.9.1

Scientific Software - Peer-reviewed - Python
Published by PasteurBot 7 months ago

Tesseract Core - v0.9.0

What's Changed

  • chore: ✅ Update pre-commit hooks by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/140
  • chore: 📦 Update dependencies by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/139
  • chore: bump astral-sh/setup-uv from 5 to 6 in the actions group by @dependabot in https://github.com/pasteurlabs/tesseract-core/pull/141
  • feat: Remove docker_py usage in favor of custom client that uses Docker CLI by @angela-ko in https://github.com/pasteurlabs/tesseract-core/pull/33
  • doc: update quickstart by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/144
  • feat(sdk): allow users to serve Tesseracts using multiple worker processes by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/135
  • chore: generate changelog for v0.9.0 by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/146

New Contributors

  • @angela-ko made their first contribution in https://github.com/pasteurlabs/tesseract-core/pull/33

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.8.5...v0.9.0

Scientific Software - Peer-reviewed - Python
Published by xalelax 8 months ago

Tesseract Core - v0.8.5

What's Changed

  • chore: ✅ Update pre-commit hooks by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/133
  • chore: 📦 Update dependencies by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/132
  • fix: fixed typos in jax recipe by @zmheiko in https://github.com/pasteurlabs/tesseract-core/pull/134
  • fix(sdk): Various improvements to SDK UX by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/136
  • chore: Update changelog by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/137

New Contributors

  • @zmheiko made their first contribution in https://github.com/pasteurlabs/tesseract-core/pull/134

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.8.4...v0.8.5

Scientific Software - Peer-reviewed - Python
Published by xalelax 8 months ago

Tesseract Core - v0.8.4

What's Changed

  • feat: allow creating tesseract objects from python modules by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/122
  • feat: also allow passing an imported module to Tesseract.fromtesseractapi by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/130

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.8.3...v0.8.4

Scientific Software - Peer-reviewed - Python
Published by dionhaefner 8 months ago

Tesseract Core - v0.8.3

What's Changed

  • fix: Fix Tesseract SDK decoding and error handling by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/123
  • chore: Bump changelog by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/126

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.8.2...v0.8.3

Scientific Software - Peer-reviewed - Python
Published by xalelax 9 months ago

Tesseract Core - v0.8.2

What's Changed

  • chore: Add UV support by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/99
  • chore: fix readthedocs config by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/113
  • feat: Add requirement provider config to build Tesseracts from conda env specs by @nmheim in https://github.com/pasteurlabs/tesseract-core/pull/54
  • feat: Introduce debug mode for served Tesseracts to propagate tracebacks to clients by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/111
  • chore: ✅ Update pre-commit hooks by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/119
  • chore: 📦 Update dependencies by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/118
  • fix: ensure Ubuntu-based base images work as expected; change default to vanilla Debian by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/115
  • fix: Enable users to opt-in to allowing extra fields in Tesseract schemas by setting extra="allow" by @nmheim in https://github.com/pasteurlabs/tesseract-core/pull/117
  • fix: meshstats abstract_eval by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/120
  • chore: Prepare for 0.8.2 release by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/121

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.8.1...v0.8.2

Scientific Software - Peer-reviewed - Python
Published by xalelax 9 months ago

Tesseract Core - v0.8.1

What's Changed

  • fix: Pydantic 2.11.0 compatibility (hotfix) by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/106

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.8.0...v0.8.1

Scientific Software - Peer-reviewed - Python
Published by dionhaefner 9 months ago

Tesseract Core - v0.8.0

What's Changed

  • feat: implement check_gradients runtime command by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/72
  • doc: dependencies and user privileges by @jacanchaplais in https://github.com/pasteurlabs/tesseract-core/pull/91
  • fix: OpenAPI schema failure for differentiable arrays with unknown shape by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/100
  • feat: Validate endpoint argument names before building by @jpbrodrick89 in https://github.com/pasteurlabs/tesseract-core/pull/95
  • refactor: Unpack endpoint payload by @jpbrodrick89 in https://github.com/pasteurlabs/tesseract-core/pull/80
  • fix: Prevent silent conversion of float array to int by @jpbrodrick89 in https://github.com/pasteurlabs/tesseract-core/pull/96
  • fix: use fixed uid/gid 5000:5000 for all tesseracts by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/102
  • fix: use uid 1000 instead of 5000 by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/104

New Contributors

  • @jacanchaplais made their first contribution in https://github.com/pasteurlabs/tesseract-core/pull/91

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.7.4...v0.8.0

Scientific Software - Peer-reviewed - Python
Published by dionhaefner 9 months ago

Tesseract Core - v0.7.4

What's Changed

  • feat: Friendlier error messages when input validation fails by @jpbrodrick89 in https://github.com/pasteurlabs/tesseract-core/pull/71
  • chore: remove superfluous secret scanning hook by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/78
  • chore: update pre-commit hooks by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/81
  • chore: bump numpy from 2.2.3 to 2.2.4 in the deps group by @dependabot in https://github.com/pasteurlabs/tesseract-core/pull/83
  • feat: Pytorch initialize template by @andrinr in https://github.com/pasteurlabs/tesseract-core/pull/53
  • feat: Add diffable field to input/output json schemas by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/82
  • doc: Various docs nits + UX fixes by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/85
  • feat: add stdout output for tesseract build by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/87
  • chore: Update changelog by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/90

New Contributors

  • @andrinr made their first contribution in https://github.com/pasteurlabs/tesseract-core/pull/53

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.7.3...v0.7.4

Scientific Software - Peer-reviewed - Python
Published by xalelax 9 months ago

Tesseract Core - v0.7.3

What's Changed

  • fix: Jax template now uses equinox filter_jit to allow non-array inputs by @jpbrodrick89 in https://github.com/pasteurlabs/tesseract-core/pull/56
  • fix: Added pip as dependency by @apaleyes in https://github.com/pasteurlabs/tesseract-core/pull/58
  • chore: Update README.md by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/59
  • chore: update pre-commit hooks by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/60
  • chore: Bump the deps group with 6 updates by @dependabot in https://github.com/pasteurlabs/tesseract-core/pull/63
  • ci: Bump the actions group with 2 updates by @dependabot in https://github.com/pasteurlabs/tesseract-core/pull/62
  • doc: Updated comments in jax recipe and docs on Differentiable flag by @jpbrodrick89 in https://github.com/pasteurlabs/tesseract-core/pull/65
  • feat: Raise proper error (ValidationError) for invalid inputs by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/67
  • chore: update pre-commit hooks by @github-actions in https://github.com/pasteurlabs/tesseract-core/pull/69
  • chore: bump the deps group with 2 updates by @dependabot in https://github.com/pasteurlabs/tesseract-core/pull/70
  • chore: add CODEOWNERS file by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/73
  • fix: Buggy isleaf check in the abstracteval of jax recipe and vectoradd_jax by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/75
  • feat: Add abstract_eval method to tesseract_core.Tesseract by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/76
  • chore: Bump changelog for v0.7.3 by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/77

New Contributors

  • @github-actions made their first contribution in https://github.com/pasteurlabs/tesseract-core/pull/60

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.7.2...v0.7.3

Scientific Software - Peer-reviewed - Python
Published by xalelax 10 months ago

Tesseract Core - v0.7.2

What's Changed

  • chore: tweak issue templates by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/35
  • chore: Use correct package name in coverage by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/39
  • chore: Scrub repo from pasteur internals + update dependabot by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/38
  • ci: Bump pre-commit/action from 3.0.0 to 3.0.1 in the actions group by @dependabot in https://github.com/pasteurlabs/tesseract-core/pull/41
  • doc: Python API for Julia example by @MatteoSalvador in https://github.com/pasteurlabs/tesseract-core/pull/37
  • chore: Bump the deps group with 12 updates by @dependabot in https://github.com/pasteurlabs/tesseract-core/pull/42
  • chore: Move non-unit examples to forums by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/44
  • chore: Update links to docs by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/47
  • fix: Validate ShapeDType in abstract-eval schemas by @nmheim in https://github.com/pasteurlabs/tesseract-core/pull/40
  • fix: resolve paths before passing volumes to docker by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/48
  • doc: Fix links again by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/49
  • ci: Speed up CI builds by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/50
  • fix: Dangling Tesseracts in e2e tests by @xalelax in https://github.com/pasteurlabs/tesseract-core/pull/51
  • fix: Sanitize error output by @apaleyes in https://github.com/pasteurlabs/tesseract-core/pull/52
  • chore: Switch out private registry for public pypi by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/55

New Contributors

  • @dependabot made their first contribution in https://github.com/pasteurlabs/tesseract-core/pull/41
  • @apaleyes made their first contribution in https://github.com/pasteurlabs/tesseract-core/pull/52

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.7.1...v0.7.2

Scientific Software - Peer-reviewed - Python
Published by dionhaefner 10 months ago

Tesseract Core - v0.7.1

What's Changed

  • fix: Address issues in installing and first steps with Tesseract by @dionhaefner in https://github.com/pasteurlabs/tesseract-core/pull/30

Full Changelog: https://github.com/pasteurlabs/tesseract-core/compare/v0.7.0...v0.7.1

Scientific Software - Peer-reviewed - Python
Published by dionhaefner 10 months ago

Tesseract Core - v0.7.0

The initial release of Tesseract Core.

Scientific Software - Peer-reviewed - Python
Published by dionhaefner 10 months ago