From 0bd4f6920966342742f0a87b114ac4608d06de6a Mon Sep 17 00:00:00 2001 From: yabwon Date: Mon, 2 Nov 2020 11:04:40 +0100 Subject: [PATCH] SAS Packages Framework, version 20201101 **SAS Packages Framework**, version 20201101: - In the `%generatePackage()` macro two new parameters `sasexe=` and `sascfgfile=` pointing the location of the SAS binary and the config file were added. - The first points location of a *directory* where the SAS binary is located, if null (the default) then the `!SASROOT` is used. - The second points location of a *file* with testing session configuration parameters, if null (the default) then no config file is pointed during the SAS invocation, if set to `DEF` then the `!SASROOT/sasv9.cfg` is used. - Documentation updated. Important: The default GitHub repository changed from: `master` to: `main` The SAS Packages Framework available packages: - `SQLinDS` (version 2.2) - `macroArray` (version 0.7) - The `%mcHashTable()` macro was added in the package. - `DFA` (version 0.2) - `BasePlus` (version 0.8) - New macros added:`%dedupListS()`, `%dedupListC()`, `%dedupListP()`, `%dedupListX()`, and `%QdedupListX()` - `dynMacroArray` (version 0.2) New package added: - MacroCore[version 1], a macro library for SAS application developers. Over 100 macros for Base SAS, metadata, and Viya. Provided by the SASjs framework (`https://sasjs.io/`). --- README.md | 14 +++++----- .../Getting_Started_with_SAS_Packages.pdf | Bin 584222 -> 584215 bytes ...(a how to)- Paper 4725-2020 - extended.pdf | Bin 281366 -> 281364 bytes SPF/SPFinit.md | 26 +++++++++--------- SPF/SPFinit.sas | 26 +++++++++--------- packages/README.md | 8 +++--- 6 files changed, 37 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index ff53dcd..4a0e2f0 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ The *purpose of a package* is to be a simple, and easy to access, code sharing m In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20201101`**. -To get started with SAS Packages try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/master/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). +To get started with SAS Packages try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). -The documentation and more advance reading would be the [**`SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf`**](https://github.com/yabwon/SAS_PACKAGES/blob/master/SPF/Documentation/SAS(r)%20packages%20-%20the%20way%20to%20share%20(a%20how%20to)-%20Paper%204725-2020%20-%20extended.pdf "SAS packages - the way to share") article (see the `./SPF/Documentation` directory). +The documentation and more advance reading would be the [**`SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/SAS(r)%20packages%20-%20the%20way%20to%20share%20(a%20how%20to)-%20Paper%204725-2020%20-%20extended.pdf "SAS packages - the way to share") article (see the `./SPF/Documentation` directory). **General overview video:** - [SAS Global Forum 2020 V.E.](https://www.youtube.com/watch?v=qCkb-bx0Dv8&t=0s "SGF2020") (April 2020) @@ -40,7 +40,7 @@ or if you need it just for "one time" only Execute: ``` filename packages "%sysfunc(pathname(work))"; /* setup temporary directory for packages in the WORK */ -filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/SPF/SPFinit.sas"; +filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas"; %include SPFinit; /* enable the framework */ %installPackage(packageName) /* install the package */ @@ -52,7 +52,7 @@ filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/mast ### The Developer: To create your own package: -- Read the [**`SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf`**](https://github.com/yabwon/SAS_PACKAGES/blob/master/SPF/Documentation/SAS(r)%20packages%20-%20the%20way%20to%20share%20(a%20how%20to)-%20Paper%204725-2020%20-%20extended.pdf "SAS packages - the way to share") to learn more details. +- Read the [**`SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/SAS(r)%20packages%20-%20the%20way%20to%20share%20(a%20how%20to)-%20Paper%204725-2020%20-%20extended.pdf "SAS packages - the way to share") to learn more details. - Download and use the `SPFinit.sas` file (the SAS Packages Framework), the part of the framework required for *testing* is there too. #### If you have any questions, suggestions, or ideas do not hesitate to contact me! @@ -82,7 +82,7 @@ Currently the following packages are available (see the `./packages` directory): ``` SHA256 digest for SQLinDS: 135DC50C0412B8CEAF6D5349B8A203C0ADB23D4F5C2680B6A35FD2E5482B6C49 -[Documentation for SQLinDS](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/sqlinds.md "Documentation for SQLinDS") +[Documentation for SQLinDS](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/sqlinds.md "Documentation for SQLinDS") - **MacroCore**\[1\], a macro library for SAS application developers. Over 100 macros for Base SAS, metadata, and Viya. Provided by the [SASjs framework](https://sasjs.io "SASjs framework"). @@ -116,7 +116,7 @@ SHA256 digest for DFA: E67A0863992722A5F535F56E14EF8D19A55F74FB374447BF11B5ED740 ``` SHA256 digest for macroArray: 75056F508E96296DC50096BBB054C58334DB913AD37885958099EDCE0C330CB2 -[Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") +[Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray") - **BasePlus**\[0.8\] adds a bunch of functionalities I am missing in BASE SAS, such as: @@ -135,7 +135,7 @@ format x bool.; ``` SHA256 digest for BasePlus: 9549378E5F81DA4DC421C366DF006D270261852336CE3DCD88FF8E2A759938C8 -[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/baseplus.md "Documentation for BasePlus") +[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") - **dynMacroArray**\[0.2\], set of macros (wrappers for a hash table) emulating dynamic array in the data step (macro predecessor of DFA) diff --git a/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf b/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf index 7f78d5d78cdccbd91a4dbb2b35755260ec1aeec2..c82e249700b7d52ec274bb3d0d2c5a9bb435b198 100644 GIT binary patch delta 13333 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 KYQp~@BK?2TBwtDZ delta 13787 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 RkcI1^CdumQnc14l{y#;DiAVqd diff --git a/SPF/Documentation/SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf b/SPF/Documentation/SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf index eb988dc6d7605b4b8654acf0141c523f42339b18..2f68ec53f8ae35b1563fc1d2059d86af5897a211 100644 GIT binary patch delta 5667 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 delta 6478 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 Z?9lL)p>yYH!!_XPq&;NF*vT&1{{^xc*%AN% diff --git a/SPF/SPFinit.md b/SPF/SPFinit.md index 3f3cf97..29bfbcf 100644 --- a/SPF/SPFinit.md +++ b/SPF/SPFinit.md @@ -21,9 +21,9 @@ The *purpose of a package* is to be a simple, and easy to access, code sharing m In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20201101`**. -**To get started with SAS Packages** try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/master/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). +**To get started with SAS Packages** try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). -**The documentation and more advance reading** would be the [**`SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf`**](https://github.com/yabwon/SAS_PACKAGES/blob/master/SPF/Documentation/SAS(r)%20packages%20-%20the%20way%20to%20share%20(a%20how%20to)-%20Paper%204725-2020%20-%20extended.pdf "SAS packages - the way to share") article (see the `./SPF/Documentation` directory). +**The documentation and more advance reading** would be the [**`SAS(r) packages - the way to share (a how to)- Paper 4725-2020 - extended.pdf`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/SAS(r)%20packages%20-%20the%20way%20to%20share%20(a%20how%20to)-%20Paper%204725-2020%20-%20extended.pdf "SAS packages - the way to share") article (see the `./SPF/Documentation` directory). *Note:* Filenames references `packages` and `package` are reserved keywords. @@ -60,15 +60,15 @@ After assigning the directory do not change them when using the SPF since it may then the framework itself is downloaded. - `sourcePath=` Location of the package, e.g. "www.some.web.page/" (mind the "/" at the end of the path!)
- Current default location for packages is:
`https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/packages/`
- Current default location for the framework is:
`https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/SPF/` + Current default location for packages is:
`https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/packages/`
+ Current default location for the framework is:
`https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/` - `replace=` With default value of `1` it causes existing package file to be replaceed by new downloaded file. -------------------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` to learn more. + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to learn more. ### Example ################################################################################ @@ -137,7 +137,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to learn more. ## Example #################################################################### @@ -210,7 +210,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to learn more. ## Example #################################################################### @@ -260,7 +260,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to learn more. ### Example ################################################################### @@ -324,7 +324,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to learn more. ### Example ################################################################### @@ -368,7 +368,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ----------------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to learn more. ### Example ############################################################################# @@ -420,7 +420,7 @@ filename packages "C:/SAS_PACKAGES"; %* setup a directory for packages; ------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to learn more. ### Example ################################################################### @@ -458,7 +458,7 @@ filename packages "C:/SAS_PACKAGES"; %* set-up a directory for packages; ------------------------------------------------------------------------------- - Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` + Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` to read about the details of package generation process. ### Parameters: @@ -665,7 +665,7 @@ Run the following code in your SAS session: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas filename packages "%sysfunc(pathname(work))"; %* setup WORK as a temporary directory for packages; - filename spfinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/SPFinit.sas"; + filename spfinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPFinit.sas"; %include spfinit; %* enable the framework; %installPackage(SQLinDS) %* install the package from the Internet; diff --git a/SPF/SPFinit.sas b/SPF/SPFinit.sas index fe4b55a..c751aac 100644 --- a/SPF/SPFinit.sas +++ b/SPF/SPFinit.sas @@ -142,7 +142,7 @@ des = 'Macro to load SAS package, version 20201101. Run %loadPackage() for help %put # #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to learn more. #; %put # #; %put ### Example #####################################################################; @@ -303,7 +303,7 @@ des = 'Macro to unload SAS package, version 20201101. Run %unloadPackage() for h %put # #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to learn more. #; %put # #; %put ### Example #####################################################################; @@ -446,7 +446,7 @@ des = 'Macro to get help about SAS package, version 20201101. Run %helpPackage() %put # #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to learn more. #; %put # #; %put #### Example ####################################################################; @@ -568,16 +568,16 @@ des = 'Macro to install SAS package, version 20201101. Run %%installPackage() fo %put # - `sourcePath=` Location of the package, e.g. "www.some.web.page/" #; %put # Mind the "/" at the end of the path! #; %put # Current default location for packages is: #; - %put # `https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/packages/` #; + %put # `https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/packages/` #; %put # Current default location for the framework is: #; - %put # `https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/SPF/` #; + %put # `https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/` #; %put # #; %put # - `replace=` With default value of `1` it causes existing package file #; %put # to be replaceed by new downloaded file. #; %put # #; %put #--------------------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to learn more. #; %put # #; %put #### Example #################################################################################; @@ -621,7 +621,7 @@ des = 'Macro to install SAS package, version 20201101. Run %%installPackage() fo %if %superq(sourcePath)= %then %do; - %let sourcePath = https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/packages/; + %let sourcePath = https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/packages/; %end; %local i; @@ -641,7 +641,7 @@ des = 'Macro to install SAS package, version 20201101. Run %%installPackage() fo %do; /* allows to install/download the framework file like any other package */ filename &in URL - "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/SPF/SPFinit.sas" + "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" recfm=N lrecl=1; filename &out "%sysfunc(pathname(packages))/SPFinit.sas" @@ -775,7 +775,7 @@ des = 'Macro to install SAS package, version 20201101. Run %%installPackage() fo filename packages "%sysfunc(pathname(work))"; %* setup WORK as a temporary directory for packages; - filename spfinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/master/SPFinit.sas"; + filename spfinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPFinit.sas"; %include spfinit; %* enable the framework; %installPackage(SQLinDS) %* install the package from the Internet; @@ -888,7 +888,7 @@ des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HE %put # #; %put #-----------------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to learn more. #; %put # #; %put #### Example ##############################################################################; @@ -1062,7 +1062,7 @@ des = 'Macro to generate SAS packages, version 20201101. Run %generatePackage() %put # #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to read about the details of package generation process. #; %put # #; %put #### Parameters: #; @@ -2978,7 +2978,7 @@ parmbuff %put # #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to learn more. #; %put # #; %put #### Example ####################################################################; @@ -3082,7 +3082,7 @@ des = 'Macro to verify SAS package with the hash digest, version 20201101. Run % %put # #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/master/SPF/Documentation` #; + %put # Visit: `https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation` #; %put # to learn more. #; %put # #; %put #### Example ####################################################################; diff --git a/packages/README.md b/packages/README.md index 0a6dfd7..8f46f22 100644 --- a/packages/README.md +++ b/packages/README.md @@ -1,5 +1,5 @@ ## SAS Packages: -To get started with SAS Packages try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/master/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). +To get started with SAS Packages try this [**`Getting Started with SAS Packages`**](https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/Documentation/Getting_Started_with_SAS_Packages.pdf "Getting Started with SAS Packages") presentation (see the `./SPF/Documentation` directory). ## Available packages: Currently the following packages are available: @@ -20,7 +20,7 @@ run; ``` SHA256 digest for SQLinDS: 135DC50C0412B8CEAF6D5349B8A203C0ADB23D4F5C2680B6A35FD2E5482B6C49 -[Documentation for SQLinDS](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/sqlinds.md "Documentation for SQLinDS") +[Documentation for SQLinDS](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/sqlinds.md "Documentation for SQLinDS") --- @@ -84,7 +84,7 @@ SHA256 digest for DFA: E67A0863992722A5F535F56E14EF8D19A55F74FB374447BF11B5ED740 ``` SHA256 digest for macroArray: 75056F508E96296DC50096BBB054C58334DB913AD37885958099EDCE0C330CB2 -[Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") +[Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/macroarray.md "Documentation for macroArray") --- @@ -104,7 +104,7 @@ format x bool.; ``` SHA256 digest for BasePlus: 9549378E5F81DA4DC421C366DF006D270261852336CE3DCD88FF8E2A759938C8 -[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/baseplus.md "Documentation for BasePlus") +[Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/main/packages/baseplus.md "Documentation for BasePlus") ---