Skip to content

submitr

0.1.0Package record

Scaffold and Submit Computational Jobs to HTC Schedulers

0packages depend
1.7Kdownloads / year
82.4%test coverage
13/13flavors OK

Overview

About

Provides scaffolding tools to help researchers prepare and submit computational jobs to high-throughput computing (HTC) schedulers. Generates the files required to run containerized R analyses on 'HTCondor', including submit files and executable scripts, and wraps the system commands needed to stage files, submit jobs, monitor status, and retrieve results from a CHTC submit node. Provides 'htc_config()' for managing connection details and SSH connection reuse guidance. Works naturally alongside 'containr' for container image management and 'toolero' for dataset splitting and project scaffolding.

Changes in 0.1.0

Initial release

submitr is the third package in the **From the Notebook to the Cluster**

family, alongside toolero and containr. It provides a workflow for

submitting containerized R analyses to the UW-Madison Center for High

Throughput Computing (CHTC) from inside R.

New functions

Connection management

  • htc_config() -- create or read a project-level htc.cfg configuration file. On first use, prompts interactively for username and server, displays ControlMaster SSH setup guidance to reduce Duo MFA prompts, writes htc.cfg, and adds it to .gitignore. Subsequent calls read the existing file and validate server reachability. Returns a named list with username and server. Errors informatively when username or server are supplied as empty strings.
Show all changes in 0.1.0Hide the rest of the changes in 0.1.0

Job scaffolding

  • htc_gen_submit() -- generate an HTCondor .sub submit file from project parameters. Supports single-job and multiple-job modes. Multiple mode reads a manifest from toolero::write_by_group(manifest = TRUE), extracts filenames, writes subdatasets.csv, and emits queue file from subdatasets.csv. Resource presets (small, medium, large, custom) are loaded at runtime from inst/extdata/htc-resources.yaml; a local ./htc-resources.yaml takes precedence over the package default. GPU support via gpu = TRUE and gpu_options. comments = TRUE annotates each section of the generated file with explanatory text.
  • htc_gen_executable() -- generate the .sh executable script that HTCondor runs inside the container. Produces a four-element script: shebang, mkdir, Rscript, and tar. In multiple-job mode, passes ${1} as a positional argument to the R script. r_script must be supplied explicitly -- there is no default. set_executable = TRUE (default) sets executable permissions via Sys.chmod().

File transfer and job control

  • htc_upload() -- copy files to the CHTC submit node via scp. Accepts single files, vectors of files, directories (transferred recursively), and glob patterns. remote_path defaults to "~/". dry_run = TRUE previews the command without executing it.
  • htc_submit() -- run condor_submit on the remote submit node via SSH from the remote directory where files were uploaded. Returns the cluster ID invisibly for use with htc_status(). Supports dry_run = TRUE.
  • htc_status() -- check job progress via condor_q. Optionally filters by cluster ID. watch = TRUE polls at interval seconds (default 60) until the cluster ID leaves the queue. Returns condor_q output invisibly as a character vector. Supports dry_run = TRUE.
  • htc_download() -- copy result files back from the submit node via scp. Supports single filenames, vectors of filenames, and glob patterns ("*.tar.gz", "job.*"). Glob patterns are single-quoted to prevent local shell expansion. local_path defaults to ".". Supports dry_run = TRUE.

Package infrastructure

  • inst/extdata/htc-resources.yaml ships with the package and provides default resource presets for htc_gen_submit().
  • inst/extdata/hello-world.sub and inst/extdata/hello-world.sh included as test files for end-to-end workflow verification.
  • inst/extdata/sample.R included as a sample R script for use in examples.

Testing

The test suite uses a three-layer strategy to handle the fact that end-to-end

testing requires a live HTCondor environment and SSH access. Layer 1 covers

argument validation. Layer 2 covers command construction using dry_run = TRUE

and mocked bindings. Layer 3 integration tests are opt-in via

Sys.setenv(CHTC_USERNAME = "your.netid") and never run on CRAN or CI.

153 tests passing across seven test files.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 1.3 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OK2026-08-04
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK7 OK2026-05-20
Advisories

none known

Documentation

In release 0.1.0
READMEYes · 1,379 wordsVignettesYes · 1 · staticNEWSYes · 100% structured · mentions 0.1.0Citation fileNoWebsiteYes · pkgdown
Help pages
8 (1 internal)includes a package overview page
Examples that run
29%2 run in a plain check · 5 only when donttest examples are enabled (R CMD check --as-cran)
Exported functions with examples
100%
Documented parameters
100%
Return-value docs
100%
Help pages citing references
0%

Downloads

1.7K
CRAN downloads in the past year
Rank #16,287 · ~5/day · ~138/mo
Daily download trend is not available in this view yet.
21730 days
77390 days
1.7K1 year
Compare downloads with other packages →
Also on30 r2u3 autocran

Repository

1Stars
0Forks
7Open issues
0Open PRs
2Releases
49Commits
1Commit identities
49 commits · Last activity 2026-10-01 · 0% stars, 30d · Default branch at 0.1.0.9000, ahead of CRAN 0.1.0 (checked 2026-10-22)
Responsiveness
How these are sampled
PRs merged (all time)
not measured
Median days to close, 50 most recently updated closed issues
16
Median days to close, 50 most recently updated closed PRs
not measured

Stars over time

2026-05-21 · 12026-07-07 · 1
PracticesBeta

10 development-tooling and community-health practices detected across 7 families in the upstream repository

Checks run against github.com/erwinlares/submitr on 2026-10-22.

Continuous integration (2)
GitHub ActionsR CMD check workflow

The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel

Governance and community (1)
Contributing guide
Docs source (3)
pkgdown

GitHub Pages site last deployed 2026-10-01 · The repository has a site deploy workflow

pkgdown site last built 2026-10-01

Coverage (1)
Coverage reporting (Codecov)
Show all practicesHide 3 practices
Reproducibility and dev environment (1)
renv
CRAN release process (1)
cran-comments.md
Lint, format, editor (1)
RStudio project
How this is detected·Detection ruleset v4 (2026-10-20)

Dependencies

Declared dependencies
11 external dependencies (excludes base and recommended)

Installing submitr adds 25 packages (14 with compiled code, 6.8 MB of source tarballs). Heaviest: vctrs 1.0 MB, rlang 766 KB, cli 629 KB.

Depends (0)
none
Imports (4)
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

People & History

People (1)
Author, Maintainer since 0.1.0 (2026)
Releases (1)
  • 0.1.0Latest
    2026-05-19 · current release
  • R
    R 4.6.0 released · 2026-04-24

Package metadata

First published
2026-05-19
Total releases
1 / 1 yrs
License
MIT + file LICENSE OSI
Download size
3.4 MB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("submitr")
Lares, E. (2026). submitr: Scaffold and Submit Computational Jobs to HTC Schedulers (Version 0.1.0) [Computer software]. https://doi.org/10.32614/CRAN.package.submitr

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for submitr version 0.1.0 [Data set]. HJJB, LLC. Data release v2026-10-25. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-25, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy