<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gh_mirror/jhunkeler/stasis.git/src/ini.c, branch dynamic-tests</title>
<subtitle>A pipeline delivery generator
</subtitle>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/'/>
<entry>
<title>Refactor directory structure</title>
<updated>2024-10-14T13:43:31+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@gmail.com</email>
</author>
<published>2024-10-14T13:32:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=5a9688e9e78a25a42bddfc4388fb4ce3311ded74'/>
<id>5a9688e9e78a25a42bddfc4388fb4ce3311ded74</id>
<content type='text'>
* Move core library sources into src/lib/core
* Move command-line programs into src/cli
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Move core library sources into src/lib/core
* Move command-line programs into src/cli
</pre>
</div>
</content>
</entry>
<entry>
<title>ini.c: fix realloc(s)</title>
<updated>2024-10-09T16:51:30+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@gmail.com</email>
</author>
<published>2024-10-09T14:59:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=358b88507a8aaf520c56900697647f8aca52832a'/>
<id>358b88507a8aaf520c56900697647f8aca52832a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add template convience functions (and bug fixes) (#29)</title>
<updated>2024-08-15T19:27:45+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-08-15T19:27:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=c069d0da7645eb1e596a53178960149224af8d48'/>
<id>c069d0da7645eb1e596a53178960149224af8d48</id>
<content type='text'>
* Die when render variable is NULL

* This was caught when a call to {{ func:xyz() }} lacked opening/closing parenthesis

* Scripts in tests should only render template strings right before execution

* Remove conda version pin

* This avoids updating conda in the base environment
* This also avoids pitfalls associated with newly released (always broken) versions of conda

* Add two template convenience functions

* get_junitxml_result_auto()
* get_basetemp_result_auto()

* Handle rendering error for test script

* Rename functions

* get_junitxml_result_auto -&gt; junitxml_file
* get_basetemp_result_auto -&gt; basetemp_dir
* Thank you, @zacharyburnett</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Die when render variable is NULL

* This was caught when a call to {{ func:xyz() }} lacked opening/closing parenthesis

* Scripts in tests should only render template strings right before execution

* Remove conda version pin

* This avoids updating conda in the base environment
* This also avoids pitfalls associated with newly released (always broken) versions of conda

* Add two template convenience functions

* get_junitxml_result_auto()
* get_basetemp_result_auto()

* Handle rendering error for test script

* Rename functions

* get_junitxml_result_auto -&gt; junitxml_file
* get_basetemp_result_auto -&gt; basetemp_dir
* Thank you, @zacharyburnett</pre>
</div>
</content>
</entry>
<entry>
<title>More unit tests (and fixing bugs) (#23)</title>
<updated>2024-08-12T19:11:17+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-08-12T19:11:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=95672b2e7a6cc0c07306893d5bb0b80ee3570f7a'/>
<id>95672b2e7a6cc0c07306893d5bb0b80ee3570f7a</id>
<content type='text'>
* Add test_artifactory.c to suite

* Add test_ini_getval_wrapper to ini.c

* basic ini_getval_TYPE() conversion checks

* bugfix: use strtof in INIVAL_TYPE_FLOAT case

* Include stdio.h to pull in FILE structure

* bugfix: free data at index during strlist_set operation

* Previous behavior of setting the pointer to NULL introduced a subtle memory leak

* Set strlist error when index it out of range

* Import private delivery functions required for mock context creation

* Remove static declaration

* populate_delivery_cfg()

* Add test_junitxml.c

* Fix duplicate define value for JUNIT_RESULT_STATE_ERROR
* Add static junit test data
* Copy test data to current test directory</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add test_artifactory.c to suite

* Add test_ini_getval_wrapper to ini.c

* basic ini_getval_TYPE() conversion checks

* bugfix: use strtof in INIVAL_TYPE_FLOAT case

* Include stdio.h to pull in FILE structure

* bugfix: free data at index during strlist_set operation

* Previous behavior of setting the pointer to NULL introduced a subtle memory leak

* Set strlist error when index it out of range

* Import private delivery functions required for mock context creation

* Remove static declaration

* populate_delivery_cfg()

* Add test_junitxml.c

* Fix duplicate define value for JUNIT_RESULT_STATE_ERROR
* Add static junit test data
* Copy test data to current test directory</pre>
</div>
</content>
</entry>
<entry>
<title>Return of the INI refactor (#20)</title>
<updated>2024-08-08T16:45:05+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-08-08T16:45:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=c9579598c5a1b49f7fe8e353623175bf8f3cc236'/>
<id>c9579598c5a1b49f7fe8e353623175bf8f3cc236</id>
<content type='text'>
* Continuation of #19

* Fixes always_update_base_environment override bug added by PR #19

* Finish type hinting implementation

* ini_getval_* functions now able to affect rendering mode using INI_READ_RAW and INI_READ_RENDER
* Created pointers to deeply nested structures to increase readability
* Output from ini_write() is more consistent, with fewer errant spaces and line feeds
* Fixes accidental regression in #19. INIVAL_TYPE_STR_ARRAY never produced an array of pointers to char. This needs to be corrected in the future. i.e. It has always generated a new-line delimited string, not a StrList, or array.

* Fix strlist_append_tokenize

* original pointer is no longer modified
* token strings are stripped of leading space before appending to the list

* Use defines instead of magic numbers

* delivery_init: add render_mode argument

* test_conda: Add render mode

* test_ini: Add render mode

* Only add conda packages and wheels to the image

* docker images are saved to the packages directory and will be consumed by the image if present.

* Render template variables after bootstrapping the delivery</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Continuation of #19

* Fixes always_update_base_environment override bug added by PR #19

* Finish type hinting implementation

* ini_getval_* functions now able to affect rendering mode using INI_READ_RAW and INI_READ_RENDER
* Created pointers to deeply nested structures to increase readability
* Output from ini_write() is more consistent, with fewer errant spaces and line feeds
* Fixes accidental regression in #19. INIVAL_TYPE_STR_ARRAY never produced an array of pointers to char. This needs to be corrected in the future. i.e. It has always generated a new-line delimited string, not a StrList, or array.

* Fix strlist_append_tokenize

* original pointer is no longer modified
* token strings are stripped of leading space before appending to the list

* Use defines instead of magic numbers

* delivery_init: add render_mode argument

* test_conda: Add render mode

* test_ini: Add render mode

* Only add conda packages and wheels to the image

* docker images are saved to the packages directory and will be consumed by the image if present.

* Render template variables after bootstrapping the delivery</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor ini getter and setter usage (#19)</title>
<updated>2024-08-07T17:52:10+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-08-07T17:52:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=1d5e5f26014ceefd824382acec732f326d8d6ce2'/>
<id>1d5e5f26014ceefd824382acec732f326d8d6ce2</id>
<content type='text'>
* Add handler for space-delimited lists

* This needs attention, however. The INI writer has no way to know a list with spaces is a list; this happens in the value conversion functions.
* Add type_hint member to INIData structure. At some point support with be added for all INIVAL_TYPE_* defines. Right now it's only used with arrays.
* Zero out line buffer in ini_open after each iteration
* Do not strip raw INI data. Let the conversion functions handle it
* Add spaces to key value pairs in rendered INI output.

* Add ini_getvar_TYPE() functions

* These replace the functionality of static conv_TYPE() functions in delivery.c
* Add support for missing types: U/CHAR, U/SHORT, STRLIST

* ini_getval: expand template variables immediately before processing the output

* Strip leading space to avoid issues with string comparisons against the result

* ini_getval: Return copies, not the original.

* This forces one to use ini_setval to replace/append values to the data array(s). It's safer this way.

* fix_tox_conf(): Use ini_getval and ini_setval instead of modifying the original pointers directly

* Tests: Free resources

* Replace ini_getval(), ini_getval_required() and conv_*() usage

* Now using ini_getval_TYPE() functions and ini_setval()
* Remove unused helper functions and variables

* download() returns long, not int

* actions: update apt cache</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add handler for space-delimited lists

* This needs attention, however. The INI writer has no way to know a list with spaces is a list; this happens in the value conversion functions.
* Add type_hint member to INIData structure. At some point support with be added for all INIVAL_TYPE_* defines. Right now it's only used with arrays.
* Zero out line buffer in ini_open after each iteration
* Do not strip raw INI data. Let the conversion functions handle it
* Add spaces to key value pairs in rendered INI output.

* Add ini_getvar_TYPE() functions

* These replace the functionality of static conv_TYPE() functions in delivery.c
* Add support for missing types: U/CHAR, U/SHORT, STRLIST

* ini_getval: expand template variables immediately before processing the output

* Strip leading space to avoid issues with string comparisons against the result

* ini_getval: Return copies, not the original.

* This forces one to use ini_setval to replace/append values to the data array(s). It's safer this way.

* fix_tox_conf(): Use ini_getval and ini_setval instead of modifying the original pointers directly

* Tests: Free resources

* Replace ini_getval(), ini_getval_required() and conv_*() usage

* Now using ini_getval_TYPE() functions and ini_setval()
* Remove unused helper functions and variables

* download() returns long, not int

* actions: update apt cache</pre>
</div>
</content>
</entry>
<entry>
<title>Add github.c and github.h (#9)</title>
<updated>2024-07-06T13:49:51+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-07-06T13:49:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=8ce824ac4b2f526331093a7150e643700efd4d20'/>
<id>8ce824ac4b2f526331093a7150e643700efd4d20</id>
<content type='text'>
* Add github.c and github.h

* Implements get_github_release_notes()

* Remove unused variables

* Fix circular dependency on tplfunc_frame

* Remove predeclaration of tplfunc_frame
* tpl_register_func accepts pointer to void instead
* tpl_register_func sets maximum number of arguments
* Frame is generated within tpl_register_func

* Improve template function error handling and return/output management

* Remove redundant extern statement

* Include github.h and template_func_proto.h in core.h

* Expose get_github_release_notes_tplfunc_entrypoint function to template engine

* Add template_func_proto.c and template_func_proto.h

* Replace free() with guard variant

* Fix test_template::test_tpl_register_func

* Fix tests

* Fix tests

* cmd should be at least PATH_MAX in size.

* Magic number caused failure to install conda with a long installation path

* Implement get_github_release_notes_auto function that bases release note data off test contexts

* Disable overwriting releases by default

* Add automatic release note generation function call to release_notes.md.in

* Fix test_tpl_register_func()

* Add enough space for tar command plus a path

* Fix circular include

* Github functions do not require access to core.h anyway

* Add comments to union

* Update README to mention template function availability

* Add EnvCtl structure
* Add runtime checks to avoid running all the way to the end only to be met with a configuration error.
* Rename GITHUB to GH

* Development docs pre-rough-draft</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add github.c and github.h

* Implements get_github_release_notes()

* Remove unused variables

* Fix circular dependency on tplfunc_frame

* Remove predeclaration of tplfunc_frame
* tpl_register_func accepts pointer to void instead
* tpl_register_func sets maximum number of arguments
* Frame is generated within tpl_register_func

* Improve template function error handling and return/output management

* Remove redundant extern statement

* Include github.h and template_func_proto.h in core.h

* Expose get_github_release_notes_tplfunc_entrypoint function to template engine

* Add template_func_proto.c and template_func_proto.h

* Replace free() with guard variant

* Fix test_template::test_tpl_register_func

* Fix tests

* Fix tests

* cmd should be at least PATH_MAX in size.

* Magic number caused failure to install conda with a long installation path

* Implement get_github_release_notes_auto function that bases release note data off test contexts

* Disable overwriting releases by default

* Add automatic release note generation function call to release_notes.md.in

* Fix test_tpl_register_func()

* Add enough space for tar command plus a path

* Fix circular include

* Github functions do not require access to core.h anyway

* Add comments to union

* Update README to mention template function availability

* Add EnvCtl structure
* Add runtime checks to avoid running all the way to the end only to be met with a configuration error.
* Rename GITHUB to GH

* Development docs pre-rough-draft</pre>
</div>
</content>
</entry>
<entry>
<title>Rebrand OhMyCal (OMC) as STASIS (#7)</title>
<updated>2024-06-21T16:49:45+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-06-21T16:49:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=77a0276d9f37bcf828c77f9bcc59ff945116274e'/>
<id>77a0276d9f37bcf828c77f9bcc59ff945116274e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unit tests (#6)</title>
<updated>2024-06-20T19:10:56+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@users.noreply.github.com</email>
</author>
<published>2024-06-20T19:10:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=931ee28eb9c5b5e3c2b0d3008f5f65d810dc9b0c'/>
<id>931ee28eb9c5b5e3c2b0d3008f5f65d810dc9b0c</id>
<content type='text'>
* Initial commit of unit tests [WIP]

* Address shortcomings and bugs flushed out by unit tests

* Enable unit testing in CI workflow

* Enable verbose ctests

* Handle lack of __FILE_NAME__ define

* Only podman support `run --arch` argument

* Skip docker build testing if CI system cannot pull an image

* Remove errant call to puts()

* Identify local repo user

* Fix missing xmllint

* NULL terminate arrays

* Fix filename assignment in is_url mode

* Break loop when expected lines are exhausted

* strcmp_array expects NULL terminated array. Iterating by size in this case passes NULL to strcmp leading to an invalid read

* Remove debug printf statements

* Disable a few warnings for tests

* Workaround for ctest junit xml truncation

* Update checkout@v4

* Prevent false-positive result

* Return zero on error

* Fix strlist_remove function

* Value argument can be constant

* Fix test to match changes to startswith and endswith

* Add test_ini.c

* Fix redaction code to accept NULL pointers in array

* And let the caller specify the length of the array of strings to redact.

* Redactions now occur directly on authentication strings rather than their command line arguments

* Fix BUILD_TESTING_DEBUG

* Adds missing -D argument</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Initial commit of unit tests [WIP]

* Address shortcomings and bugs flushed out by unit tests

* Enable unit testing in CI workflow

* Enable verbose ctests

* Handle lack of __FILE_NAME__ define

* Only podman support `run --arch` argument

* Skip docker build testing if CI system cannot pull an image

* Remove errant call to puts()

* Identify local repo user

* Fix missing xmllint

* NULL terminate arrays

* Fix filename assignment in is_url mode

* Break loop when expected lines are exhausted

* strcmp_array expects NULL terminated array. Iterating by size in this case passes NULL to strcmp leading to an invalid read

* Remove debug printf statements

* Disable a few warnings for tests

* Workaround for ctest junit xml truncation

* Update checkout@v4

* Prevent false-positive result

* Return zero on error

* Fix strlist_remove function

* Value argument can be constant

* Fix test to match changes to startswith and endswith

* Add test_ini.c

* Fix redaction code to accept NULL pointers in array

* And let the caller specify the length of the array of strings to redact.

* Redactions now occur directly on authentication strings rather than their command line arguments

* Fix BUILD_TESTING_DEBUG

* Adds missing -D argument</pre>
</div>
</content>
</entry>
<entry>
<title>Stop iteration on match</title>
<updated>2024-04-15T13:40:43+00:00</updated>
<author>
<name>Joseph Hunkeler</name>
<email>jhunkeler@gmail.com</email>
</author>
<published>2024-04-15T13:40:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.einval.net/gh_mirror/jhunkeler/stasis.git/commit/?id=d7e081453074ca349ca3cd26cebcc584ef2eb768'/>
<id>d7e081453074ca349ca3cd26cebcc584ef2eb768</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
