211 Commits

Author SHA1 Message Date
Bart Jablonski
b71b0382c5 SAS Packages Framework, version 20251126
SAS Packages Framework, version 20251126

Changes:
- Automatic documentation generator in the %generatePackage() macro can now exclude files generated by `%splitCodeForPackage()` macro.
2025-11-26 20:58:03 +01:00
Bart Jablonski
200bab261e SAS Packages Framework, version 20251122
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.
2025-11-22 13:18:32 +01:00
Bart Jablonski
b4b319a2e0 SAS Packages Framework, version 20251017
SAS Packages Framework, version 20251017

Changes:
- New parameters `workInTestResults=` and `testWorkPath=` added to the `%generatePackage()` macro.
- Documentation updated.
2025-10-19 21:36:03 +02:00
Bart Jablonski
998a23c980 Update README.md 2025-10-13 10:02:21 +02:00
Bart Jablonski
fab9fb7166 Update README.md
Link to "SAS Package ー その共有、もっとスマートに" video added.
2025-09-30 22:32:32 +02:00
Bart Jablonski
79bd3d0c0a Update README.md 2025-08-07 18:49:17 +02:00
Bart Jablonski
f63ff497ee SAS Packages Framework, version 20250729
SAS Packages Framework, version 20250729

Changes:
- New parameter `github=` added to the `%installPackage()` macro.
- Documentation updated.
2025-07-29 11:51:56 +02:00
Bart Jablonski
030a0932a8 SAS Packages Framework, version 20250728
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.
2025-07-28 10:39:12 +02:00
Bart Jablonski
cc25b76144 SAS Packages Framework, version 20250710
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.
2025-07-10 13:56:45 +02:00
Bart Jablonski
628641a6cf Update README.md 2025-04-22 13:06:18 +02:00
Bart Jablonski
191d07c2c8 Update README.md
A bit of polishing.
2025-04-03 13:40:06 +02:00
Bart Jablonski
2e47ab5e37 SAS Packages Framework, version 20241207
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.
2024-12-07 23:08:14 +01:00
Bart Jablonski
c4e21e86b6 SAS Packages Framework, version 20241129
SAS Packages Framework, version 20241129

Bug Fix in:
- `%generatePackage()` macro, and
- `%splitCodeForPackage()` macro.

---
2024-11-29 17:01:10 +01:00
Bart Jablonski
4b640e8ce1 SAS Packages Framework, version 20241102
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.
2024-11-02 22:18:23 +01:00
Bart Jablonski
7a7f674acf SAS Packages Framework, version 20241027
SAS Packages Framework, version 20241027
- new utility macro added (`%splitCodeForPackage()`)
- documentation and workshop materials updated
2024-10-28 10:05:28 +01:00
Bart Jablonski
c667bc6b25 SAS Packages Framework, version 20241014
#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.

---
2024-10-14 21:38:08 +02:00
Bart Jablonski
0a01f39662 update in README.md
update in README.md

- links to packages documentation updated
2024-10-01 07:25:20 +02:00
Bart Jablonski
45127a057e SAS Packages Framework, version 20240927
## 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.

---
2024-09-27 11:25:33 +02:00
Bart Jablonski
dc7f8cee19 SAS Packages Framework, version 20240711
SAS Packages Framework, version `20240711`

Changes (minor):
- aesthetic change in automatic documentation generation.

---
2024-07-11 14:57:29 +02:00
Bart Jablonski
55b7b507cf SAS Packages Framework, version 20240529
SAS Packages Framework, version `20240529`

Changes:
- aesthetic changes in log when running `%generatePackage()` macro,
- reshaped format of an automatic documentation header,
- and little bug fix for automatic documentation generation (for excluding file from documentation the `IN` operator should be used instead `IN:`).

---

BasePlus, version `1.39.0`

Changes:
- new parameter `DSout=` added in `%downloadFilesTo()` macro,
- file SHA256: `F*3C3A2050E3FF46E1FC0F936634A66FC3F294A3531EFE0A7DC9CE74F2EF17C687` for this version.
2024-05-29 16:38:34 +02:00
Bart Jablonski
73f0ba2d4c SAS Packages Framework, version 20240423
SAS Packages Framework, version 20240423

A minor aesthetic update in a log note about KMF snippets added to `%generatePackage()` macro. Does not change any functionality, just make it look nicer.
2024-04-23 11:32:52 +02:00
Bart Jablonski
c38cb1e70d SAS Packages Framework, version 20240415
SAS Packages Framework, version 20240415

Features:

- In the `%generatePackage()` macro, when `markdownDoc=` parameters is used, packages files can be "excluded" from being used to produce documentation markdown file.

- Documentation updated.
2024-04-15 19:31:06 +02:00
Bart Jablonski
ca3a001f65 SAS Packages Framework, version 20231210
SAS Packages Framework, version 20231210

Changes:

- Two new parameters added for the `%generatePackage()` macro.
  The parameters are:
    - `markdownDoc=` - Indicates if a markdown file with documentation be generated from help information blocks.
    - `easyArch=` - When creating documentation file (`markdownDoc=1`) it indicates if a copy of the zip and markdown files with the version number in the file name be created.

- The `HelloWorldPackage.md` example updated.

- Documentation updated.
2023-12-12 11:32:10 +01:00
Bart Jablonski
669a8e0a1d SAS Packages Framework, version 20231123
## SAS Packages Framework, version `20231123`

### Changes in SPF

- Minor update in log aesthetics for `%generatePackage()` macro.

---

### The macroArray package [ver. 1.2.3]

