<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SAS Packages Framework, version 20260202 in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20260202/m-p/982850#M379402</link>
    <description>&lt;P&gt;Hey SAS-C,&lt;/P&gt;
&lt;P&gt;Just FYI.&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;SAS Packages Framework, version&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;20260202&lt;/CODE&gt;&lt;/H1&gt;
&lt;P&gt;Available as usual at:&amp;nbsp;&lt;A title="https://github.com/yabwon/SAS_PACKAGES" href="https://github.com/yabwon/SAS_PACKAGES" target="_self"&gt;&lt;STRONG&gt;https://github.com/yabwon/SAS_PACKAGES&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The idea for this update was suggested to me by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="Magnus Mengelbier" href="https://www.linkedin.com/in/magnusmengelbier/" target="_blank" rel="nofollow noopener"&gt;Magnus Mengelbier&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(guthub:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/yabwon/SAS_PACKAGES/blob/20260202/github.com/mmengelbier" target="_blank" rel="noopener"&gt;mmengelbier&lt;/A&gt;). Thanks Magnus!&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Changes and modifications:&lt;/H2&gt;
&lt;P&gt;A) If the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;hash=&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;parameter is not provided the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="%verifyPackage()" href="https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/SPFinit.md#verifypackage" target="_blank" rel="noopener"&gt;&lt;CODE&gt;%verifyPackage()&lt;/CODE&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;macro prints&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;SHA256&lt;/CODE&gt;,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;SHA1&lt;/CODE&gt;, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;MD5&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;check-sums for the package to the log now. If you need hashes as additional information in the log (e.g., for auditing purpose) you can now easily get them.&lt;/P&gt;
&lt;P&gt;B) Small aesthetic fix in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="%unbundlePackages()" href="https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/SPFinit.md#unbundlepackages" target="_blank" rel="noopener"&gt;&lt;CODE&gt;%unbundlePackages()&lt;/CODE&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;macro.&lt;/P&gt;
&lt;P&gt;C) A bunch of general code simplifications.&lt;/P&gt;
&lt;P&gt;D)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation" target="_blank" rel="noopener"&gt;Documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;updated.&lt;/P&gt;
&lt;P&gt;E) Packages regenerated with the latest version of the framework:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/baseplus" target="_blank" rel="noopener"&gt;BasePlus&lt;/A&gt;, SHA256 for the package:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;F*B762F900EEFF7035880891D89416C0F973E4D377BCB75486283363A9BDADBA82&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/dfa" target="_blank" rel="noopener"&gt;DFA&lt;/A&gt;, SHA256 for the package:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;F*17C88537F5FA9BCFAA1AC4803D0F1EF47665C8446A44C82B5558A08315DF0C49&lt;/CODE&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Examples&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Example 1.&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;With updates from the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/yabwon/SAS_PACKAGES/releases/tag/20260126" target="_blank" rel="noopener"&gt;previous release&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;printing audit information (including check-sums) for a package is now a piece of cake. Let's do it for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;MacroArray&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;package:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%let&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;packageName&lt;/SPAN&gt;&lt;/SPAN&gt;=MacroArray; &lt;SPAN class="pl-c"&gt;/* macrovariable for convenience */&lt;/SPAN&gt;

%loadPackage(&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;.)
%helpPackage(&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;.)

&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Audit&lt;/SPAN&gt;&lt;/SPAN&gt; metadata &lt;SPAN class="pl-k"&gt;for&lt;/SPAN&gt; the: &lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;. package: ;
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Authors&lt;/SPAN&gt;&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(A);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Version&lt;/SPAN&gt;&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(V);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Generation&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN class="pl-c1"&gt;datetime&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(D);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Maintainers&lt;/SPAN&gt;&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(M);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Required&lt;/SPAN&gt;&lt;/SPAN&gt; packages &lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(P);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Required&lt;/SPAN&gt;&lt;/SPAN&gt; SAS components &lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(&lt;SPAN class="pl-c1"&gt;S&lt;/SPAN&gt;);
&lt;SPAN class="pl-c"&gt;/* check-sums */&lt;/SPAN&gt;
%verifyPackage(&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;.)
&lt;/PRE&gt;
&lt;DIV class="zeroclipboard-container position-absolute right-0 top-0"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
    <pubDate>Mon, 02 Feb 2026 14:41:12 GMT</pubDate>
    <dc:creator>yabwon</dc:creator>
    <dc:date>2026-02-02T14:41:12Z</dc:date>
    <item>
      <title>SAS Packages Framework, version 20260202</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20260202/m-p/982850#M379402</link>
      <description>&lt;P&gt;Hey SAS-C,&lt;/P&gt;
