Spaces:
Sleeping
Sleeping
Commit History
-
Load a bundled example into the form instead of running it
The example buttons posted a job description straight to /run, so a user saw a report without seeing what produced it. One "Load example" button now fills the form with the example: the reference, one row per condition with its reads, and the options it runs with. The run is left for the user to start, so any of it can be changed first. The run button is disabled until the form holds a reference, at least one condition, a name for every condition, treated reads in every condition, and a value for every required option. The tooltip of the button names what is missing. A condition is no longer dropped in the page for want of treated reads, so an incomplete one reaches the server and is reported. The multi-reference example is three references of the Ribonanza PDB library, each with a 2A3 and a DMS condition and the matched no-modification background. It replaces one condition of 6000 sparse references that named neither its chemistry nor a background. The page titles name the page, th…6d5917c
-
Submit the form and the examples as one JSON job description to /run
The /run endpoint takes a multipart request whose "job" field holds a JSON job description. The description names the reference, the name and read files of each condition by role, and the options in the settings file format. A file reference is either "uploads/<part>", which names a file part of the request, or "examples/<path>", which names a bundled example file. job_description.py checks the description, and app.py stages both kinds of reference through the same code. The form builds the job description in the browser and posts it with the chosen files. Each bundled example is a job.json file that the page and scripts/smoke.sh post unchanged. The /run-example endpoint, the server-side form parsing, and the separate example settings files are removed. The settings check now rejects a fractional value for an integer option, because it is the only validation of options. The single-reference example now holds the rool120 plasmidsaurus pilot data as four conditions: hepes-2A3, hepes-DM…83f9087 -
Choose the results directory by write test, and harden the sync workflow
Replace the /data existence check with a write test over a candidate list, so the app runs whether persistent storage is absent, attached and writable, or present and not writable. Raise where no candidate accepts a write, so the container fails at startup instead of failing every job. Route CMUTS_RESULTS_DIR through the same test. Run the results cleanup on an interval in a background thread rather than once at startup, so a server that holds persistent storage keeps pruning. Print the chosen directory at startup. In the workflow, restrict the token to read access, move the Hugging Face credentials from the push URL into an authorization header, and retry a build-status call that does not answer. Add a step that runs the image against no /data, a writable /data, and a read-only /data, and checks the directory it resolves. In the smoke script, add timeouts and bounded retries to the one-shot calls, retry a status poll that does not answer, and reject an empty job URL. Declare app_p…1a77429
-
Gate the deployment on smoke checks before and after the push
scripts/smoke.sh submits each bundled example to a running space, waits for its pipeline to finish, and checks that its report answers. The sync workflow now builds the image on the runner with layer caching and runs the script against it; only on success does it push to Hugging Face, wait for the build there, and run the script once more against the deployment.938bee0