Meta-Xceed publishes selected utilities from our own delivery work — source code, source packages and documentation — under the Apache License 2.0. The first release is Migrate Studio, in two editions. Full source, issues and history are on GitHub.
What you get with every release
Point Migrate Studio at a folder of SAS programs, load a rule book, and it applies migration fixes you can review line by line. Originals are copied into _migrate_original/ before anything is written.
history.json) of when, which folder, which rule book and which programs changedTwo editions, one workflow. Pick by the direction you are migrating.
Pick by the direction you are migrating, not by the language you prefer. The two editions keep separate rule books.
git clone https://github.com/sy-truong/migrate-studio.git
The full tree — app, rule engines, rules, synthetic samples, tests and docs. Runs on Windows, macOS or Linux.
migrate-studio-python/.python -m venv .venv # macOS / Linux . .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1 python -m pip install -r requirements.txt python migrate_studio.py --check --data-dir ./local-data python migrate_studio.py --data-dir ./local-data
Use Chrome or Edge on localhost for direct folder writes. Without --data-dir, history and caches use the operating system’s per-user application data folder outside the source tree.
The complete Shiny app as plain .R files, with the browser app, rule book, synthetic samples, tests and docs. This edition has no installer or executable: you run it with R.
migrate-studio-r-shiny/ folder.DESCRIPTION: Rscript tools/install_dependencies.R.The native R engine needs no Python. The optional Python 3.9+ bridge also needs reticulate and the Python requirements. Use Chrome or Edge for browser folder access.
An ordinary Shiny app. Start it from the unzipped folder, or deploy it to Shiny Server or Posit Connect.
# install dependencies declared in DESCRIPTION Rscript tools/install_dependencies.R Rscript tools/check_env.R # start the native R engine Rscript run_migrate_studio.R --engine r --data-dir ./local-data # allow access to an example server folder Rscript run_migrate_studio.R --engine r --folder-mode server \ --server-roots /srv/example-programs --data-dir ./local-data
Rscript tools/check_env.R and read the deployment notes for authentication, filesystem access and shared-history limits. The same validation notes apply: this is beta developer software with example rules.SHA-256 checksums for the v0.3 beta files above, also published as SHA256SUMS.txt for the Python edition and the R Shiny edition.
# Windows (PowerShell) Get-FileHash .\migrate-studio-python-oct7-v0.3-beta.zip -Algorithm SHA256 Get-FileHash .\migrate-studio-r-shiny-oct7-v0.3-beta.zip -Algorithm SHA256 # macOS / Linux shasum -a 256 migrate-studio-python-oct7-v0.3-beta.zip shasum -a 256 migrate-studio-r-shiny-oct7-v0.3-beta.zip # or, with SHA256SUMS.txt saved beside your downloads shasum -a 256 -c SHA256SUMS.txt
Everything is plain text or HTML, so you can read it online or from the package.
Folder selection, rules, Apply Fix, backups, Fix Compare, History, Revert and troubleshooting.
HTMLHow the two rule sources work and how to add a rule with a synthetic example.
MarkdownThe migration-check rule pack that drives the Findings tab and automatic fixes.
JSONWhat changed in each release, from in-place updates to the new Select All control.
MarkdownStart flags, project layout, development checks and licensing in one page.
MarkdownSynthetic EXAMPLE001 programs for trying example rules on a disposable copy — no patient data.
Markdown · in the .zipFolder selection, rules, Apply Fix, backups, Fix Compare, History, Revert, and browser versus server folder modes.
HTMLDeclared package dependencies, authentication, allowlisted folders and shared-history limitations.
MarkdownThe workbook rule book for Linux → Windows, and the rules that exist only in this edition.
MarkdownWhat changed in each release of the R Shiny edition.
MarkdownStart command, engine and folder-mode flags, project layout and licensing in one page.
MarkdownNo build step and no hidden services. The browser app is plain HTML, CSS and JavaScript, served by a short Python script or by a Shiny process.
Migrate Studio is the first tool we have opened up. These are in preparation; each will appear here, with the same downloads and documentation, when it is ready.
Tell us what you ran into, or read how to contribute a fix.
Get support How to contribute Open an issue ↗ View on GitHub ↗The project lives under a personal GitHub account today; the link may move to an organization.