&lt;P&gt;Just FYI.&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;SAS Packages Framework, version&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;20260202&lt;/CODE&gt;&lt;/H1&gt;
&lt;P&gt;Available as usual at:&amp;nbsp;&lt;A title="https://github.com/yabwon/SAS_PACKAGES" href="https://github.com/yabwon/SAS_PACKAGES" target="_self"&gt;&lt;STRONG&gt;https://github.com/yabwon/SAS_PACKAGES&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The idea for this update was suggested to me by&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="Magnus Mengelbier" href="https://www.linkedin.com/in/magnusmengelbier/" target="_blank" rel="nofollow noopener"&gt;Magnus Mengelbier&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(guthub:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/yabwon/SAS_PACKAGES/blob/20260202/github.com/mmengelbier" target="_blank" rel="noopener"&gt;mmengelbier&lt;/A&gt;). Thanks Magnus!&lt;/P&gt;
&lt;HR /&gt;
&lt;H2&gt;Changes and modifications:&lt;/H2&gt;
&lt;P&gt;A) If the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;hash=&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;parameter is not provided the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="%verifyPackage()" href="https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/SPFinit.md#verifypackage" target="_blank" rel="noopener"&gt;&lt;CODE&gt;%verifyPackage()&lt;/CODE&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;macro prints&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;SHA256&lt;/CODE&gt;,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;SHA1&lt;/CODE&gt;, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;MD5&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;check-sums for the package to the log now. If you need hashes as additional information in the log (e.g., for auditing purpose) you can now easily get them.&lt;/P&gt;
&lt;P&gt;B) Small aesthetic fix in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A title="%unbundlePackages()" href="https://github.com/yabwon/SAS_PACKAGES/blob/main/SPF/SPFinit.md#unbundlepackages" target="_blank" rel="noopener"&gt;&lt;CODE&gt;%unbundlePackages()&lt;/CODE&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;macro.&lt;/P&gt;
&lt;P&gt;C) A bunch of general code simplifications.&lt;/P&gt;
&lt;P&gt;D)&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/yabwon/SAS_PACKAGES/tree/main/SPF/Documentation" target="_blank" rel="noopener"&gt;Documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;updated.&lt;/P&gt;
&lt;P&gt;E) Packages regenerated with the latest version of the framework:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/baseplus" target="_blank" rel="noopener"&gt;BasePlus&lt;/A&gt;, SHA256 for the package:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;F*B762F900EEFF7035880891D89416C0F973E4D377BCB75486283363A9BDADBA82&lt;/CODE&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/SASPAC/dfa" target="_blank" rel="noopener"&gt;DFA&lt;/A&gt;, SHA256 for the package:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;F*17C88537F5FA9BCFAA1AC4803D0F1EF47665C8446A44C82B5558A08315DF0C49&lt;/CODE&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H2&gt;Examples&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Example 1.&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;With updates from the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/yabwon/SAS_PACKAGES/releases/tag/20260126" target="_blank" rel="noopener"&gt;previous release&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;printing audit information (including check-sums) for a package is now a piece of cake. Let's do it for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;MacroArray&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;package:&lt;/P&gt;
&lt;DIV class="highlight highlight-source-sas notranslate position-relative overflow-auto"&gt;
&lt;PRE&gt;&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%let&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;packageName&lt;/SPAN&gt;&lt;/SPAN&gt;=MacroArray; &lt;SPAN class="pl-c"&gt;/* macrovariable for convenience */&lt;/SPAN&gt;

%loadPackage(&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;.)
%helpPackage(&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;.)

&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Audit&lt;/SPAN&gt;&lt;/SPAN&gt; metadata &lt;SPAN class="pl-k"&gt;for&lt;/SPAN&gt; the: &lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;. package: ;
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Authors&lt;/SPAN&gt;&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(A);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Version&lt;/SPAN&gt;&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(V);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Generation&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN class="pl-c1"&gt;datetime&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(D);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Maintainers&lt;/SPAN&gt;&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(M);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Required&lt;/SPAN&gt;&lt;/SPAN&gt; packages &lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(P);
&lt;SPAN class="pl-k"&gt;&lt;SPAN class="pl-c1"&gt;%put&lt;/SPAN&gt; &lt;SPAN class="pl-en"&gt;Required&lt;/SPAN&gt;&lt;/SPAN&gt; SAS components &lt;SPAN class="pl-c1"&gt;list&lt;/SPAN&gt;: %&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName.&lt;/SPAN&gt;Meta(&lt;SPAN class="pl-c1"&gt;S&lt;/SPAN&gt;);
&lt;SPAN class="pl-c"&gt;/* check-sums */&lt;/SPAN&gt;
%verifyPackage(&lt;SPAN class="pl-smi"&gt;&amp;amp;packageName&lt;/SPAN&gt;.)
&lt;/PRE&gt;
&lt;DIV class="zeroclipboard-container position-absolute right-0 top-0"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 02 Feb 2026 14:41:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-Packages-Framework-version-20260202/m-p/982850#M379402</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2026-02-02T14:41:12Z</dc:date>
    </item>
  </channel>
</rss>

