diff --git a/README.md b/README.md index bcf7019..c948aa3 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ A **SAS package** is an automatically generated, single, stand alone *zip* file The *purpose of a package* is to be a simple, and easy to access, code sharing medium, which will allow: on the one hand, to separate the code complex dependencies created by the developer from the user experience with the final product and, on the other hand, reduce developer's and user's unnecessary frustration related to a remote deployment process. -In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20201010`**. +In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20201014`**. 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). @@ -79,13 +79,13 @@ Currently the following packages are available (see the `./packages` directory): set %SQL(select * from sashelp.class order by age); run; ``` -SHA256 digest for SQLinDS: D76B85EFF129678B45233FB397A2BDB8D23F234013BD821D55141CA18DD5589E +SHA256 digest for SQLinDS: F070926B26504F9F65384EE3FB84E2E54B223FDAB71EDD61B11B865262C2E5DD [Documentation for SQLinDS](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/sqlinds.md "Documentation for SQLinDS") - **DFA** (Dynamic Function Arrays)\[0.2\], contains set of macros and FCMP functions which implement: a dynamically allocated array, a stack, a fifo queue, an ordered stack, and a priority queue, run `%helpPackage(DFA,createDFArray)` to find examples. -SHA256 digest for DFA: 43AE8BB0FC7D2121AABDD8DB8AD2C3F226C7D2699CAACC171FCB72B75D9141FA +SHA256 digest for DFA: 7E9042867ED9C4BD2F27B3CD9180701CE619E301C13F5BD82DB46547616D17DF - **macroArray**\[0.5\], implementation of an array concept in a macrolanguage, e.g. @@ -107,7 +107,7 @@ SHA256 digest for DFA: 43AE8BB0FC7D2121AABDD8DB8AD2C3F226C7D2699CAACC171FCB72B75 which = 1:H:2 ); ``` -SHA256 digest for macroArray: 085A0F3D544EAF01378BB6C6B4F429123F8BFEEFC76013D1B05DFADFEE3FA661 +SHA256 digest for macroArray: 519B1CE64F66F8498B10F5EB253BB45FC860E3F7868FCEB97ABF45C96F30716D [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") @@ -126,12 +126,12 @@ format x bool.; %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); ``` -SHA256 digest for BasePlus: 54232DA5E253EB58E49A09DD0DF244F433B61983D921E27F2E4FFB1EA73A5C6D +SHA256 digest for BasePlus: 75B8D2BF718E035FEFC0D24504A6EBB9893883E2DF5D0FCD2D8ADD28456CFEBD [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/master/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) -SHA256 digest for dynMacroArray: 281D9493564A8185B858D9525AA7D9D5343E42414AAB1D8A00AE85AB80882661 +SHA256 digest for dynMacroArray: FF111DA330ACE57BAE8C9B7890839045B691A17414AE04CBD49C66BCD9663B21 ### ====== diff --git a/SPF/SPFinit.md b/SPF/SPFinit.md index 65ea6d6..77c6f5b 100644 --- a/SPF/SPFinit.md +++ b/SPF/SPFinit.md @@ -4,7 +4,7 @@ A **SAS package** is an automatically generated, single, stand alone *zip* file The *purpose of a package* is to be a simple, and easy to access, code sharing medium, which will allow: on the one hand, to separate the code complex dependencies created by the developer from the user experience with the final product and, on the other hand, reduce developer's and user's unnecessary frustration related to a remote deployment process. -In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20201010`**. +In this repository we are presenting the **SAS Packages Framework** which allows to develop and use SAS packages. The latest version of SPF is **`20201014`**. 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). diff --git a/SPF/SPFinit.sas b/SPF/SPFinit.sas index 7323717..4beb4e9 100644 --- a/SPF/SPFinit.sas +++ b/SPF/SPFinit.sas @@ -42,7 +42,7 @@ - to unload, or - to generate SAS packages. - Version 20201010. + Version 20201014. See examples below. A SAS package is a zip file containing a group of files @@ -81,7 +81,7 @@ */ )/secure /*** HELP END ***/ -des = 'Macro to load SAS package, version 20201010. Run %loadPackage() for help info.' +des = 'Macro to load SAS package, version 20201014. Run %loadPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -96,7 +96,7 @@ des = 'Macro to load SAS package, version 20201010. Run %loadPackage() for help %put ### This is short help information for the `loadPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to *load* SAS packages, version `20201010` #; + %put # Macro to *load* SAS packages, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -250,7 +250,7 @@ des = 'Macro to load SAS package, version 20201010. Run %loadPackage() for help */ )/secure /*** HELP END ***/ -des = 'Macro to unload SAS package, version 20201010. Run %unloadPackage() for help info.' +des = 'Macro to unload SAS package, version 20201014. Run %unloadPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -265,7 +265,7 @@ des = 'Macro to unload SAS package, version 20201010. Run %unloadPackage() for h %put ### This is short help information for the `unloadPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to unload SAS packages, version `20201010` #; + %put # Macro to unload SAS packages, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -388,7 +388,7 @@ des = 'Macro to unload SAS package, version 20201010. Run %unloadPackage() for h */ )/secure /*** HELP END ***/ -des = 'Macro to get help about SAS package, version 20201010. Run %helpPackage() for help info.' +des = 'Macro to get help about SAS package, version 20201014. Run %helpPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -403,7 +403,7 @@ des = 'Macro to get help about SAS package, version 20201010. Run %helpPackage() %put ### This is short help information for the `helpPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to get help about SAS packages, version `20201010` #; + %put # Macro to get help about SAS packages, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -512,7 +512,7 @@ TODO: - add MD5(&packageName.) value hash instead "package" word in filenames [DONE] */ -/* Macros to install SAS packages, version 20201010 */ +/* Macros to install SAS packages, version 20201014 */ /* A SAS package is a zip file containing a group of files with SAS code (macros, functions, data steps generating data, etc.) wrapped up together and %INCLUDEed by @@ -528,7 +528,7 @@ TODO: /secure minoperator /*** HELP END ***/ -des = 'Macro to install SAS package, version 20201010. Run %%installPackage() for help info.' +des = 'Macro to install SAS package, version 20201014. Run %%installPackage() for help info.' ; %if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then %do; @@ -543,7 +543,7 @@ des = 'Macro to install SAS package, version 20201010. Run %%installPackage() fo %put ### This is short help information for the `installPackage` macro #; %put #--------------------------------------------------------------------------------------------#;; %put # #; - %put # Macro to install SAS packages, version `20201010` #; + %put # Macro to install SAS packages, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -836,7 +836,7 @@ des = 'Macro to install SAS package, version 20201010. Run %%installPackage() fo /* Macro to list SAS packages in packages folder. - Version 20201010 + Version 20201014 A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -856,7 +856,7 @@ des = 'Macro to install SAS package, version 20201010. Run %%installPackage() fo %macro listPackages()/PARMBUFF -des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20201010.' +des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HELP) for help, version 20201014.' ; %if %QUPCASE(&SYSPBUFF.) = %str(%(HELP%)) %then %do; @@ -871,7 +871,7 @@ des = 'Macro to list SAS packages from `packages` fileref, type %listPackages(HE %put ### This is short help information for the `listPackages` macro #; %put #-----------------------------------------------------------------------------------------#;; %put # #; - %put # Macro to list available SAS packages, version `20201010` #; + %put # Macro to list available SAS packages, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -1002,7 +1002,7 @@ options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.; /* Macro to generate SAS packages. - Version 20201010 + Version 20201014 A SAS package is a zip file containing a group of SAS codes (macros, functions, data steps generating @@ -1025,7 +1025,7 @@ options ls = &ls_tmp. ps = &ps_tmp. ¬es_tmp. &source_tmp.; dependencies in loading */ )/secure /*** HELP END ***/ -des = 'Macro to generate SAS packages, version 20201010. Run %generatePackage() for help info.' +des = 'Macro to generate SAS packages, version 20201014. Run %generatePackage() for help info.' minoperator ; %if (%superq(filesLocation) = ) OR (%qupcase(&filesLocation.) = HELP) %then @@ -1041,7 +1041,7 @@ minoperator %put ### This is short help information for the `generatePackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to generate SAS packages, version `20201010` #; + %put # Macro to generate SAS packages, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -1234,18 +1234,18 @@ filename &zipReferrence. ZIP "&filesLocation./%lowcase(&packageName.).zip"; /*** HELP START ***/ /* - Locate all files with code in base folder (i.e. at filesLocation directory) + Locate all files with code in base folder, i.e. at `filesLocation` directory. */ /* - Remember to prepare the description.sas file for you package. + Remember to prepare the `description.sas` file for you package. The colon (:) is a field separator and is restricted in lines of the header part. The file should contain the following obligatory information: -------------------------------------------------------------------------------------------- >> **HEADER** << Type: Package -Package: ShortPackageName -Title: A title/brief info for log note about your packages +Package: PackageName +Title: A title/brief info for log note about your packages. Version: X.Y Author: Firstname1 Lastname1 (xxxxxx1@yyyyy.com), Firstname2 Lastname2 (xxxxxx2@yyyyy.com) Maintainer: Firstname Lastname (xxxxxx@yyyyy.com) @@ -1264,9 +1264,9 @@ DESCRIPTION START: DESCRIPTION END: -------------------------------------------------------------------------------------------- - Name of the 'type' of folder and files.sas inside must be in _low_ case letters. + Name of the `type` of folder and `files.sas` inside must be in the _low_ case letters. - If order of loading is important, the 'sequential number' + If order of loading is important, the sequential number can be used to order multiple types in the way you wish. The "tree structure" of the folder could be for example as follows: @@ -2280,7 +2280,7 @@ data _null_; put ' end ; '; %end; - put 'put "***"; put "* SAS package generated by generatePackage, version 20201010 *"; put "***";'; + put 'put "***"; put "* SAS package generated by generatePackage, version 20201014 *"; put "***";'; put 'run; ' /; @@ -2353,7 +2353,7 @@ data _null_; put ' call execute(" input; ");'; put ' call execute(" if upcase(strip(_infile_)) '; put ' = ''/*** HELP END ***/'' then printer = 0; ");'; - put ' call execute(" if printer then put @1 _infile_; ");'; + put ' call execute(" if printer then put ""| "" _infile_; ");'; put ' call execute(" if upcase(strip(_infile_)) '; put ' = ''/*** HELP START ***/'' then printer = 1; ");'; put ' call execute(" end; ");'; @@ -2808,7 +2808,7 @@ TODO: (in Polish) */ )/secure /*** HELP END ***/ -des = 'Macro to load multiple SAS packages at one run, version 20201010. Run %loadPackages() for help info.' +des = 'Macro to load multiple SAS packages at one run, version 20201014. Run %loadPackages() for help info.' parmbuff ; %if (%superq(packagesNames) = ) OR (%qupcase(&packagesNames.) = HELP) %then @@ -2824,7 +2824,7 @@ parmbuff %put ### This is short help information for the `loadPackageS` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro wrapper for the loadPackage macro, version `20201010` #; + %put # Macro wrapper for the loadPackage macro, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; @@ -2908,7 +2908,7 @@ parmbuff hashing_file() function, SAS 9.4M6 */ )/secure /*** HELP END ***/ -des = 'Macro to verify SAS package with the hash digest, version 20201010. Run %verifyPackage() for help info.' +des = 'Macro to verify SAS package with the hash digest, version 20201014. Run %verifyPackage() for help info.' ; %if (%superq(packageName) = ) OR (%qupcase(&packageName.) = HELP) %then %do; @@ -2923,7 +2923,7 @@ des = 'Macro to verify SAS package with the hash digest, version 20201010. Run % %put ### This is short help information for the `verifyPackage` macro #; %put #-------------------------------------------------------------------------------#; %put # #; - %put # Macro to verify SAS package with it hash digest, version `20201010` #; + %put # Macro to verify SAS package with it hash digest, version `20201014` #; %put # #; %put # A SAS package is a zip file containing a group #; %put # of SAS codes (macros, functions, data steps generating #; diff --git a/packages/README.md b/packages/README.md index eaa8489..7f44d28 100644 --- a/packages/README.md +++ b/packages/README.md @@ -18,7 +18,7 @@ data class; WH = weight + height; run; ``` -SHA256 digest for SQLinDS: D76B85EFF129678B45233FB397A2BDB8D23F234013BD821D55141CA18DD5589E +SHA256 digest for SQLinDS: F070926B26504F9F65384EE3FB84E2E54B223FDAB71EDD61B11B865262C2E5DD [Documentation for SQLinDS](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/sqlinds.md "Documentation for SQLinDS") @@ -51,7 +51,7 @@ data _null_; end; run; ``` -SHA256 digest for DFA: 43AE8BB0FC7D2121AABDD8DB8AD2C3F226C7D2699CAACC171FCB72B75D9141FA +SHA256 digest for DFA: 7E9042867ED9C4BD2F27B3CD9180701CE619E301C13F5BD82DB46547616D17DF --- @@ -74,7 +74,7 @@ SHA256 digest for DFA: 43AE8BB0FC7D2121AABDD8DB8AD2C3F226C7D2699CAACC171FCB72B75 which = 1:H:2 ); ``` -SHA256 digest for macroArray: 085A0F3D544EAF01378BB6C6B4F429123F8BFEEFC76013D1B05DFADFEE3FA661 +SHA256 digest for macroArray: 519B1CE64F66F8498B10F5EB253BB45FC860E3F7868FCEB97ABF45C96F30716D [Documentation for macroArray](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/macroarray.md "Documentation for macroArray") @@ -94,7 +94,7 @@ format x bool.; %put %getVars(sashelp.class, pattern = ght$, sep = +, varRange = _numeric_); ``` -SHA256 digest for BasePlus: 54232DA5E253EB58E49A09DD0DF244F433B61983D921E27F2E4FFB1EA73A5C6D +SHA256 digest for BasePlus: 75B8D2BF718E035FEFC0D24504A6EBB9893883E2DF5D0FCD2D8ADD28456CFEBD [Documentation for BasePlus](https://github.com/yabwon/SAS_PACKAGES/blob/master/packages/baseplus.md "Documentation for BasePlus") @@ -102,6 +102,6 @@ SHA256 digest for BasePlus: 54232DA5E253EB58E49A09DD0DF244F433B61983D921E27F2E4F - **dynMacroArray**\[0.2\], set of macros (wrappers for a hash table) emulating dynamic array in the data step (macro predecessor of DFA) -SHA256 digest for dynMacroArray: 281D9493564A8185B858D9525AA7D9D5343E42414AAB1D8A00AE85AB80882661 +SHA256 digest for dynMacroArray: FF111DA330ACE57BAE8C9B7890839045B691A17414AE04CBD49C66BCD9663B21 --- diff --git a/packages/SHA256_for_packages.txt b/packages/SHA256_for_packages.txt index 4871ce9..1127574 100644 --- a/packages/SHA256_for_packages.txt +++ b/packages/SHA256_for_packages.txt @@ -1,3 +1,10 @@ +/* 20201014 */ +BasePlus: 75B8D2BF718E035FEFC0D24504A6EBB9893883E2DF5D0FCD2D8ADD28456CFEBD +DFA: 7E9042867ED9C4BD2F27B3CD9180701CE619E301C13F5BD82DB46547616D17DF +dynMacroArray: FF111DA330ACE57BAE8C9B7890839045B691A17414AE04CBD49C66BCD9663B21 +macroArray: 519B1CE64F66F8498B10F5EB253BB45FC860E3F7868FCEB97ABF45C96F30716D +SQLinDS: F070926B26504F9F65384EE3FB84E2E54B223FDAB71EDD61B11B865262C2E5DD + /* 20201010 */ SQLinDS: D76B85EFF129678B45233FB397A2BDB8D23F234013BD821D55141CA18DD5589E DFA: 43AE8BB0FC7D2121AABDD8DB8AD2C3F226C7D2699CAACC171FCB72B75D9141FA @@ -5,7 +12,6 @@ macroArray: 085A0F3D544EAF01378BB6C6B4F429123F8BFEEFC76013D1B05DFADFEE3FA661 BasePlus: 54232DA5E253EB58E49A09DD0DF244F433B61983D921E27F2E4FFB1EA73A5C6D dynMacroArray: 281D9493564A8185B858D9525AA7D9D5343E42414AAB1D8A00AE85AB80882661 - /* 20201007 */ BasePlus: 884BAD527DE77A9AF4325053BF42B3B2FCD3DB1239B63D70B1198064095E1A6D DFA: 57944FF5ABC7A9879C402412DA0C18C38206301930DC834BC7DD3E968E283D1E diff --git a/packages/baseplus.md b/packages/baseplus.md index 81c6916..b7dba02 100644 --- a/packages/baseplus.md +++ b/packages/baseplus.md @@ -186,7 +186,7 @@ Package contains: *SAS package generated by generatePackage, version 20201001* The SHA256 hash digest for package BasePlus: -`54232DA5E253EB58E49A09DD0DF244F433B61983D921E27F2E4FFB1EA73A5C6D` +`75B8D2BF718E035FEFC0D24504A6EBB9893883E2DF5D0FCD2D8ADD28456CFEBD` --- # Content description ############################################################################################ diff --git a/packages/baseplus.zip b/packages/baseplus.zip index 8f4aaf0..e1223c6 100644 Binary files a/packages/baseplus.zip and b/packages/baseplus.zip differ diff --git a/packages/dfa.zip b/packages/dfa.zip index 50b240f..d6811b9 100644 Binary files a/packages/dfa.zip and b/packages/dfa.zip differ diff --git a/packages/dynmacroarray.zip b/packages/dynmacroarray.zip index 50c9123..5efaa75 100644 Binary files a/packages/dynmacroarray.zip and b/packages/dynmacroarray.zip differ diff --git a/packages/macroarray.md b/packages/macroarray.md index 29939d5..4cdc27c 100644 --- a/packages/macroarray.md +++ b/packages/macroarray.md @@ -63,7 +63,7 @@ Required SAS Components: *SAS package generated by generatePackage, version 20200911* The SHA256 hash digest for package macroArray: -`085A0F3D544EAF01378BB6C6B4F429123F8BFEEFC76013D1B05DFADFEE3FA661` +`519B1CE64F66F8498B10F5EB253BB45FC860E3F7868FCEB97ABF45C96F30716D` --- # Content description ############################################################################################ diff --git a/packages/macroarray.zip b/packages/macroarray.zip index f193365..7459688 100644 Binary files a/packages/macroarray.zip and b/packages/macroarray.zip differ diff --git a/packages/sqlinds.md b/packages/sqlinds.md index 95cf652..821aced 100644 --- a/packages/sqlinds.md +++ b/packages/sqlinds.md @@ -49,7 +49,7 @@ Required SAS Components: *SAS package generated by generatePackage, version 20200911* The SHA256 hash digest for package SQLinDS: -`D76B85EFF129678B45233FB397A2BDB8D23F234013BD821D55141CA18DD5589E` +`F070926B26504F9F65384EE3FB84E2E54B223FDAB71EDD61B11B865262C2E5DD` --- # Content description ############################################################################################ diff --git a/packages/sqlinds.zip b/packages/sqlinds.zip index 4ab046c..ccc9eef 100644 Binary files a/packages/sqlinds.zip and b/packages/sqlinds.zip differ