{"id":13697594,"url":"https://github.com/Boemska/macrocore","last_synced_at":"2025-05-03T20:30:39.599Z","repository":{"id":93932805,"uuid":"117342039","full_name":"Boemska/macrocore","owner":"Boemska","description":"Production Ready Macros for SAS Application Developers","archived":false,"fork":false,"pushed_at":"2019-09-25T17:53:18.000Z","size":600,"stargazers_count":57,"open_issues_count":1,"forks_count":24,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-11-13T01:34:17.417Z","etag":null,"topics":["sas"],"latest_commit_sha":null,"homepage":"https://boemska.github.io/macrocore.github.io/","language":"SAS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Boemska.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-01-13T12:32:53.000Z","updated_at":"2024-08-22T09:11:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"54c58df3-a7eb-403b-aebb-116ad6005e1a","html_url":"https://github.com/Boemska/macrocore","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boemska%2Fmacrocore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boemska%2Fmacrocore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boemska%2Fmacrocore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Boemska%2Fmacrocore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Boemska","download_url":"https://codeload.github.com/Boemska/macrocore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252252525,"owners_count":21718755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sas"],"created_at":"2024-08-02T18:01:00.551Z","updated_at":"2025-05-03T20:30:36.133Z","avatar_url":"https://github.com/Boemska.png","language":"SAS","funding_links":[],"categories":["[SAS Macro](http://documentation.sas.com/?docsetId=mcrolref\u0026docsetTarget=titlepage.htm\u0026docsetVersion=9.4)"],"sub_categories":["[SAS Certification](https://www.sas.com/en_us/certification.html)"],"readme":"# Macro Core\n\nMuch quality.  Many standards.  The **Macro Core** library exists to save time\nand development effort!  Herein ye shall find a veritable host of production\nquality SAS macros.  These are a mix of tools, utilities, functions and code\ngenerators that are useful in the context of Application Development on the SAS\nplatform.  [Contributions](https://github.com/Boemska/macrocore/blob/master/CONTRIBUTING.md)\nare welcomed.\n\n# Components\n\n**Base** library\n * OS independent\n * Not metadata aware\n * No X command\n * Prefixes:  _mf_, _mp_\n\n**Meta** library\n * OS independent\n * Metadata aware\n * No X command\n * Prefixes: _mm_\n\n**xcmd** library:\n * OS specific\n * Metadata aware\n * X command enabled\n * Prefixes: _mw_,_mu_,_mx_\n\n# Installation\nFirst, download the repo to a location your SAS system can access. Then update your sasautos path to include the components you wish to have available,eg:\n\n```sas\noptions insert=(sasautos=\"/your/path/macrocore/base\");\noptions insert=(sasautos=\"/your/path/macrocore/meta\");\n```\n\nThe above can be done directly in your sas program, via an autoexec, or an initialisation program.\n\nAlternatively - for quick access - simply run the following!  This file contains all the macros.\n\n```\nfilename mc url \"https://raw.githubusercontent.com/Boemska/macrocore/master/macrocore.sas\";\n%inc mc;\n```\n\n# Standards\n\n## File Properties\n - filenames much match macro names\n - filenames must be lowercase\n - macro names must be lowercase\n - one macro per file\n - prefixes:\n   - _mf_ for macro functions (can be used in open code).\n   - _mp_ for macro procedures (which generate sas code)\n   - _mm_ for metadata macros (interface with the metadata server).\n   - _mw_ for macros that only work in Windows (should work in ALL versions of windows)\n   - _mu_ for macros that only work in Unix type environments (should work in ALL types of unix environment)\n   - _mx_ for macros that use X command and will work in both windows and unix environments.\n - follow verb-noun convention\n - unix style line endings (lf)\n - individual lines should be no more than 80 characters long\n - UTF-8\n - no trailing white space\n - no trailing empty lines\n\n## Header Properties\nThe **Macro Core** documentation is created using [doxygen](http://www.stack.nl/~dimitri/doxygen/).  A full list of attributes can be found [here](http://www.stack.nl/~dimitri/doxygen/manual/commands.html) but the following are most relevant:\n\n - file.  This needs to be present in order to be recognised by doxygen.\n - brief. This is a short (one sentence) description of the macro.\n - details.  A longer description, which can contain doxygen [markdown](http://www.stack.nl/~dimitri/doxygen/manual/markdown.html).\n - param.  Name of each input param followed by a description.\n - return.  Explanation of what is returned by the macro.\n - version.  The EARLIEST SAS version in which this macro is known to work.\n - author.  Author name, contact details optional\n - copyright.  Must be GNU GENERAL PUBLIC LICENSE v3.\n\nAll macros must be commented in the doxygen format, to enable the [online documentation](https://boemska.github.io/macrocore.github.io/).\n\n## Coding Standards\n\n*  Indentation = 2 spaces.  No tabs!\n*  Macro variables should not have the trailing dot (`\u0026var` not `\u0026var.`) unless necessary to prevent incorrect resolution\n*  The closing `%mend;` should not contain the macro name.\n*  All macros should be defined with brackets, even if no variables are needed - ie `%macro x();` not `%macro x;`\n*  Mandatory parameters should be positional, all optional parameters should be keyword (var=) style.\n*  All dataset references to be 2 level (eg `work.blah`, not `blah`).\n*  Avoid naming collisions!  All macro variables should be local scope.  Use system generated work tables where possible - eg `data ; set sashelp.class; run;  data \u0026output;  set \u0026syslast; run;`\n\n# General Notes\n\n* All macros should be compatible with SAS versions from support level B and above (so currently 9.2 and later).  If an earlier version is not supported, then the macro should say as such in the header documentation, and exit gracefully (eg `%if %sysevalf(\u0026sysver\u003c9.3) %then %return`).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBoemska%2Fmacrocore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBoemska%2Fmacrocore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBoemska%2Fmacrocore/lists"}