SAS Packages Framework, version `20260409`
New parameters added to the %installPackage() macro:
- githubRepo
- githubToken
With properly configured fine-grained personal access token for GitHub packages from private repos can be installed now.
SAS Packages Framework, version `20260409`
New parameters added to the %installPackage() macro:
- githubRepo
- githubToken
With properly configured fine-grained personal access token for GitHub packages from private repos can be installed now.
Packages regenerated with the SAS Packages Framework, version 20260216.
No functional changes, aesthetic documentation clean up.
The BasePlus package, version: 3.1.4
- File SHA256: `F*BD248E5F8CBD94B5F45467B723A73D97D646CD665BA98679F87C7A03A484E83E` for this version
- Content SHA256: `C*373E1A4CDC1A2462C90D6EC88E2BAA2F9902DFE5C6A4CC70356EE7281337C70A` for this version
The DFA package, version: 0.5.10
- File SHA256: `F*C1E5126D8EDE050A758BCB5DCCA56A37125B3646CE75F1CF41EDE00890901AD9` for this version
- Content SHA256: `C*EE048846A8155C317867DCDB8EE1AE9E0352235DC247E4379D101A7296BD0C07` for this version
The GSM package, version: 0.22.3
- File SHA256: `F*411452E8388C181800023A01A3B7DC7904A80A915D506D9606638F27CBC282B1` for this version
- Content SHA256: `C*1955721DDAAE32A631A8071BEE3BC6CF83761C2280DA5F823D4E4CFD96838FD3` for this version
The macroArray package, version: 1.3.2
- File SHA256: `F*35A657517CD2B1AB86C4E7C5320B5EDDDFBA9348075AE31DDAF875CF0CC193C9` for this version
- Content SHA256: `C*DE477F4E280D438B364320F324C88DA3D336F102BA37810C60BDE15398DE84E9` for this version
The SQLinDS package, version 2.3.3
- File SHA256: `F*6CC51325BDCE164B2E811896DD1C3A6D44242F50CC313D0721350CA49975F628` for this version
- Content SHA256: `C*776741E40EB6DCD907640ACA674F092BFAF0F7DE031519B6B453D37F6D6959D9` for this version
3a6a7d1
SAS Packages Framework, version 20260216
BugFix:
- When package loading with `cherryPick=` is done the `<packageName>META` is created. This should not be the case. Release 20260216 fixes the issue.
DFA [0.5.9] and BasePlus [3.1.3]
SHA256 digest for DFA: F*17C88537F5FA9BCFAA1AC4803D0F1EF47665C8446A44C82B5558A08315DF0C49
SHA256 digest for BasePlus: F*B762F900EEFF7035880891D89416C0F973E4D377BCB75486283363A9BDADBA82
The DFA package [ver. 0.5.9]
Package regenerated with the latest version of the SPF.
- File SHA256: `F*17C88537F5FA9BCFAA1AC4803D0F1EF47665C8446A44C82B5558A08315DF0C49` for this version
- Content SHA256: `C*1818B4D524F779F2FB3A242D9E5BEEB592074A92D68135E18A660E594B214401` for this version
The BasePlus package [ver. 3.1.3]
Package regenerated with the latest version of the SPF.
- File SHA256: `F*B762F900EEFF7035880891D89416C0F973E4D377BCB75486283363A9BDADBA82` for this version
- Content SHA256: `C*1CB969446728CD3888BF7046E2463AA74F6A4B2634A0BD2EAD78ED6A526BA7F6` for this version
SAS Packages Framework, version 20260202
Changes:
-If the `hash=` parameter is not provided the %verifyPackage() macro prints SHA256, SHA1, and MD5 hashes to the log now.
- Small fix in the %unbundlePackage() macro.
- Bunch general code simplifications.
- Documentation updated.
SAS Packages Framework version 20260126
Changes:
- A utility function and a utility macro is now added to every package generated with %generatePackage() macro.
- Documentation updated.
Packages regenerated:
- BasePlus: F*91A5AD4709A418704315EF37DDCF954522D4FB42808D406B3ED4DA560F6864C6
- DFA: F*643FBE2B7AE1425FC0240139813B93AE2C6BCFFDF6A0CFAEBEC11F83D3548E57
- GSM: F*7A4FEC410DEB921613A33F154FBBE332D7EC4C4DAC1351A4E611D986489EE848
- macroArray: F*9DA64CA9A745E1DB7176F7AF4459BB014F61F71626473ABF6471A32689E14FF1
- SQLinDS: F*CEAA4C90515F6E8AACBFFD55ABA6544E399EDBE0A7081107B62DCEE6F5430A1D
- bpUTiL: F*D03FD84D518F0CF4E0042BFEA864D9118D7FF97265DC49019425878BDBA31FE8
- evExpress: F*A8A4B0389A765D4D22FDD7AF42C542C2AC537F0D81FFB2B65605C60B1E9CB1B4
The macroArray package [ver. 1.3.0]
Changes:
- Four new parameters in the `%do_over()` macro: `check`, `rephrase`, `trigger`, and `unq`.
- Minor updates in the `%array()` macro.
- Documentation updated and cleaned.
SHA256 digest for the latest version macroArray: F*C6C2B5507B6590365222FC764076E294CCE3AAE99971D9CAA942F8BAEBEFAE24
The macroArray package [ver. 1.3.0]
Changes:
- Four new parameters in the `%do_over()` macro: `check`, `rephrase`, `trigger`, and `unq`.
- Minor updates in the `%array()` macro.
- Documentation updated.
SHA256 digest for the latest version macroArray: F*9B51F1B434742F08166F28DE40D64F16E9BC5ED8D1926AE7148A48116F7BDBA0
SAS Packages Framework, version 20251231
Changes:
- New macro: %bundlePackages().
- New macro: %unbundlePackages().
- Bug fix in %verifyPackage() macro.
- Minor updates in %generatePackage(), %listPackages(), and %relocatePackage() macros.
- Documentation updated.
SAS Packages Framework, version 20251231
Changes:
- New macro: %bundlePackages().
- New macro: %unbundlePackages().
- Bug fix in %verifyPackage() macro.
- Minor updates in %generatePackage(), %listPackages(), and %relocatePackage() macros.
- Documentation updated.
SAS Packages Framework, version `20251228`:
Two new parameters were added to the `%generatePackage()`:
- `buildLocation=`,
- `archLocation=`.
The `easyArch=` option is independent.
Three technical sub-macros were extracted from the `%generatePackage()`.
Minor code housekeeping.
Documentation updated.
---
Code cleaning and new parameters are results of collaboration and discussion with Ken Nakamatsu (https://github.com/k-nkmt). Thanks Ken!
SAS Packages Framework, version 20251221
Changes:
- 3 new macros: `%relocatePackage()`, `%SasPackagesFrameworkNotes()`, and `%isPackagesFilerefOK()` added.
- Documentation updated.
SAS Packages Framework, version 20251221
Changes:
- 3 new macros: `%relocatePackage()`, `%SasPackagesFrameworkNotes()`, and `%isPackagesFilerefOK()` added.
- Documentation updated.
SAS Packages Framework, version 20251126
Changes:
- Automatic documentation generator in the %generatePackage() macro can now exclude files generated by `%splitCodeForPackage()` macro.
SAS Packages Framework, version 20251122
Changes:
- When a package is generated with the `%generatePackage()` macro, additional info about operating system and SAS release are added to the help notes.
- Documentation updated.
The SQLinDS package [ver. 2.3.1]
Package regenerated with SAS Packages Framework, version 20251122. No functional changes, documentation cleaned up.
The BasePlus package [ver. 3.1.1]
Update:
- Minor updates `%dirsAndFiles()` macro.
- File SHA256: `F*6394CE27FBCF48D475F682CBCF8CA8B4FDD6D40D2672EF571F4A561BDDF274A6` for this version
- Content SHA256: `C*3CA28DF8F3E6D6670D7FD44788D347452F24F4BCF18115873E7EBC742FE30CA4` for this version
The BasePlus package [ver. 3.1.0]
Update:
- Update in macro `%findDSwithVarVal()`. To handle bigger range of engines, when a library is assigned with different engine than: "BASE","SPDE","V6","V7","V8","V9","CVP" observation number is not returned.
- File SHA256: `F*9FFBC40A2B7FC51161C7D6D120DADC3ACEF8087E4EB43BB1A3F0FBC1F1CBD5AC` for this version
- Content SHA256: `C*76C55A9F392EAB938D199144CC834EF332CD78BA8B98565FA003DEA509A33A3E` for this version
SAS Packages Framework, version 20251017
Changes:
- New parameters `workInTestResults=` and `testWorkPath=` added to the `%generatePackage()` macro.
- Documentation updated.
The BasePlus package [ver. 3.0.0]
New:
- New utility macro `%workLib()`, created in collaboration with Ryo Nakaya, added.
- File SHA256: `F*B9F6D8F1EDD1ECDA89F4BE327C4F4202649475D1D9DFB476279B633D9F14125D` for this version
- Content SHA256: `C*680412F6B403870A3A8975FC17300F7C92AEDECA48D3F242B5BC4E545DC6D313` for this version
The BasePlus package [ver. 2.4.1]
Fix:
- Fix engine recognition code in `%splitDSintoBlocks()` macro.
- File SHA256: `F*DB0811D8F207641BD45FCE30CB75D03CDF8D06849EBEA268BB575358FAA4E76C` for this version
- Content SHA256: `C*27861ABABB412E8229FE25CD5EEA868F49BB3CBD805CCE65F321ADBC522FAC4E` for this version
The BasePlus package [ver. 2.4.0]
Changes:
- new parameter `backslashSens=` added to the `%dirsAndFiles()` macro.
- File SHA256: `F*19FE220C82DE4B9990B4AC352A9D9DEF5FAF2FD601BE756B2F3A2AC39CDAF381` for this version
- Content SHA256: `C*83DEF0C93481B1C77494531E5CE9F8EB8E4C15AB3CC48D1E9C0223C13A84DB3F` for this version
The BasePlus package [ver. 2.3.1]
Changes:
Fix in log notes produced by `%getVars()` and `%QgetVars()`.
- File SHA256: `F*B2D318DD9708D74E5A7C419F7CAE1BF46D662B7F6AEE7E6B1B9D9B6858A5C41A` for this version
- Content SHA256: `C*C34B47FDC4A22C5F5EACA087FA5308B97C367E8B7C32C5B28D37B491C6DAA9A3` for this version
# The BasePlus package [ver. 2.3.0]
- File SHA256: `F*71DC1AFA709B2977E8AEA452721776F62EEC8240ABD658AC83AA6D4310FC49B6` for this version
- Content SHA256: `C*9CEDE8C64D2C619EBC27AC85B4904D2CE2423C832C6C313E526946FC1417EFD1` for this version
---
### Changes:
Update in macros:
- `%getVars()` and `%QgetVars()`
- New *optional* parameter `nlit=`. Introduced to improve `validvarname=ANY` handling. Indicates if the `NLITERAL()` function should be executed to cover spacial characters. Default value is `0`.
- Code simplification for the `mcArray=` parameter case.
- Situation when the `%getVars()` macro is called with `mcArray=` in `%put` or `%let` statements is handled more gracefully.
- `%zipEvalf()` and `%QzipEvalf()`
- If the list contains quoted blanks, they are respected now, i.e. `a "b c"` are considered 2 strings, `a` and `b c`.
See documentation for details.
---
SAS Packages Framework, version 20250728
Changes:
- The `mirror=3` parameter in the `%installPackage()` macro allows access `https://github.com/PharmaForest/`.
- Values `SASPAC` and `PharmaForest` are accepted by the `mirror=` parameter in the `%installPackage()` macro.
- Documentation updated.
SAS Packages Framework, version 20250710
Changes:
- Framework's code cleanup: all uses of the autocall `%lowcase()` macro were removed or replaced by `%sysfunc(lowcase(...))` call.
- Formatting of the default MIT license text in the `%generatePackage()` macro was changed.
- The `sourcePath=` parameter in the `%installPackage()` macro now allows both quoted and un-quoted address.
- Documentation updated.
SAS Packages Framework, version 20241207
Changes:
- New parameter `instDoc=` in the `%installPackage()` macro allows to download (if one is available) the `.md` documentation file for a package.
SAS Packages Framework, version 20241102
Changes:
In the `%loadPackage()`, the `%ICEloadPackage()`, and the `%loadPackageAddCnt()` macros version of a package can be provided with a comparison condition.
If the required version is provided with a comparison operator, e.g., `<=`, `=`, or `>`, then the operator is used to compare `required` and `provided` versions.
The following example:
```sas
%loadPackage(myPackage
,requiredVersion=1.2.2=
)
```
will force to load the package only if the required version is exactly equal to the provided one.
Comparison is done in form "`req. comparison prov.`".
Documentation and HoW-materials updated.
#SAS Packages Framework, version `20241014`
## Changes
---
The [%generatePackage()]{https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/SPFinit.md#generatepackage} macro accepts two new code types:
- `DS2PCK` for Proc DS2 packages, and
- `DS2THR` for Proc DS2 threads.
Those two new types allow to add `PROC DS2` *threads* and *packages* to a SAS package.
---
The [%loadPackage()]{https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/SPFinit.md#loadpackage} macro has new parameter:
- `DS2force` - when set to `1` an existing data set named the same as thread or package is overwritten by DS2 file.
While loading a package that contains `PRCO DS2` code, by default, if there already exist a SAS data set with the same name (which is not a DS2 thread or package file) a warning is issued in the log and the thread/package data set is not generated. To force overwrite, set the `DS2force=` parameter of the `%loadPackage()` macro to 1.
---
Minor updates and fixes:
- Proc `sql` "drop table" replaced with `fedsqsl`'s for data sets deletion.
- Proc `iml`, `fcmp`, and `proto` code blocks end with `quit;` statement.
---
[Documentation]{https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation} and [Hands-on-Workshops materials]{https://github.com/yabwon/HoW-SASPackages} updated.
---
## SAS Packages Framework, version `20240927`
---
### Changes
- Aesthetic changes in log when running the `%installPackage()` macro, notes about successful/failed installation.
- New parameter `SFRCVN` added to the `%installPackage()` macro, `SFRCVN` provides a *name* for a macro variable to store value of the *success-failure return code* of the installation process. Return value has the following form: `<number of successes>.<number of failures>` The macro variable is created as a *global* macro variable.
- Documentation updated.
---
## The BasePlus package [ver. 2.0.1]
This release is dedicated to all dyslexics in the world.
### Changes:
New macros:
- [`%expandDataSetsList()`](https://github.com/SASPAC/baseplus/blob/2.0.0/baseplus.md#expanddatasetslist-macro) allowing to expand data set lists of the form: `a1-a3`, `b_:`, mixed, and `_all_`;
- [`%unifyVarsCaseSize()`](https://github.com/SASPAC/baseplus/blob/2.0.0/baseplus.md#unifyvarscasesize-macro) allowing to convert all variables in a list of datasets to all-low-case or all-upcase letters.
Both macros are result of recent discussions at `SAS-L` and `communities.sas.com`.
New format/informats:
- [`bpklength.`](https://github.com/SASPAC/baseplus/blob/2.0.0/baseplus.md#bpklength-format)
- [`bplength.`](https://github.com/SASPAC/baseplus/blob/2.0.0/baseplus.md#bplength-format)
- Bug fix in spelling (`lenght` vs `length`).
See [documentation](https://github.com/SASPAC/baseplus/blob/main/baseplus.md) for details.
---
SHA256 digest for BasePlus: `F*FB102C9B12E870666C15A651017D48E0141E47D64C11437350D0EC75A7E9E609`
---
### Example 1. New macros.
~~~~sas
data a1 a2 a3 b_x b_y b_z;
set sashelp.class(obs=1);
run;
%put #%expandDataSetsList(lib=work,datasets=a1-a3 b_:)#;
proc print data=a1;
proc print data=b_x;
run;
%unifyVarsCaseSize(work,a1-a3 b_:)
proc print data=a1;
proc print data=b_x;
run;
~~~~
### Example 2. New formats/informats:
~~~~sas
data _null_;
x = input('żółw', bpklength.);
y = input('żółw', bplength.);
put x= y=;
run;
~~~~
~~~~log
x=4 y=7
~~~~