Skip to content

Macro_Tau_Argus loads unmodified on Jenner — test bundle#2

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

Macro_Tau_Argus loads unmodified on Jenner — test bundle#2
jenner-analytics wants to merge 1 commit into
InseeFrLab:mainfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

@jenner-analytics jenner-analytics commented Jul 11, 2026

Copy link
Copy Markdown

Jenneranalytics.com propose une API qui exécute du code SAS, avec la prise en charge de plus de 200 procédures SAS. Vous pouvez aussi l'utiliser avec des assistants IA dans un espace de travail collaboratif. Elle est disponible pour Mac sur l'Apple App Store, et sous licence pour Windows et Linux.

Nous soutenons la communauté au sens large
(1) en élargissant l'accès aux systèmes compatibles SAS,
(2) en fournissant une couverture de tests et un cadre de couverture de tests aux dépôts SAS publics afin d'encourager les bonnes pratiques d'ingénierie logicielle.

Votre Macro_Tau_Argus.sas se charge sur Jenner sans modification — cette PR ajoute un petit bundle de compatibilité pour que vous puissiez le constater par vous-même. C'est le test que nous avons écrit pour votre bibliothèque, partagé au cas où il vous serait utile, et il a été assemblé avec l'aide de l'IA comme l'est la plupart du code dans les entreprises d'aujourd'hui.

Ce qui nous a marqués en lisant votre code, c'est l'architecture du batch : empty_batch sert de manifeste des opérations Tau-Argus (<OPENMICRODATA>, <SPECIFYTABLE>, <SAFETYRULE>…), et chaque sous-macro (%opendata, %SPECIFYTABLE_SAFETYRULES, %WRITETABLE) vient remplir sa ligne dédiée. Ça rend le pilotage d'un logiciel externe étonnamment lisible. On a aussi apprécié la reformulation « large vers long » de l'exemple, qui empile legumes_rouges et salades dans une seule colonne quantite en interleaving la table avec elle-même dans un seul set — un idiome propre et parlant pour protéger deux types de légumes en une seule tabulation.

Le répertoire jenner-check/ est autonome : chaque bundle contient une copie fidèle de votre code, la sortie capturée de son exécution, et un petit runner. Rien en dehors de jenner-check/ n'est modifié, et rien ne s'exécute à la fusion.

jenner-check/
├── run_jenner.sh                    # runner bash + curl
├── README.md
├── t002_legumes_reshape/            # reformulation large->long de l'exemple (SET + IN= + RENAME=)
│   ├── script.sas
│   ├── autoexec.sas
│   ├── expected.json                # champs figés d'une exécution réussie
│   └── expected/                    # instantané lisible (log + listing)
└── t003_macro_opendata/             # appels à %batch_file + %opendata -> lignes de batch Tau-Argus
    ├── script.sas
    ├── autoexec.sas
    ├── expected.json
    └── expected/

Pour l'essayer, récupérez cette PR et lancez depuis la racine du dépôt :

# Récupère la branche de cette PR, puis exécutez depuis la racine du dépôt :
gh pr checkout 2
curl -sS --data-binary @jenner-check/t002_legumes_reshape/script.sas https://api.jenneranalytics.com/v1/quick

Vous pouvez aussi rejouer tous les bundles d'un coup avec cd jenner-check && ./run_jenner.sh --all, qui vérifie les champs figés de chaque expected.json. L'API hébergée est libre d'essai, sans inscription ; la référence complète est dans la documentation.

À propos des données : le runner n'envoie que le texte source SAS du script qu'il exécute (plus l'autoexec de deux lignes) à api.jenneranalytics.com, qui l'exécute et renvoie le log et le listing. Il ne lit ni n'envoie aucun fichier de données — ce qui se trouve à côté d'un script reste sur votre machine, et rien n'est transmis tant que vous ne lancez pas une commande vous-même. C'est comme coller un extrait dans n'importe quel outil hébergé : seul le code que vous exécutez est transmis, et vous pouvez donc le relire au préalable s'il contient des valeurs sensibles en dur.

Fusionner, fermer ou ignorer cette PR nous convient tout à fait — aucune réponse attendue, et nous n'ouvrirons pas d'autres PR sur ce dépôt. Pour ne plus en recevoir, il suffit d'écrire no-more-prs dans un commentaire, ou d'ouvrir une issue intitulée jenner-check: opt out.

English version

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_Tau_Argus.sas loads 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.

What stood out reading your code is the batch architecture: empty_batch acts as a manifest of Tau-Argus operations (<OPENMICRODATA>, <SPECIFYTABLE>, <SAFETYRULE>…), and each sub-macro (%opendata, %SPECIFYTABLE_SAFETYRULES, %WRITETABLE) fills in its own dedicated line. It makes driving an external program surprisingly readable. We also liked the "wide-to-long" reshape in the example, which stacks legumes_rouges and salades into a single quantite column by interleaving the table with itself in one set — a clean, legible idiom for protecting two vegetable types in a single tabulation.

The jenner-check/ directory is self-contained: each bundle holds a faithful copy of your code, the captured output of its run, and a small runner. Nothing outside jenner-check/ is touched, and nothing runs on merge.

To try it, check out this PR and run from the repo root:

# Check out this PR's branch, then run from the repo root:
gh pr checkout 2
curl -sS --data-binary @jenner-check/t002_legumes_reshape/script.sas https://api.jenneranalytics.com/v1/quick

You can also replay every bundle at once with cd jenner-check && ./run_jenner.sh --all, which verifies the pinned fields in each expected.json. The hosted API is free to try, no signup; the full API reference is linked from the docs (see the French version above for the link).

On data: the runner sends only the SAS source text of the script it runs (plus the two-line autoexec) to the same API host, which runs it and returns the log and listing. It does not read or upload any data files — anything sitting next to a script stays on your machine, and nothing is sent unless you run a command yourself. It's like pasting a snippet into any hosted tool: only the code you run is transmitted, so you can review it first if it embeds sensitive values inline.

Merging, closing, or ignoring this PR is all fine — no response expected, and we won't open further PRs in this repo. To opt out for good, just write 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 a self-contained jenner-check/ directory with two small bundles derived
from this repo's own code, plus a bash runner (run_jenner.sh) and README:

- t002_legumes_reshape : the documentation example's wide-to-long reshape
  (SET + IN= + RENAME= stacking legumes_rouges/salades into quantite), run
  against a small inline sample.
- t003_macro_opendata  : callers for the %batch_file and %opendata macros,
  producing the OPENMICRODATA/OPENMETADATA Tau-Argus batch lines.

Nothing outside jenner-check/ is touched; nothing runs on merge.
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