- Update in `q=` parameter for the `%array()` macro.
- Fix in data set existence for `ds=` parameter in the `%array()` macro.
- Documentation updated.

---

### Packages regenerated with the latest version of SPF:

- macroArray package [ver. 1.2.3]

SHA256 digests for packages:

- macroArray: `F*A0840B92EB9356EDB318DBE9B579A345C85ABF69E8D5F7C73C144C66F2F74FB4`
2023-11-23 21:50:17 +01:00
Bart Jablonski
5be2d8c76c SAS Packages Framework, version 20231111
SAS Packages Framework, version 20231111

- new type: kmfsnip for keyboard macro abbreviations added to the framework
- documentation updated

SQLinDS package [ver. 2.3.0]

- KMF snippet added
- documentation updated

BasePlus package [ver. 1.34.0]

- update in unzipArch macro
- new zipArch macro added
- documentation updated

Packages regenerated with the latest version of SPF:
- SQLinDS package [ver. 2.3.0]
- BasePlus package [ver. 1.34.0]
- DFA package [ver. 0.5.7]
- GSM package [ver. 0.22.1]
- macroArray package [ver. 1.2.1]
- dynMacroArray package [ver. 0.2.7]
2023-11-11 17:19:06 +01:00
Bart Jablonski
ee5d4de333 SAS Packages Framework, version 20231107
## SAS Packages Framework, version `20231107`

Minor fix. An ugly note in log removed for `%loadPackageAddCnt()` macro.

## The BasePlus package [ver. 1.33.0]

- New macro [`%unzipArch()`](https://github.com/SASPAC/baseplus/blob/main/baseplus.md#unziparch-macro) added. The macro allows to extract ZIP archive file from SAS session and does not need `XCMD` (is OS independent).
- Documentation updated.

## The GSM package [ver. 0.22.0]

- Article explaining details of "macro hiding" added as an additional content to the package.

## The macroArray package [ver. 1.2.0]

- New parameters added to the [`%mcDictionary()`](https://github.com/SASPAC/macroarray/blob/main/macroarray.md#mcdictionary-macro) macro which allows to populate dictionary directly from a data set (see the last example in doc.).
- Documentation updated.
2023-11-07 12:35:34 +01:00
Bart Jablonski
9f4143af53 SAS Packages Framework version 20231024
SAS Packages Framework version 20231024

Modification in `%generatePackage()` macro. Situation when dependencies for package are missing is now handled more gracefully. It's still an error message, but now it ends more elegant way.
2023-10-24 14:48:28 +02:00
Bart Jablonski
dc3bedae3f SAS Packages Framework version 20231009
SAS Packages Framework version 20231009

Bug fixes and a brand new logo :-)
2023-10-09 18:31:24 +02:00
Bart Jablonski
af94d49a79 SAS Packages Framework version 20231009
SAS Packages Framework version 20231009

Bug fix in `%generatePackage()` macro.

Documentation updated.
2023-10-09 18:04:52 +02:00
Bart Jablonski
4069f066aa Update README.md 2023-09-26 13:19:26 +02:00
Bart Jablonski
266a1fe1a7 Update README.md
Don't forget to **STAR** () the repository!
2023-09-26 13:16:52 +02:00
Bart Jablonski
3111b6667e Update README.md
Don't forget to **STAR** () the repository!
2023-09-26 13:16:36 +02:00
Bart Jablonski
82681a3f91 Update README.md 2023-09-12 12:50:28 +02:00
Bart Jablonski
98e2125028 SAS Packages Framework, version 20230904
## 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`]
2023-09-04 16:29:05 +02:00
Bart Jablonski
77d6b0a2e5 The BasePlus package [ver. 1.29.0]
The BasePlus package [ver. 1.29.0]

Three new macros:
- fmt
- infmt
- minclude

Documentation updated.

SHA256 for BasePlus: `F*9EEE4F4B99EA725B60141645AB6A50BFEBA32CE54848593F8D832D907D63CAD7`
2023-08-24 11:32:01 +02:00
Bart Jablonski
c1182ea8cb The GSM package [ver. 0.21.0]
The GSM package [ver. 0.21.0]

Changes:
- new debugging parameter `encrypt` added to the `%GSM()` macro
- annoying note on "automatic type conversion" fixed
2023-07-27 11:07:49 +02:00
Bart Jablonski
ddfac01483 The BasePlus package [ver. 1.26.1]
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`
2023-06-02 11:42:12 +02:00
Bart Jablonski
c126e7c0a3 The BasePlus package [ver. 1.26.0]
# The BasePlus package [ver. 1.26.0]

### New Features:
Two new macros were introduces in the release:
 - `%findDSwithVarVal()`
 - `%getTitle()`

Documentation updated.
2023-06-01 17:04:12 +02:00
Bart Jablonski
e7883142b8 The BasePlus package [ver. 1.24.2]
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`
2023-05-26 11:17:42 +02:00
Bart Jablonski
e55275d308 SAS Packages Framework, version 20230520
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.
2023-05-20 17:23:53 +02:00
Bart Jablonski
72a77edb16 The BasePlus package [ver. 1.24.0]
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.
2023-05-03 23:04:41 +02:00
Bart Jablonski
dbe8dbc938 The BasePlus package [ver. 1.23.0]
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.
2023-04-19 16:38:57 +02:00
Bart Jablonski
9168f4b4f0 The BasePlus package [ver. 1.20.0]
The BasePlus package [ver. 1.20.0]

- New utility macro `%repeatTxt()` added.
- Documentation updated.
2023-04-17 14:57:29 +02:00
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