latch nextflow registermvp for registering nextflow workflows to run outside of flyte
launch_from_launch_planandlaunchinlaunch_v2now return an Execution dataclass which allows user to wait on the execution output once execution succeeds
- Uploading or downloading data (LPath, latch cp, latch sync) in context where user does not have access to
/rootresults inPermission Denied
- Beta release of the function
launch_from_launch_planinlatch_cli.services.launch.launch_v2which supports launching workflows from a LaunchPlan name.
- Bug in
latch.executions.get_execution_metadatawhere the wrong environment variable name was used
latch.executions.get_execution_metadatafor getting metadata about the running execution
- LPath download caching -- need to search with bytes, not string
- Expand data provenance when available by providing a latch pod ID for uploads and downloads.
- Better error messages when dill cannot unpickle and when types do not match for
launchinlatch_cli.services.launch.launch_v2
- Beta release of the function
launchinlatch_cli.services.launch.launch_v2which supports launching workflows registered with latch version >= 2.62.0 in the workflow environment using python parameter maps.
- Add support for using Lustre storage with Nextflow workflows
py.typedfiles in all packages
- Bug where
about.mdwould not be read on register even if configured
- description field to
LaunchPlan
latch register --mark-as-releaseflag
latch registerno longer asks for file overwrite confirmation when run with--yes
latch registerreturns an exit code of2on duplicate registration
gqlupgraded to3.5.0requests-toolbeltupgraded to1.0.0
- Bug in
latch developwhere rsync processes would not wait for the previous to complete before spawning
- rsync in
latch developnow respects both.gitignoreand.dockerignoreexclusion rules
- New backend for
latch developwhich allows users to choose which instance they want to develop in (allowing, e.g. GPU enabled development)
- Fix issue where
LaunchPlans would not be interpreted correctly in custom workflow modules
latch register --workflow-moduletreating.separated python paths as file paths
latch launcherror messages being suppressedg6e-12xlargeGPU instance type incorrect GPU annotation (1 -> 4 L40s GPUs)
- Use Nextflow base image when generating Dockerfile for a Nextflow workflow.
- Fixed error message when
latch cpfails due to permissions errors.
- Improved error message when
latch cpfails due to permissions errors.
- During registration, we no longer execute workflow code outside of a container to check for syntax errors / parse out task-specific Dockerfiles as this was error prone. We now only parse the code into an AST to check for syntax errors, and inspect the AST to pull out any task specific
dockerfilearguments. - This is a breaking change for users that use the
dockerfileargument for thetaskdecorator:- Old behavior:
dockerfileaccepts apathlib.Pathargument which will be resolved against the current working directory - New behavior:
dockerfilemust be astrliteral (no variable values or expressions) - this is so that we can pull it out from the AST without executing anything
- Old behavior:
lytekit->0.15.28
- Fix bug in
LPathwhereiterdirwill return pending and copy-in-progress files
lytekit->0.15.27
lytekitplugins-pods->0.7.4andlatch-persistence->0.1.4
- Fix bug in
LPathwheredownloadwithcache=Trueset would fail on a file already present on the file system without the user.version_id xattr
lytekit->0.15.26andlytekitplugins-pods->0.7.3
- Bump version of
latch-persistence(larger connection pool to suppress warning from urllib3 and perhaps improve performance)
- Bump version of
latch-persistence(parallelize uploads over single file)
- Bump versions of
lytekitandlytekitplugins-pods
- Add
g6e_48xlarge_taskto request 8x L40s GPU instances.
- Update
LPathto uselatch_persistenceinstead oflatch cpinfrastructure- allows for dramatic download speed ups due to multiprocessing the downloads into chunks
- Update default
storage_expiration_hoursto 7 days
- Update error messaging and docstring for
latch preview
- Add
g6e_xlarge_task,g6e_2xlarge_task,g6e_4xlarge_task,g6e_8xlarge_task,g6e_12xlarge_task,g6e_16xlarge_task, andg6e_24xlarge_taskto request G6e GPU instances.
- Update latch base image to 'cb01-main'
latch dockerfilenow accepts explicit options for files containing- apt deps
- conda deps
- r deps
- pip deps
- pyproject.toml / setup.py
- .env
latch dockerfileno longer does implicit dependency inferrence based on the presence of special files in the project root directory - now all dependency files need to be passed explicitly in the command line.
- Bump ephemeral storage limits for V100 GPU pods
- Reduced cpu/memory requests to ensure large GPU pods are schedulable
- Add retry logic to
latch_sdk_gql.execute
- Add more ephemeral storage to large GPU pods
- Bug in
LPathdownload throws an exception when version id is null
- Fix pagination in
TableUpdater.list_recordsto not OOM when table size is too large (>250k records)
- Plots Artifact dataclasses
cacheparameter toLPathdownload method to allow for caching of downloaded files
TableUpdater.upsert_columnwould fail when trying to create an enum-typed column
- Add
--workflow-moduleflag to specify which workflow module to register with flyte
- Better error messaging for Snakemake registration errors (Thank you @msto!)
- Pass
@taskarguments through@custom_task
- Bugs when using multiple dockerfiles
- Add reconnect for ssh_client operations
- move workflow name / version parsing to the start of registration flow
- Bug in
latch developwhere the workflow name would be parsed incorrectly
- Nextflow
- add
latch nextflow attachcommand to attach to a nextflow work directory
- add
- Nextflow
- bump nf runtime version to 2.3.0
- use
NXF_ENABLE_FS_SYNCflag in workflows to enable using sync on task finish
- Nextflow
- bump nf runtime version to 2.2.0
- Nextflow
- Run nextflow task pods as root to allow full access to all files in the shared filesystem
- Nextflow
- bump nf runtime version to 2.1.6
- Nextflow
- Add support for uploading command logs after task execution
- All requests done by
latch cpnow- use connection pooling / reuses
- have automatic retries with backoff
- Nextflow
- Add support for $defs keyword for metadata generation
- Make OFS the default storage option for Nextflow workflows
- Bump the
nextflowbase image tov2.1.2
- Improve error messaging when registering Nextflow workflows
- Nextflow
- Fix typo in Nextflow base image
- Nextflow
- Update
nextflowbase image to versionv2.0.0
- Update
- Nextflow
- Update
nextflowbase image to versionv1.1.8
- Update
- Move tty and termios imports to enable
latch cpon Windows
- Make
latch cpwork on Windows without WSL
- Bump lytekit version to fix download of empty files
- Remove caching from
tinyrequestsmodule
- New task annotations for V100 GPU enabled nodes
@v100_x1_task: 1 V100 GPU@v100_x4_task: 4 V100 GPUs@v100_x8_task: 8 V100 GPUs
- The
--chunk-size-mibtolatch cpwhich allows users to configure the chunk size of uploads
- Lower the default chunk size for
latch cpto64 MiB latch cpnow reuses connections for speed
- Fix a bug where GPU template selection wouldn't happen correctly in
latch init
- Nextflow
- Update
nextflowbase image to versionv1.1.7
- Update
- Nextflow
- Normalize result paths before publishing results
- lytekit
0.15.10->0.15.11which parallelizes file downloads from Latch Data
- Nextflow
- Report workdir size on workflow completion
- Add git commit information to version string if exists
- Pin
cryptographyto remove warning messages when importing paramiko
- Better error messages when using
latch execon a task that is not yet running
- Nextflow
- Indentation error in samplesheet constructor function call
- Nextflow
- Cleanup Nextflow logging
- Update
nextflowbase image to versionv1.1.6
- Ability to publish results to be displayed on executions
Resultspage
- Add
--coresparameter tolatch cp
allowed_tablesargument toLatchParameterto constrain the set of registry tables selectable from a samplesheet parameter
- Ability to override the target workspace for registration using the
LATCH_WORKSPACEenv variable.
- Nextflow
- Make EFS storage period configurable
latch cpbug where directories containing symlinks would hang and not complete uploading
- Nextflow
- Update
nextflowbase image to versionv1.1.5
- Update
- Nextflow
- Make execution profile configurable via UI
- Nextflow
- Update
nextflowbase image to versionv1.1.4
- Update
- Sync
- Update objects with no ingress event
- Sync
- Add option for number of cores
- Snakemake
- Don't throw an exception on
subprocess.CalledProcessError,sys.exit(1)instead to avoid polluting stdout with a traceback
- Don't throw an exception on
- lytekit
0.15.9->0.15.10which removes unnecessary prints in exception wrappers
- Nextflow
- ignore
.gitdirectory when copying /root to workdir
- ignore
- Nextflow
- use nextflow dockerfile instead of downloading the binary directly
- Nextflow
- bump nf runtime version to 1.1.3
- Use
lytekit==0.15.9which includes retries for file downloads
- latch sync upload in parallel
- latch sync missing normalize_path call
- latch sync cosmetic path display extra slash
- Timeout in tinyrequestst
- Snakemake + Nextflow
- fix about page file validation
- Nextflow
- remove
storage_gibparameter from pvc provisioning request
- remove
- Nextflow
- bump nf runtime version to 1.1.1
- Nextflow
- bump nf runtime version to 1.1.0
- Snakemake
- expose underlying Latch paths in config object
- Nextflow version 1.0.11
- Snakemake
- fix dataclass name collisions when generating metadata for Snakemake workflows
- Nextflow version 1.0.10
- Snakemake
- fix metadata_root param for Snakemake workflows
- Nextflow
- Support for relaunching from failed task using
-resumeflag
- Support for relaunching from failed task using
- Nextflow
- Bump Nextflow version to 1.0.8 to add retries on failure
- Nextflow + Snakemake
- Add
--metadata-rootoption tolatch register
- Add
- Nextflow
- Bump Nextflow version to fix releasing workflow to different workspace
- Nextflow
- Command to upgrade nextflow version
- Nextflow
- Bump nextflow version to v1.0.4 -- fixes large file uploads
- Nextflow
- Upload .nextflow.log on success and failure
- Add tolerations to nextflow runtime task
- Bump nextflow version to v1.0.2
- New error messages when trying to access registry projects/tables/records that don't exist.
- Nextflow
- Remove /finalize call at end of workflow
- Nextflow
- Bump version from v1.0.0 to v1.0.1 -- resolves upload data corruption
- Nextflow
- Fix default generation for parameters with type:
typing.Optional[LatchFile,LatchDir]
- Fix default generation for parameters with type:
- Nextflow
- Support for About page
- Pin Nextflow version to latch version (deprecate --redownload-dependencies)
- Snakemake
- Support for adding About page content from a markdown file
- Nextflow
- Support for generating metadata from
nextflow_schema.json - Command to generate Nextflow entrypoint without registering
- Support for generating metadata from
- Make
LatchRuleclass a dataclass
- Support for uploading Nextflow workflows
TableUpdater.upsert_recordno longer does file path resolution, and instead defers that operation to when the update commits. This drastically speeds up registry table updates to blob-type columns.
- Support selecting organization workspaces with
latch workspace
- Bump docker version to fix docker/docker-py#3256
- Latch resource limit on mem-512-spot should be 485 Gi instead of 490 Gi
- Accomodates the migration of personal workspaces to team workspaces.
- Snakemake
- remove conversion of primitive types to string for input
params - add support for output directories
- remove conversion of primitive types to string for input
- Circular import when importing latch constants
- Snakemake
- support for running python scripts inside containers
- Cleanup toleration assignment
- Support up to 126 cores and 975 GiB of memory in custom tasks
- Workflow identifier should be immutable per
latch init - Latch workspace does not display selected workspace when authenticated with workspace token
- Workspace id determination failing when authenticated with workspace token
- Adding support for GCP mount paths
- Allow the use of
**kwargsin dynamic resource allocation functions
- Snakemake
- Namespace Snakemake execution outputs by execution name
- Snakemake
- Add support for using directories as inputs to rules
--wf-versionflag todevelopto use a container for a specific workflow version--disable-syncflag todevelopto disable automatic syncing of local files. Useful for inspecting workflow code from a past version without overwriting with divergent local changes.
- Actually fix the issue where functions that use
current_workspacewould break if called from an execution
- bump flytekit version to 0.15.6 which fixes retries in dynamic resource allocation for map tasks
- Issue where functions that use
current_workspacewould break if called from an execution - Issue where CLI commands that required an auth method would not print the correct error message if no auth was present
- bump flytekit version to 0.15.5
- latch register failing when using launchplans with file or directory types
- add support for allocating task resources at runtime
- latch commands default to the user's default workspace instead of personal workspace
- latch cp
- Commandline docstring states recursive default behavior.
- latch sync
- prints error when case other than local -> remote is attempted
- Snakemake
- Add
container_argsfield inEnvironmentConfig
- Add
- Snakemake
- fix bug where two rules with the same input parameter name causes JIT step to fail
- Fix bug where temporary SSH keys were getting added but not removed from the SSH Agent during workflow registration
- Fix bug
LPathresolves to parent node if path does not exist
latch mkdircommand (replaced withlatch mkdirp)latch rmcommand (replaced withlatch rmr)latch touchlatch open
- add
LPathsupport for uploading and copying to non-existent directories - clear
LPathcache after modification operations such asrmandupload
- skip symlinks that point to non-existent files when running
latch cp
- add
LPathimplementation - add support for registering workflows without Latch metadata
- Snakemake
- add support for optional input parameters
- Snakemake
- fix bug in
ruleorderdirective caused byblock_contentmonkey patch returning None
- fix bug in
- Snakemake
- warn instead of error when config parameter type cannot be parsed in generate-metadata command
- Snakemake
- support for config files with nested file paths
- GPU support for non-container tasks
- Add
coresfield to SnakemakeMetadata object
- Broken default in snakemake metadata which prevented registration of any workflow
- Snakemake
- update defaults for conda + containers to
False
- update defaults for conda + containers to
- Snakemake
- support for pulling images from private container registries
- add config field for running tasks in conda and container environments
- Snakemake
- fix regression in 2.38.2 that caused failure to resolve upstream nodes for target files
- Snakemake
- support for per-task containers in Snakemake workflow using the
containerdirective
- support for per-task containers in Snakemake workflow using the
- Snakemake
- add
_jit_registersuffix when resolving Snakemake workflow name forlatch develop - use
variable_name_for_valueinstead ofvariable_name_for_filewhen resolving upstream jobs for target files
- add
- The
--openoption tolatch register, which if passed in, will open the workflow in the browser after successful registration
- Snakemake
- remove
.latchdirectory copy from Dockerfile generation to avoid unexpected file overrides - limit pulp package version to < 2.8 to fix snakemake import failure
- remove
- The
latch execcommand to spawn a shell inside a running task.
- Snakemake
- support for
latch developfor JIT workflow
- support for
- Snakemake
- user input config overrides default config instead of merging
- JIT workflow fails if the same keyword is used to define two different input parameters
- fail to serialize
snakemake_datawhen any params are defined aspathlib.Path
rename_current_executionfunction which allows programmatic execution renaming.
- Snakemake
- ability to cache snakemake tasks using the
--cache-tasksoption withlatch register
- ability to cache snakemake tasks using the
- Minor aesthetic enhancements to
latch workspace- the currently active workspace is now marked
- the current selection is marked with a
>for enhanced readability on terminals with limited color support
- Snakemake
- bug in 2.36.9 where output directories would still fail to upload because of a missing
pathlib.Path->strconversion.
- bug in 2.36.9 where output directories would still fail to upload because of a missing
- Snakemake
- bug where a snakemake task would fail to upload output directories
- Snakemake
- bug where a snakemake workflow would only run successfully for the user who registered it
- Snakemake
- added best effort display name parsing for
generate-metadata - tasks now upload their intermediate outputs for better debugging
- added best effort display name parsing for
- Snakemake
- bug where
update_mappingwould iterate over the entirety of/root
- bug where
- Added ability to skip version check using an env variable
- Bug in
latch loginwhere not having a token would prevent token generation
- Added ability to get a pandas Dataframe from a registry table.
- Added
MultiselecttoLatchAppearance - Snakemake
- fixed case where config values would not be populated correctly in the JIT workflow
- Better error messaging for both
latch cpandlatch mv.
- Bug where Python 3.8 clients would crash due to a broken type annotation
- Snakemake
- Log files are now marked as outputs - this enables rules to use logs of previous rules as inputs
latch mvnow supports glob patterns (with the same restrictions aslatch cp)
latch.registry.record.Record.get_table_idmethod for querying the ID of the table containing a given registry recordlatch.registry.table.Table.get_project_idmethod for querying the ID of the project containing a given registry table
- Snakemake
- Remote register support
downloadfield for file inputsconfigfield for file inputs- Blanket support for parameters of any type via the
SnakemakeParameterclass - Support for generating a
latch_metadatadirectory from aconfig.yamlwithlatch generate-metadata - Support for default values for parameters
- Snakemake
- JIT register step no longer downloads input files by default
latch_metadatashould now be a module (directory containing an__init__.pyfile), as opposed to just being a file
- Snakemake
directorymodifier for input / outputs- Support
tempby removing from compiled rules. All files / directories are temporary because they are deleted at the end of each job on Latch. multiextoutput modifierreportoutput modifierparamsin rules
- Snakemake
- Replace skipped rules with
Ellipsis. Supports rules nested in conditionals where previously an empty block was produced. - Patched parser to generate compiled code for
workflow.includecalls Compiled workflow.include should carryprint_compilationkeyword (snakemake/snakemake#2469) - Detect use of
condakeyword and install in image. This effectively supports wrapper/conda keywords. Iterable, Generatorcause issues as type hints when imported fromcollections.abcrather thantyping
- Replace skipped rules with
- Add
latch syncfor synchronization from local to remote directories that only uploads modified content
- Snakemake:
- Better errors if
Snakefileorlatch_metadata.pyfile missing - Correct issues with snakemake example project
- Better errors if
- Snakemake:
-
--snakemakeforlatch dockerfilecommand to generateDockerfilewith necessary instructions -
Snakemake example for
latch init
-
- A bug in
latch developwhere images for newly registered workflows could not be found.
- Snakemake:
- Ignore global ruleorder directive
- Ignore temporary condition on output values
- Fixed a bug in
latch lswheredatetime.isoformatwas called on strings with timestamps (which is not supported on python < 3.11)
- Snakemake issues
- bounded snakemake versions to prevent compatibility issues that arise in later versions
- small bugs in list json encoder
- mishandled http issues.
- Fixed
latch lsto work with all latch URLs - Fixed autocomplete bug where no completion results would be returned for longer paths
- Corrected
dataclassimport and removedmultiprocessinglogging fromlatch cp.
latch cpcan now handle directories with up to50kobjects
- Various vestigial bugs in
latch developthat blocked certain users
- Any CLI command will now display a message if no authentication token is found
latch stop-podrenamed tolatch pods stop
- Support for python 3.11
- pinned
lytekittov0.15.2to remove numpy + pandas + pyarrow dependencies - pinned
lytekitplugins-podstov0.6.1to remove dependency on numpy - pinned
latch-sdk-gqlto0.0.6which supports 3.11 - pinned
latch-sdk-configto0.0.4which supports 3.11
stop-podcommand to the CLI. Allows the user to stop a pod in which the CLI resides or to stop a pod using its id.
- Tasks explicitly request ephemeral storage
custom_taskandcustom_memory_optimized_taskallow selecting storage sizecustom_memory_optimized_taskfunctionality merged intocustom_task
custom_memory_optimized_task
- changed beta register implementation
- pinned
lytekittov0.14.15to bring inmarshmallow-enumas a dependency.
- fixed bug where
LatchFiles/LatchDirs would providefile://URIs instead of Unix paths, which was causing errors in, e.g., calls toopen().
- fixed bug where
LatchFiles/LatchDirs wouldn't respect the workspace selected usinglatch workspace.
- Added
.iterdir()method toLatchDirto iterate through subdirectories
- Fix unclosed file in
lytekitupload code
- LatchFiles accessed through registry are downloaded to a file with the same name as the file on latch
- Gated
latch developresource selection behind an environment variable due to its slow performance
- Added back several dependencies to allow the old
latch developinfrastructure to work properly.
- Dockerfile generation uses
\escaping: fixes bug in Conda and R template
- Upgraded
paramikodependency to>=3.2.0which fixes aPKeyissue.
latch registerexperimental features (2.24.xx) are now gated behind an environment variable, and by default we use the old (pre 2.24) register backend.
- Upgraded lytekit to version 0.14.13 to support uploading files up to 5 TiB from within a task
- Internal bug in
latch registerwhich caused an API call to be made when not necessary, resulting in an irrelevant exception being thrown
- Bug in
latch cpupload path where URLs would be generated but files would not be uploaded
- Added client side rate limiting to
latch cpupload API calls so as to not throttle our backend.
latch registerprovision timeout bug- catch
KeyboardInterrupts during register provisioning - updated
latch-baseimage to fix docker-in-docker workflows which use the host machine's network interface
latch developandlatch registerprovision timeout increased to 30 minutes
latch developandlatch registerSSH connections timeout on inactivity
- Bug in
latch developwhere rsync would continually flood stdout with requests to confirm host key authenticity
- Rename
--no-globoption shorthand to-Gforlatch cp
- Bug in
latch registerwhere SSH connections were going stale
- Glob support for latch cp
- latch cp autocomplete
- ability to choose task size in latch develop
- Backend implementations of latch register and latch develop
- Fix limits and imports
- Memory optimized task type
- Template generation bug in empty wfs
- NFCore template using wrong Latch version
- When a CLI command fails, metadata (
latchversion, current python, os info, etc) is printed. - There is now a prompt on failure to generate a crash report. Previously reports were generated automatically which was slow and sometimes error-prone.
- Bugs that broke support for Python 3.8 users:
- Fixed imports of
functools.cache - Fixed
withstatements with multiple contexts
- Fixed imports of
- Removed unused packages
awscliuvloopprompt-toolkit
catalogMultiCreateExperimentsinstead ofcatalogMultiUpsertExperimentsin registry API
catalogMultiCreateProjectsinstead ofcatalogMultiUpsertProjectsin registry API
workspace_idfailing when file is empty
latch cpfailing when uploading a file into a directory without specifying the resulting filename.
latch cpoccasionally throwing an error when finalizing uploads for directories.
latch cpnow supports remote -> remote copying (i.e. both source and destination are remote paths). This enables copying files across workspaceslatch mvfor moving remote files.
- Semver violation related to removed
__init__.pyfiles. These will happen again in the future but a proper major release will be created, communicated, and marketed.
- Upgraded dependency
lytekitto version0.14.11.
- More imports in docker/NF-core template workflows have been updated to reflect the import changes outlined in the previous version.
- Imports in docker/NF-core template workflows have been updated to reflect the import changes outlined in the previous version.
- NFCore example workflow
-
Replace docker example workflow with blastp
-
Docker image selection when creating an empty workflow
-
Workflow Name, Author Name prompts when creating an empty workflow
-
latch cphas been rewritten and now allows for latch paths of the formlatch:///a/b/clatch://xxx.account/a/b/cwherexxxis the account IDlatch://shared.xxx.account/a/b/clatch://shared/a/b/clatch://mount/a/b/clatch://xxx.nodewherexxxis the data ID (viewable in Latch Console)
- Unnecessary imports in
__init__.pyfiles have been removed. Statements likefrom latch.types import LatchFilewill no longer work, and such objects should be imported from their defining files instead (in this example, the correct import isfrom latch.types.file import LatchFile)
- Revert an undocumented change that caused custom task settings to not work
- Typo in
latch initR template
latch cpshould automatically detect file content type
- Registry API crashes when resolving paths if
~/.latch/workspacedoes not exist
latch registerwill ask for confirmation unless--yesis provided on the command line
latch register --remoteis now the default. Use--no-remoteto build the workflow image locally
latch register --remotewill no longer ask for host key fingerprint verification
- Registry APIs should properly resolve files when using workspaces instead of always using the signer account
latch workspaceoptions should be ordered alphabetically
- Conda template registration issue and run in correct environment issue
- Tasks stuck initializing on nodes that ran multiple tasks before
- Upgrades lytekit to
0.14.10
latch cpnow has a progress bar for downloads (previously they only showed for uploads)
- Functions for creating/deleting Projects and Tables, and creating Table columns in the Registry API
- Registry table updates should work with columns that have spaces in names
- Improved Registry API
__str__and__repr__
- Registry API should work in an running asyncio event loop
- A new API for interacting with Latch Registry
- Added
gqlandaiohttpas dependencies
- Prevent
latch cpfrom hitting the s3 part limits which causes large file uploads to fail
- Switched a dictionary union from
|=notation to a manual for-loop to maintain support for Python 3.8.
- Option to disable default bulk execution mechanism when an alternative (e.g. using a samplesheet parameter) is supported by the workflow itself
- Verified Trim Galore adapter trimming workflow stub
- Custom tasks with less than 32 cores receiving incorrect toleration
- Verified MAFFT alignment workflow stub
- Parameter flow forks should preserve the order of branches
latchcommands which require authentication prompt user for token when no browser is present on machine
- SampleSheet metadata to
LatchParameter-- allows for importing samples from Registry
latch registerssh-keygen bug when.latchfolder does not exist
- Upgrades lytekit to
0.14.9
- Docker template uses correct base image
- Internal state file should be automatically created when running
latch registerandlatch develop
latch init: Docker in Docker template workflowlatch init: Docker base image- Small, medium, and large tasks use the Sysbox runtime to run Docker and other system software within task containers
- Add latch/latch_cli/services/init/common to pypi release
- The
latch dockerfilecommand which auto-generates a Dockerfile from files in the workflow directory. - The
latch initcommand can use base images with hardware acceleration using the--cudaand the--openclflags - The
latch initcommand does not populate the workflow directory with a Dockerfile by default - The
latch initcommand will populate the workflow directory with a Dockerfile if passed--dockerfile - The
latch registerandlatch developcommands auto-generate a dockerfile from files in the workflow directory if no Dockerfile is present - Documentation for the auto-generated Dockerfile feature
- Quickstart tutorial is written factually
- Getting started docs are written factually
latch developdocumentation updates
latch developthrows error if user does not have rsync installedpip install latchinstalls thewatchfilespackage forlatch develop
- LatchDir initialized with local path initialized to Path object fails on upload
latch developdrops users directly into a shell in their docker environment. Local changes in the workflow directory and any subdirectories are automatically synced into the environment. Deleted local files are not deleted in the environment. However, any additions or modifications to files and directories are propagated.
- latch develop no longer drops user into REPL with multiple options -- it goes straight to a shell.
- LatchDir initialized with local path initialized to Path object fails on upload
- Use best practices in
latch inittemplatesLatchOutputDirused to indicate output location on Latch- Regex rules used to validate files
- Splits tasks into files
- Include empty template
- Remove yaml metadata from docstring
- Use messages in examples
- Error handling
- Add LICENSE file
- Add README file
- Allow user to select template in GUI or pass flag
- Allow user to run
latch init .
- LatchDir type transformer bug with Annotated types
- LatchOutputDir is fixed
- The
latch developcommand, and with it an ecosystem supporting local development and faster debugging. - The
latch cpcommand now displays a x number of files out of n indicator and displays which stage of the download is going on (network request to get presigned urls vs downloading blob data). - A new error that is thrown when there is an inconsistency between a
LatchMetadataobject and its associated workflow's parameters. - The function
get_secretwhich allows users to reference secrets they've uploaded to the Latch platform from within a workflow.
- The commands
latch rm,latch mkdir, andlatch touch.
- The operators
left_join,right_join,inner_join,outer_join,group_tuple,latch_filter, andcombine.
- Removed a broken SDK test (launching CRISPResso2)
requestslibrary given higher version lower bound to fix warning with one of its dependencieslytekitversion updated to- pin
numpyto version1.22(breaking changes in later versions of this library) - have better behavior when downloading directories during local development
- force retry on connection closed on file uploads (POST requests more generally)
- pin
latch get-paramswill escape class attribute names (representation of Enum type) if they are python keywordslatch previewnow requires a directory argument instead of a workflow name argument, and now behaves consistently with regular parameter interface generation.- The crash reporter now prints stack traces of caught exceptions in the correct order
latch developnow throws an error when run on a workflow that hasn't been registered yet.- Reworked how internal configs are stored, eschewing a flat dictionary of API endpoints in favor of a nested dataclass. This removes a small class of potential mistakes arising from misspelling, and gives the benefit of IDE intellisense.
- Made both configs singletons.
- Fixed issue with registering libraries containing nested imports used as
subclasses (eg.
torch)