Skip to content

pac2ex_contents / ex2pac_set_slash run unmodified on Jenner#1

Open
jenner-analytics wants to merge 1 commit into
Nakaya-Ryo:mainfrom
jenner-analytics:jenner-check/initial-bundles
Open

pac2ex_contents / ex2pac_set_slash run unmodified on Jenner#1
jenner-analytics wants to merge 1 commit into
Nakaya-Ryo:mainfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

Copy link
Copy Markdown

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 macro/pac2ex_contents.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 package, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today. Nothing outside jenner-check/ is touched, nothing executes on merge, and there are no workflow files or hooks.

%pac2ex() and %ex2pac() being exact functional inverses — excel-to-package and package-to-excel round-tripping the same DESCRIPTION/LICENSE/contents shape — is a clean piece of design, and %pac2ex_contents()'s two-flag retain state machine (flag/afterflag) for splitting a package member's raw lines into help and body off nothing but the /*** HELP START/END ***/ sentinel comments is a neat, self-contained bit of text parsing that reads clearly on its own.

jenner-check/ holds five bundles built from your own macros and package content: %pac2ex_contents() run against your addcnt/f2.sas, the DESCRIPTION/LICENSE parsing block from %pac2ex() run against your own description.sas and license.txt, %ex2pac_set_slash() run standalone, addcnt/mylibb.sas + addcnt/smalldatasetb.sas + the fmtNum format from your template excel, and the myhello/myhello2/hellofun macros from addcnt/simple_example.xlsx — the file your README points newcomers to first:

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_pac2ex_contents/
├── t002_pac2ex_description_license/
├── t003_ex2pac_set_slash/
├── t004_mylibb_smalldatasetb/
└── t005_simple_example_macros/

Check out this PR's branch and run one bundle straight from the repo root:

gh pr checkout <PR_NUMBER>
curl -sS --data-binary @jenner-check/t005_simple_example_macros/script.sas https://api.jenneranalytics.com/v1/quick

cd jenner-check && ./run_jenner.sh --all re-runs all five and checks each result against its pinned expected.json. The hosted API is free to try, no signup — full API reference: the docs.

Only the SAS source of the script being run (plus a two-line autoexec) is uploaded to api.jenneranalytics.com, which runs it and returns the log and listing — no data files are read or sent, so anything sitting next to a script stays on your machine, and nothing is transmitted unless you run a command yourself.

Merge, close, or ignore this as you like — no response expected, and we won't open further PRs in this repo. To opt out for good, leave no-more-prs in any comment or open an issue titled jenner-check: opt out.


Lawrence W. Sinclair
CEO / Jenner Analytics Ltd
linkedin.com/in/lwsinclair/

Adds jenner-check/, a self-contained set of compatibility bundles built
from SASPACer's own macros and package content, plus the bash runner:

- t001_pac2ex_contents: %pac2ex_contents() run against addcnt/f2.sas
- t002_pac2ex_description_license: the DESCRIPTION/LICENSE parsing block
  from %pac2ex() run against SASPACer's own description.sas/license.txt
- t003_ex2pac_set_slash: %ex2pac_set_slash() run standalone
- t004_mylibb_smalldatasetb: addcnt/mylibb.sas + addcnt/smalldatasetb.sas
  + the fmtNum format from template_package.xlsx
- t005_simple_example_macros: the myhello/myhello2/hellofun macros from
  addcnt/simple_example.xlsx

Each bundle carries a captured passing run (expected.json + expected/
log.txt + output.txt) and was verified end-to-end via run_jenner.sh
--all before commit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant