Commit Graph

168 Commits

Author SHA1 Message Date
Bart Jablonski
2f5cb056b1 SAS Packages Framework, version 20230411
## **SAS Packages Framework**, version `20230411`.

---

Fixes:
- Bug fix for cherry picking. Cherry picking from already loaded package caused deletion of search paths to FCMP functions, Proto functions, Formats, and Informats. Also corresponding dataset for Proc Proto was deleted.
- Bug fix for Proc Proto C functions. The way how Proc Proto adds new portions of stored C functions caused that, if there were multiple directories with proto C functions all content was overwritten by the last one.

[Documentation](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 "Documentation") updated.

---

Packages regenerated with latest version of SAS Packages Framework:
- [BasePlus](https://github.com/SASPAC/baseplus "BasePlus") package [ver. 1.19.1]
- [DFA](https://github.com/SASPAC/dfa "DFA") package [ver. 0.5.5]
- dynMacroArray package [ver. 0.2.5]
- [GSM](https://github.com/SASPAC/gsm "GSM") package [ver. 0.20.5]
- [macroArray](https://github.com/SASPAC/macroarray "macroArray") package [ver. 1.0.5]
- [SQLinDS](https://github.com/SASPAC/sqlinds "SQLinDS") package [ver. 2.2.6]

---
2023-04-11 18:37:31 +02:00
Bart Jablonski
44be31bd84 Link to Warsaw IT Days 2023 presentation added
Link to "SAS Packages Framework - an easy code sharing medium for SAS" presentation at Warsaw IT Days 2023 added.
YT: https://youtu.be/T52Omisi0dk&t=0s
2023-04-04 11:54:39 +02:00
Bart Jablonski
227e522f5b The BasePlus package [ver. 1.19.0]
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.
2023-04-01 22:27:41 +02:00
Bart Jablonski
9a3ff6a265 The SQLinDS package [ver. 2.2.5]
The SQLinDS package [ver. 2.2.5]

Mike Rhoads' article "Use the Full Power of SAS in Your Function-Style Macros" added to the additional content for the package.
2023-02-10 09:56:17 +01:00
Bart Jablonski
62a14b4560 SAS Packages Framework, version 20230207
SAS Packages Framework, version 20230207

News:
- "Additional Content" feature added to the framework.

Changes in the framework related to the new feature:
- new macro `%loadPackageAddCnt()`,
- modifications in the `%generatePackage()` macro,
- new parameter in `%loadPackage()` and `%installPackage()` macros,
- new code added in loading test.

Fixes:
- IML Modules loader utility macro rewritten,
- bug fixes.

Documentation:
- documentation updated,
- spelling fixes.
2023-02-07 17:51:24 +01:00
Bart Jablonski
0bd2f6f2d8 SAS Packages Framework, version 20230112
SAS Packages Framework, version 20230112

In the `%generatePackage()` macro:
- A `packageGenerated` macrovariable added to packages metadata.It contains timestamp when the package was generated in the ISO8601 form (`YYYY-MM-DDThh:mm:ss`) The variable is from now on used the log output for headers in lading, help, preview, etc.
- Diagnostic messages for loading required packages extended.
- Help info updated for macros dedicated to CASL UDFs and IML modules loading.
- SHA256 hash digest for the package is calculated in two versions(types). Type `F` generates digest for whole package zip file. Type `C` generates digest for package zip file content. For developer convenience both digests are generated and displayed. Details are available in the [documentation](https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation).

The `%verifyPackage()` macro adjusted to new digest types. For the backward compatibility verification works also of packages generated with previous versions of SPF.

Documentation updated.
2023-01-12 17:23:22 +01:00
Bart Jablonski
e3c42e6441 Update README.md
spelling corrected
2023-01-12 14:42:36 +01:00
Bartosz Jablonski
8807a1560e SAS Packages Framework, version 20221215
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.
2022-12-15 17:56:08 +01:00
Bart Jablonski
a282349c86 Update README.md 2022-12-14 12:12:53 +01:00
Bart Jablonski
6dc4f22103 Update in README.md
The "Workshop video for the User" got outdated.
2022-12-14 09:33:54 +01:00
Bartosz Jablonski
f3f4747df6 SAS Packages Framework, version 20221212
SAS Packages Framework, version 20221212

- New type `CASLUDF` for CASL User Defined Functions added to the framework.
- If a package contains IML modules or CASL user defined functions additional utility macros for IML Modules and CASL UDFs are generated when package is loaded.
- Documentation updated.
- Minor bugfix.
2022-12-12 23:39:33 +01:00
Bartosz Jablonski
f59c2a4893 SAS Packages Framework, version 20221125
## 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]
2022-11-26 23:49:20 +01:00
Bart Jablonski
b4314c03e3 SAS Packages Framework, version 20221121
## 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]
2022-11-21 14:30:47 +01:00
Bartosz Jablonski
3a824b4d8b SAS Packages Framework, version 20221121
## 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]
2022-11-21 14:25:56 +01:00
Bart Jablonski
ba4b5f8c32 Update README.md 2022-11-16 11:57:15 +01:00
Bart Jablonski
15e7d48adf Update README.md 2022-11-13 20:19:06 +01:00
Bart Jablonski
7d083e879c SAS Packages Framework, ver. 20221112 2022-11-12 18:29:29 +01:00
Bartosz Jablonski
35e6ff8d5e SAS Packages Framework, ver. 20221112
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]
2022-11-12 17:27:00 +01:00
Bart Jablonski
5bd013c925 "Hello World" example tutorial
"Hello World" example tutorial.
2022-11-12 00:43:12 +01:00
Bartosz Jablonski
6c38872ee2 SAS Packages Framework, ver. 20221107
**SAS Packages Framework**, ver. 20221107

- Minor update on the `%generatePackage()` macro log look.
2022-11-07 10:45:29 +01:00
Bartosz Jablonski
e3a813b257 Link to recording from the SAS Explore 2022 conference: "A BasePlus Package for SAS"
Link to recording from the SAS Explore 2022 conference: "A BasePlus Package for SAS"
2022-11-01 17:43:31 +01:00
Bartosz Jablonski
67bd3abd58 SAS Packages Framework, ver. 20221022
**SAS Packages Framework**, ver. `20221022`

In the `%generatePackage()` macro additional quality checks for files of EXEC and CLEAN types were added.
Each EXEC file should have a CLEAN file counterpart and vice versa.
- If the number of EXECs and CLEANs differs but both are positive macro issues a Warning.
- If EXECs are positive but CLEANs are zero (or other way around) macro issues an Error!

Documentation updated.
2022-10-22 22:13:50 +02:00
Bart Jablonski (yabwon)
1968330049 SAS Packages Framework, version 20221002
**SAS Packages Framework**, version `20221002`

- Modifications in the `%installPackage()` macro it is allowed to call installation of packages with version number (if used with `mirror=0`), for example: `%installPackage(baseplus(1.17) macroarray(1.0) dfa(0.5) GSM)`,

- For the `%installPackage()` and in the `%loadPackageS()` macros the list of packages standardised before execution to the form `package1(ver1) package2(ver2) package3(ver3)`,

- Fix for directories "with spaces" for `%installPackage()`.

- Documentation updated.
2022-10-01 12:11:40 +02:00
Bart Jablonski (yabwon)
7e202f81ff SAS Packages Framework, version 20221001
**SAS Packages Framework**, version 20221001

Update in setting package version.
- Modified macros: `%loadPackage()` and `%generatePackage()`.
- The `major.minor.patch` approach is also accepted accepted. Now package version can be: `X`, `X.Y`, or `X.Y.Z`. Missing parts are treated as 0, e.g. 1 is equivalent with 1.0.0, 1.2 is 1.2.0, and .2 is 0.2.0.

Modification in path for mirror 0 in the `%installPackage()` macro, it is `https://github.com/SASPAC/` now.
2022-10-01 01:02:59 +02:00
Bart Jablonski (yabwon)
26d9c735fe **SAS Packages Framework**, version 20220930.
**SAS Packages Framework**, version 20220930.

- In `%installPackage()` macro:
  - New parameter  `version=`  added. Indicates which historical version of a package to install. Historical version are available only if `mirror=0` is set. Default value is null which means "install the latest".
  - New default value for `mirror` parameter set to 0
- New repository dedicated for SAS Packages created: the *SASPAC - SAS Packages Archive* introduced under: `https://github.com/SASPAC`. Each package has its own project with historical versions in it.
- Documentation updated.
2022-09-30 20:27:23 +02:00
Bart Jablonski (yabwon)
be89c6b9c6 SAS Packages Framework, version 20220925
**SAS Packages Framework**, version `20220925`

New parameter `mirror=` added to the `%installPackage()` macro.
The `mirror` indicates which web location for packages installation is used.
Value `1` indicates: `https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main`
Value `2` indicates: `https://pages.mini.pw.edu.pl/~jablonskib/SASpublic/SAS_PACKAGES`
Default value is `1`.
2022-09-25 19:11:55 +02:00
Bart Jablonski (yabwon)
bbba37d8eb The SAS Packages Framework, version 20220830:
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
2022-08-30 18:56:26 +02:00
Bart Jablonski
6ccc07a5bb Add SAS Packages Framework to SAS
Initiative to add SAS Packages Framework to SAS Base/Viya
2022-05-31 21:53:53 +02:00
Bart Jablonski
b5e15bda11 Add SAS Packages Framework to SAS
Innitiative to *add* SAS Packages Framework *to* SAS Base/Viya
2022-05-31 21:50:58 +02:00
Bart Jablonski
160c1bc9d3 Add SAS Packages Framework to SAS
Innitiative to *add* SAS Packages Framework *to* SAS Base/Viya
2022-05-31 21:49:56 +02:00
Bart Jablonski (yabwon)
ea866123d9 The BasePlus package [ver. 1.17]
The BasePlus package [ver. 1.17]

- new macro `%LDSNM()`, which extends functionality of the `%LDSN()` was added.
- documentation updated

hash: 619D4B2562F1D9E42C9C5DCB326E8F4D6A020B5D0CEE29A6174F65F8E1B0E7BD
2022-05-11 23:44:34 +02:00
Bart Jablonski (yabwon)
75029a488f The BasePlus package [ver. 1.16]
The BasePlus package [ver. 1.16]

- improvement to: %LDSN(), %LVarNm(), and %LVarNmLab() macros. Big thanks to Richard DeVenezia!

hash: 4CD3926B9842925C86B80B5B47B47BEA1FB9707826B545B9B4D52AE97BC3617E
2022-05-09 19:00:25 +02:00
Bart Jablonski (yabwon)
642bc5ba72 The BasePlus package [ver. 1.15]
The **BasePlus** package [ver. 1.15]

- 3 new macros added: `%LDSN()`, `%LVarNm()`, and `%LVarNmLab()`

hash: 0331C673052D5221DA98C5CC93295634D8A0BC62C7D2FEF9D0D85B0B2DEDE4E9
2022-05-08 19:10:55 +02:00
Bart Jablonski
6d10426474 **SAS Packages Framework**, version 20220420
**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
2022-04-20 22:48:09 +02:00
Bart Jablonski (yabwon)
7048adb3b6 **SAS Packages Framework**, version 20220420
**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
2022-04-20 22:35:09 +02:00
Bart Jablonski (yabwon)
5ab1f4c73e The GSM package [ver. 0.20]
The GSM package [ver. 0.20]

- internal bug fix.

hash: BE9508C8E37706B2EB2FBCA68B64F7DCF63C65E8E24775C92E28FE34E547893D
2022-04-06 18:12:10 +02:00
Bart Jablonski
4452d9ee7c Update README.md 2022-03-18 18:05:46 +01:00
Bart Jablonski (yabwon)
df04e48656 The GSM package [ver. 0.19]
The `GSM` package [ver. 0.19]

- The code file parsing modified.
- A `lineEnd=` parameter added.
- The `trim=` parameter deprecated.
- A warning about the `/*%` text changed into a note.
- Documentation updated.

hash: F63B8C602C1DB02F4107D9AF78182D87CD64AEA6521163067B7EB6D5C1B368AF
2022-03-13 20:43:14 +01:00
Bart Jablonski (yabwon)
76c7793e34 The GSM package [ver. 0.18]
The GSM package [ver. 0.18]

- a bug fix in file scraping fixed

hash: 8D730316043A6523A3AF2AA15D2820BB75A46E06307F2B8916D30AC102AEE31D
2022-03-07 16:37:15 +01:00
Bart Jablonski (yabwon)
cc6528bbeb Package macroArray, version 1.0
Package **macroArray**, version 1.0:

- Update in `%mcHashTable()` macro.
- New macro `%mcDictionary()` emulating dictionaries in macro language.
- Doc. updated.
2022-02-17 14:20:12 +01:00
Bart Jablonski (yabwon)
10009b33ae **SAS Packages Framework**, version 20220113
**SAS Packages Framework**, version 20220113

- Bug fixes in the SAS Packages Framework.
- Packages regenerated.
  - BasePlus
  - SQLinDS
  - macroArray
  - DFA
  - dynMacroArray
  - GSM
2022-01-13 16:59:12 +01:00
Bart Jablonski (yabwon)
68e85eb5ba BasePlus package [ver. 1.14]
BasePlus package [ver. 1.14]:
- bug fix in the `%zipLibrary()` and the `%unzipLibrary()` macro
2022-01-11 14:08:03 +01:00
Bart Jablonski (yabwon)
0778a71ada BasePlus package [ver. 1.13]
BasePlus package [ver. 1.13] :
- bug fix in `%zipLibrary()` macro
2022-01-11 11:01:12 +01:00
Bart Jablonski (yabwon)
0cf35c15a7 Package MacroArray, version 0.9
Package MacroArray, version 0.9:

-New macro `%sortMacroArra()` added.
-The doc. updated.
2021-12-28 18:29:24 +01:00
Bart Jablonski (yabwon)
00c63c4d8a SAS Packages Framework, version 20211216
**SAS Packages Framework**, version 20211216

- Bug fix in the `%verifyPackage()` macro
2021-12-16 10:40:29 +01:00
Bart Jablonski (yabwon)
9dedc53c31 **SAS Packages Framework**, version 20211216
**SAS Packages Framework**, version 20211216

- Bug fix in the `%verifyPackage()` macro
2021-12-16 10:36:08 +01:00
Bart Jablonski (yabwon)
a7d61f6026 SAS Packages Framework, version 220211216
**SAS Packages Framework**, version 220211216

- Bug fix in the `%verifyPackage()` macro
2021-12-16 10:15:25 +01:00
Bart Jablonski (yabwon)
a95c672693 Package BasePlus, version 1.12
Package BasePlus, version 1.12:

-BugFix in `%unzipLibrary()` macro.
2021-11-23 12:50:41 +01:00
Bart Jablonski (yabwon)
9bccc4329a Package BasePlus, version 1.11
Package BasePlus, version 1.11:

-Macro `%unzipLibrary()` updated.
2021-11-19 17:07:47 +01:00
yabwon
b76b1ed9eb Package BasePlus, version 1.1
Package BasePlus, version 1.1:

-New macro `%unzipLibrary()` added.
-Macro `%zipLibrary()` updated.
-The doc. updated.
2021-11-14 16:12:04 +01:00