nobs, split and metadata macros run unmodified on Jenner - #4
Open
jenner-analytics wants to merge 1 commit into
Open
nobs, split and metadata macros run unmodified on Jenner#4jenner-analytics wants to merge 1 commit into
jenner-analytics wants to merge 1 commit into
Conversation
Bundles built from the repo's own macros: - t001_csv_nobs_buildcsv: nobs + buildcsv from REDCap_API_Importer_CSV.sas, run against a mock REDCap-ready dataset - t002_xml_split: split (credited to a SUGI27 paper) from REDCap_API_Importer_XML.sas, run against a mock dataset - t003_metadata_format_split: the metadata pipe-split/format-building DATA steps from RCap_API_Exporter.sas, run against synthetic mock REDCap metadata (no real REDCap project data used or available in this repo) Each bundle ships script.sas + autoexec.sas, a captured passing run (expected.json + expected/log.txt + expected/output.txt), and meta.json provenance. run_jenner.sh re-runs and verifies all three against the hosted Jenner API.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jenneranalytics.com provides an API that runs SAS code, with support for more than 200 SAS procedures. You can also use it with AI assistants in a collaborative workspace. It's available for Mac on the Apple App Store, and by license for Windows and Linux.
We support the larger community by
(1) increasing access to SAS-compatible systems,
(2) by providing test coverage and a test coverage framework to public SAS repos in order to encourage the use of best practices in software engineering.
Your REDCap_API_Importer_XML.sas runs on Jenner unmodified — this PR adds a small compatibility bundle so you can see for yourself. It's the test we wrote for your library, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.
A few things stood out reading through this. The
%splitmacro is credited right in the comments to the SUGI27 "Tight Looping with Macro Arrays" technique for dividing a dataset into balanced chunks by observation count — a nice touch that a lot of internal macro libraries skip, and it made adapting the macro for a standalone test straightforward. The metadata-driven format building in RCap_API_Exporter.sas (turning a REDCap data dictionary's pipe-delimited choice lists into PROC FORMAT-ready start/label pairs) is also a clean way to keep SAS formats in sync with a REDCap project's field definitions without hand-maintaining them.jenner-check/holds 3 bundles built from your macros (nobs+buildcsv from the CSV importer, split from the XML importer, and the metadata format-splitting logic from RCap_API_Exporter.sas), each with a caller against a small mock dataset, the captured log/output, and pinned expected results:Check out this PR's branch and run one of the bundles straight from the repo root:
cd jenner-check && ./run_jenner.sh --allre-runs all three and checks them against the pinned results. The hosted API is free to try, no signup — full API reference: the docs.Only the SAS source of the script you run (plus a two-line autoexec) is sent to api.jenneranalytics.com, which runs it and returns the log and listing; no data files are read or uploaded, and nothing is sent unless you run a command yourself.
Merge it, close it, or leave it — no response expected either way. We won't open further PRs in this repo; if you'd rather opt out for good, drop
no-more-prsin any comment or open an issue titledjenner-check: opt out.Lawrence W. Sinclair
CEO / Jenner Analytics Ltd
linkedin.com/in/lwsinclair/