## SAS Packages Framework, version `20230904`
---
New features in this release are:
- in `%generatePackage()` macro - test for check of duplicated names of the same type was added to the package generation process.
- in `%loadPackage()` macro - User can now suppress running the `exec` type files during the loading process. Parameter name is `suppressExec=`.
- in `%helpPackage()` macro - User can now generate dataset `work.packageName_content` containing list of the package elements similar to the one printed in the log. Parameter name is `packageContentDS=`.
Documentation updated.
---
Packages regenerated with new version of the SPF:
- BasePlus package [ver. `1.29.1`]
- DFA package [ver. `0.5.6`]
- GSM package [ver. `0.21.1`]
- macroArray package [ver. `1.0.6`]
- SQLinDS package [ver. `2.2.7`]
- dynMacroArray package [ver. `0.2.6`]
The BasePlus package [ver. 1.29.0]
Three new macros:
- fmt
- infmt
- minclude
Documentation updated.
SHA256 for BasePlus: `F*9EEE4F4B99EA725B60141645AB6A50BFEBA32CE54848593F8D832D907D63CAD7`
The BasePlus package [ver. 1.26.1]
Updates:
- the `%RainCloudPlot()` has new parameter: `catAxisValueAttrs`,
- documentation was updated (refreshed example with plot).
The SHA256 hash digest for package BasePlus:
`F*D6DC5AD1B60A92AD300B639B3C361C1F7846EB01E5AB35BF4FDDA6E783408172`
# The BasePlus package [ver. 1.26.0]
### New Features:
Two new macros were introduces in the release:
- `%findDSwithVarVal()`
- `%getTitle()`
Documentation updated.
# The BasePlus package [ver. 1.26.0]
### New Features:
Two new macros were introduces in the release:
- `%findDSwithVarVal()`
- `%getTitle()`
Documentation updated.
The BasePlus package [ver. 1.24.2]
Updates:
- the `%RainCloudPlot()` has 2 new parameters: `catLabelAttrs` and `xLabelAttrs`,
- documentation was updated (new examples with plots), and
- some spellings were fixed.
The SHA256 hash digest for package BasePlus:
`F*2A4F3953EC56DB914024457F74286D565C23DCF220FF151040BDB704FD8DDB06`
SAS Packages Framework, version 20230520
Fixes:
- Bug fixes for the "Additional Content" feature. In the `%loadPackageAddCnt()` and `%generatePackage()` macros lengths of the "file path" variables were extended.
Packages:
- The `BasePlus` package, version `1.24.1` was regenerated with latest version of the framework.
- The `%RainCloudPlot()` macro from the `BasePlus` packages was updated with new parameters (see the documentation).
Documentation:
- Documentation updated.
The BasePlus package [ver. 1.24.0]
Six new utility macros for the BasePlus:
- `%letters()` - allows to print a list of Roman letters,
- `%filePath()` - from fileref returns path to a file,
- `%libPath()` - from libref returns path to a library,
- `%workPath()` - returns path to the `WORK` library,
- `%translate()` - a wrapper to translate() function,
- `%tranwrd()` - a wrapper to tranwrd() function.
Documentation updated.
The BasePlus package [ver. 1.23.0]
Three new utility macros for the BasePlus:
- `%intsList()` - prints a space separated list of integers,
- `%splitDSIntoBlocks()` - splits dataset into block of given size (and one[the last] possibly smaller)
- `%splitDSIntoParts()` - splits dataset into given number of parts (of approximately same size)
Macros `splitDSIntoBlocks` and `splitDSIntoParts` supports *BASE* and *SPDE* engines.
Documentation updated.
The BasePlus package [ver. 1.19.0]
New macro:
The `%dirsAndFiles()` macro allows to extract info about all files and subdirectories of a given `root` directory. The macro is based on Kurt Bremser's "*Talking to Your Host*" article presented at WUSS 2022 conference.
SAS Packages Framework, version 20221215
Changes in the framework:
- Bug fix for `formats` and `proto` with cherry picking.
- Packages regenerated with the latest framework version:
- SQLinDS [2.2.4]
- DFA [0.5.4]
- macroArray [1.0.4]
- BasePlus [1.18.4]
- GSM [0.20.4]
- dynMacroArray [0.2.4]
- New macro `%bpPIPE()` in BasePlus package.
- Documentation updated.
## SAS Packages Framework, version 20221125
---
### Changes in `%generatePackage()` macro:
- Bug fix on the edge between cherry picking feature and loading required packages.
- Documentation updated.
---
### The following packages were regenerated with the latest version of the SAS Packages Framework:
- BasePlus [1.17.3]
- DFA [0.5.3]
- dynMacroArray [0.2.3]
- GSM [0.20.3]
- macroArray [1.0.3]
- SQLinDS [2.2.3]
## SAS Packages Framework, version 20221121
---
### New feature of "Cherry picking" added to the SAS Packages Framework.
Sometimes a package offers so many features that the number may be "overwhelming".
In such case only some of them may be selected for loading. Such process
is called a "cherry picking". The feature is provided by the `%loadPackage()` macro
which uses a `cherryPick=` parameter (see description below).
For example, execution of the following code:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~sas
%loadPackage(BasePlus, cherryPick=rainCloudPlot getVars)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
results with loading only the `rainCloudPlot` and the `getVars` elements.
If several object types (e.g., a macro and a format) share the same name
all will be loaded.
What is the trade-off?
- Since the cherry picking selects only a part of the package the `SYSloadedPackages`
macrovariable is not updated with the package name.
- Dependencies i.e., packages from the `ReqPackages` list, are not loaded automatically,
so they have to be loaded manually.
- The `%unloadPackage()` macro executed on such partially loaded package may issue
some (irrelevant) warnings.
---
### Changes in `%loadPackage()` macro:
- New `cherryPick=` parameter added to the macro.
As a value a *space separated* list of selected elements
of the package to be loaded into the SAS session is expected.
Default value of an asterisk (`*`) means: "load all elements of the package".
Empty list is equivalent to default.
- Documentation updated.
### Changes in `%generatePackage()` macro:
- Code adjustment for the cherry picking feature.
- Minor additional code refactoring.
- The `%ICEloadPackage()` macro does not support cherry picking.
---
### The following packages were regenerated with the latest version of the framework:
- BasePlus [1.17.2]
- DFA [0.5.2]
- dynMacroArray [0.2.2]
- GSM [0.20.2]
- macroArray [1.0.2]
- SQLinDS [2.2.2]
SAS Packages Framework, ver. 20221112
Changes in `%generatePackage()` macro:
- refactoring of package metadata extraction and metadata file preparation,
- in a package folder all subfolders which name starts with `!` are ignored in the package generation process,
- in a package folder all subfolders with unknown code types are ignored in the package generation process,
- bug fix in package version extraction for required package list,
- new test added to loading test,
- documentation updated.
---
The following packages were regenerated:
- BasePlus [1.17.1]
- DFA [0.5.1]
- dynMacroArray [0.2.1]
- GSM [0.20.1]
- macroArray [1.0.1]
- SQLinDS [2.2.1]
The SAS Packages Framework, version 20220830:
- New metadata checks added for required SAS components and required SAS packages.
- New parameter `delTestWork` in `%generatePackage()` macro added. It indicates if `WORK` directories generated by user tests should be deleted, i.e. the (NO)WORKTERM option is set.
- Log aesthetics and readability improved in the `%generatePackages()` macro:
- subtitles added in the log,
- `stimer` turned off,
- some notes turned off.
- Generation of table with tests results updated.
- Documentation updated.
Packages regenerated with the new version of SPF:
- BasePlus
- SQLinDS
- macroArray
- DFA
- dynMacroArray
- GSM
The BasePlus package [ver. 1.17]
- new macro `%LDSNM()`, which extends functionality of the `%LDSN()` was added.
- documentation updated
hash: 619D4B2562F1D9E42C9C5DCB326E8F4D6A020B5D0CEE29A6174F65F8E1B0E7BD
The BasePlus package [ver. 1.16]
- improvement to: %LDSN(), %LVarNm(), and %LVarNmLab() macros. Big thanks to Richard DeVenezia!
hash: 4CD3926B9842925C86B80B5B47B47BEA1FB9707826B545B9B4D52AE97BC3617E
**SAS Packages Framework**, version 20220420
- Changes in the `%GeneratePackage()` macro:
- check for driving files existence added,
- local `createPackageContentStatus` macro variable added,
- if `createPackageContentStatus` is not zero an _ERROR _is printed and tests are not executed,
- The `kscanx()` function and `kcountw()` function used in macros of the Framework,
- Doc. updated.
- Packages regenerated with new version of the SAS Packages Framework:
- BasePlus
- SQLinDS
- macroArray
- DFA
- dynMacroArray
- GSM
**SAS Packages Framework**, version 20211111:
- The `packages` fileref can point to multiple directories now, e.g. `filename packages ("/dir/nr/one" "/dir/nr/two");`
- New macro `%extendPackagesFileref()` added,
- Help updated,
- Packages regenerated with new version of SPF:
- DFA,
- GSM,
- MacroArray,
- BasePlus,
- dynMacroArray,
- SQLinDS.
**SAS Packages Framework**, version 20210528:
Help tags selection modified in the `%generatePackage()` macro.
New solution allows to write help tags surrounding comments in two ways.
The first (old) is:
```
/*** HELP START ***/
/*
comment
*/
/*** HELP END ***/
```
and the second (new):
```
/*** HELP START ***//*
comment
*//*** HELP END ***/
```
The second allows to print help info in log without `/*` and `*/` surrounding comments. It looks better and is easier for building `.md` files or other help documents (so you do not have to remove `/*` by hand).
Documentation updated.
The following packages were regenerated with new version of the SPF:
- BasePlus
- DFA
- dynMacroArray
- macroArray
- SQLinDS
**SAS Packages Framework**, version 20210109
Changes:
- type `formatS` added (mind the `S` at the end)
- testing extended:
- test for existence of datasets
- test for existence of macros
Documentation updated.
Packages recompiled with the new version of the SAS Packages Framework:
- `SQLinDS` (version 2.2)
- `macroArray` (version 0.8)
- `DFA` (version 0.4)
- `BasePlus` (version 0.991)
- `dynMacroArray` (version 0.2)
BasePlus, version 0.99
New features:
* `brackets.` format
* `semicolon.` format
* `bracketsC()` function
* `bracketsN()` function
* `semicolonC()` function
* `semicolonN()` function
* `%zipEvalf()` macro
* `%QzipEvalf()` macro
**SAS Packages Framework**, version 20201115
A new macro and a new functionality added.
The `%previewPackage()` macro allows to print out, into the log, the code of the package.
Documentation updated.
Packages recompiled with the new version of the SAS Packages Framework:
- `SQLinDS` (version 2.2)
- `macroArray` (version 0.7)
- `DFA` (version 0.2)
- `BasePlus` (version 0.9)
- `dynMacroArray` (version 0.2)
**SAS Packages Framework**, version 20201103
Bugfix for `SAS 9.4M5` related to the following Problem Note: `https://support.sas.com/kb/62/037.html`
All macros using MD%() function should now run on M5.
Packages recompiled with the new version of the SAS Packages Framework:
- SQLinDS (version 2.2)
- macroArray (version 0.7)
- The `%mcHashTable()` macro was added in the package.
- DFA (version 0.2)
- BasePlus (version 0.9)
- New parameter `mcArray=` added to the `%getVars()` macro.
- New macros added:`%dedupListS()`, `%dedupListC()`, `%dedupListP()`, `%dedupListX()`, and `%QdedupListX()`
- dynMacroArray (version 0.2)
New parameter `mcArray=` added to the `%getVars()` macro.
*Optional*, default value is blank.
1) When *null* - the macro behaves like a macro function
and returns a text string with variables list.
2) When *not null* - behaviour of the macro is altered.
In such case a macro array of selected variables, named
with `mcArray` value as a prefix, is created.
Furthermore a macro named as `mcArray` value is generated.
(see the macroArray package for the details).
When `mcArray=` parameter is active the `getVars` macro
cannot be called within the `%put` statement. Execution like:
`%put %getVars(..., mcArray=XXX);` will result with
an Explicit & Radical Refuse Of Run (aka ERROR).
**SAS Packages Framework**, version 20201018:
- In the `%generatePackage()` macro new parameter `testResults=` pointing the location where tests results should be stored was added.
- Datasets provided by the `data` type can be reloaded with help of the `lazyData=` parameter.
- The way the dataset help is displayed was improved.
- In the testing process the note about quoted string length was turned off.
- Tests results (i.e. `log` and `lst` files) can be redirected to a different location and are stored in directories named: `test_packagename_yyyymmddthhmmss`.
- Documentation updated.
Packages recompiled with the new version of the SAS Packages Framework:
- SQLinDS (version 2.2)
- macroArray (version 0.6)
- DFA (version 0.2)
- BasePlus (version 0.7)
- dynMacroArray (version 0.2)
**SAS Packages Framework**, version 20201014:
- Small change in displaying help information in the log.
Packages recompiled with new version of SAS Packages Framework:
- `SQLinDS` (version 2.2)
- `macroArray` (version 0.5)
- `DFA` (version 0.2)
- `BasePlus` (version 0.7)
- `dynMacroArray` (version 0.2)
**SAS Packages Framework**, version 20201014:
- Small change in displaying help information in the log.
Packages recompiled with new version of SAS Packages Framework:
- `SQLinDS` (version 2.2)
- `macroArray` (version 0.5)
- `DFA` (version 0.2)
- `BasePlus` (version 0.7)
- `dynMacroArray` (version 0.2)
**SAS Packages Framework**, version 20201010:
- Improvement in testing facility for the framework.
- Change in SAS components testing, missing component issues a *warning* instead of *error*.
- Documentation updated, `SPFinit.md` file added.
- Minor bug fixes.
Packages recompiled with new version of SAS Packages Framework:
- `SQLinDS` (version 2.2)
- `macroArray` (version 0.5)
- `DFA` (version 0.2)
- `BasePlus` (version 0.7)
- documentation updated
- new macro `%symdelGlobal()` added
- `dynMacroArray` (version 0.2)